2010-06-03 10 views
3

HttpWebRequest를 사용하여 사용자 대신 네트워크 내의 다른 백엔드 서비스에 연결할 내부 웹 사이트를 설정하려고합니다. 백엔드 시스템은 이러한 유형의 인증 만 지원하므로 ASP.NET 응용 프로그램에서 Windows 통합 인증을 사용해야합니다.ASP.NET에서 종단 간 Kerberos 위임 인증

ASP.NET 응용 프로그램에서 IWA를 설정할 수 있으며 예상대로 kerberos를 사용하고 있습니다. 그러나 인증이 백엔드 시스템에 위임되면 더 이상 작동하지 않습니다. 이것은 백엔드 시스템이 kerberos IWA 만 지원하기 때문입니다.하지만 들어오는 요청이 Kerberos 인증을 받았다고해도 위임은 백엔드 시스템으로 전달하기 전에 인증을 NTLM으로 변환합니다.

아무도 내가 kerberos를 사용하여 ID를 전달할 수 있도록 ASP.NET 응용 프로그램에서 수행해야 할 작업을 알고 있습니까?

나는 다음과 같은 시도했지만 작동하지 않는 것

CredentialCache credentialCache = new CredentialCache(); 
credentialCache.Add(request.RequestUri, "Negotiate", CredentialCache.DefaultCredentials.GetCredential(request.RequestUri, "Kerberos")); 
request.Credentials = credentialCache; 

나는 또한 지금 "협상"라고 여기서 "Kerberos를"설정하려고했지만, 그것은하지 않는 것 많이해라. 응용 프로그램에서

답변

1

, 당신은 DefaultCredentials 사용할 필요가 :

  • 가 귀하의 응용 프로그램 풀 계정에 SPN을 설정 : 그러나

    request.UseDefaultCredentials = true; 
    

    를, 액티브 디렉토리에해야 할 몇 가지 작업이 프런트 엔드 응용 프로그램

  • 백 엔드 응용 프로그램을위한 응용 프로그램 풀 계정에 SPN 설정
  • 첫 번째 응용 프로그램에서 위임 설정 제 2 SPN에 연결 풀