2

로그인하려면 AD 인증을 사용하는 asp.net 웹 응용 프로그램을 만들고 있습니다. 이 응용 프로그램은 AD 인증을 사용하는 TFS RestApi를 호출하는 일부 서비스를 제공합니다. 로그인 정보를 TFS에 전달해야하며 서명 후 사용자 이름/비밀번호를 보관하고 싶지 않습니다. 예를 들어 현재 세션 토큰 또는 ID를 TFS Rest API에 전달하는 방법이 있습니까? 어쨌든 SSO와 비슷합니까?asp.net 응용 프로그램에서 Windows 인증을 TFS 2017에 전달하는 방법

감사

답변

0

@ 패트릭 루 web.config에서 가장 (impersonation)을 활성화해야합니다. 당신이 HttpClient를 사용하는 경우 또 다른 것은, 그것이거야 일이 아니다 비동기 이후 :

var client = new HttpClient(new HttpClientHandler() { UseDefaultCredentials=true}) 
HttpResponseMessage response = client.GetAsync("your-tfs-url").Result; 

그래서 그것은 당신의 응답을 웹 클라이언트에게

WebClient wc = new WebClient();    
wc.UseDefaultCredentials = true; 
wc.Headers.Add(System.Net.HttpRequestHeader.ContentType, "application/json; 
charset=utf-8");      
var result=wc.DownloadString("http://yourtfs-url"); 
+0

공유에 감사드립니다. 해결 되었다면 답으로 표시 할 수 있으므로 같은 문제를 가진 다른 커뮤니티 회원이 쉽게 답변을 찾을 수 있습니다. 좋은 하루 되세요 :) –

1

이 작업을 수행하는 방법을 아래에 시도 할 수 : ASP.NET impersonation

  • 스토어 데이터베이스 나 안전한 장소에서 TFS 자격 증명 코드에서 TFS impersonation를 사용하여

    • TFS
    • 에 연결
    • TFS 자격 증명의 보안 하에서 실행되는 WCF 서비스를 만듭니다. 이 WCF 서비스는 TFS 쿼리를 만듭니다. 웹 응용 프로그램에서이 WCF 서비스를 호출 할 수 있습니다.

    참고 : (가장 Setting up impersonation for ASP.NET TFS API apps 방법 2의

  • , 이것은 일부 설정을 할 TFS 관리가 필요합니다 방법의 경우 1

    1. 는,이 튜토리얼를 보라 TFS의)
  • +0

    감사를 사용하는 것이 좋습니다. 제가 틀렸다면 저를 교정하십시오. 귀하의 솔루션은 모든 사용자에 대해 하나의 TFS 자격 증명을 보유하고 있습니다. 모든 Windows 사용자는 TFS에 액세스 할 수 있으며 사용자 당 가장을 사용하고 싶습니다. 저장하지 않고 각 사용자 자격 증명으로 TFS 나머지 api 호출. –

    +0

    HttpClient를 사용한 이후 처음에는 솔루션이 작동하지 않았습니다. WebClient를 사용하여 작동했습니다. 감사. –

    +0

    @alirezam 여기에 기쁜 점은, 스스로 해결할 때 항상 더 좋습니다. 어떻게 작동하는지 이해함에 따라 :) :) 답변으로 여기에 해결책을 추가하고 표시 할 수 있습니다. 그러면 커뮤니티의 다른 사람들에게도 도움이됩니다. –