2012-01-16 2 views
0

이 문제는 가능한 한 간단하게 유지하려고합니다. 문제는 약간 설명하기가 까다 롭습니다. 어떤 것이 명확하지 않은 경우 질문하십시오. 그래서 여기, 너IIS 6.0에서 작동하는 WCF 서비스 인증을받을 수 없습니다.

"HTTP 요청이 클라이언트 인증 체계 'Ntlm'과 인증되지 않은 상태에서 잠시 동안 오류 메시지가 표시됩니다. 서버에서받은 인증 헤더 'Negotiate, NTLM'입니다. 원격 서버에서 오류를 반환했습니다. (401) 등급이 지정되지 않음 "

두 개의 Windows 상자 Box1과 Box2가 있습니다. 나는 각각의 IIS 6에서 호스팅되는 2 개의 WCF 서비스 (ServiceA 및 ServiceB)를 가지고 있습니다. 기능적으로 ServiceA는 db와 만 통신합니다. ServiceB는 ServiceA와 대화하고 결과를 얻습니다. 두 서비스 모두 익명 액세스와 Windows 통합 인증이 활성화되어 있습니다. ServiceA는 Application Pool ServiceAPool에서 실행되고 ServiceB는 ServiceBPool에서 실행됩니다. 이러한 각 응용 프로그램 풀은 도메인 사용자의 ID를 구성했습니다. 이러한 앱 풀은 Box1 및 Box2에서 완전히 동일합니다.

첫 번째로, 내 클라이언트 응용 프로그램 (작은 콘솔 응용 프로그램)은 내 Windows 자격 증명으로 Box1의 ServiceA를 호출합니다. 그것은 작동합니다.

내 클라이언트 응용 프로그램은 내 Windows 자격 증명으로 Box1의 ServiceB를 호출합니다. 이 ServiceB는 내부적으로 ServiceA를 도메인 사용자 (응용 프로그램 풀 ID)와 함께 호출합니다.

위에서 언급 한 두 번째 사항은 Box2에서 작동하지 않지만 위의 오류가 발생합니다. 그냥 분명히 web.config 파일 등 서비스 코드는 정확히 두 상자에 동일합니다. 앱 풀의 도메인 사용자는 같습니다. 두 상자는 모두 동일한 도메인에 있습니다.

Box2에서 ServiceA를 Windows 자격 증명으로 호출하면 작동하는 것으로 보이지만 (응용 프로그램 풀 계정과 같은) 다른 도메인 계정으로 서비스간에 홉이있는 경우에는 실패합니다. 위의 오류와 함께.

누구나 이런 종류의 행동을 본 적이 있다면 일부 정보를 공유하십시오.

+0

그것은 명확하지 인증 오류가 BOX2에 발생에서 찾을 수 있습니다. 클라이언트 => serviceB 또는 serviceB => serviceA입니까? 두 경우 모두 box2의 서비스를 호스팅하는 웹 사이트/응용 프로그램에 대한 IIS 권한이 box1과 동일한 지 확인해야합니다. –

+0

문제는 serviceB => serviceA에서 발생합니다. 하나의 서비스 내에서 발생하는 호출간에 문제가 발생합니다. 어떤 이유로 응용 프로그램 풀 ID가 사용되지 않고 가장 된 것처럼 보이지만 확실하지 않습니다. – theraneman

+0

익명 액세스와 Windows 인증을위한 서비스를 모두 구성하는 것이 옳지 않은 것처럼 보입니다. 나는 단서가 서버가 NTLM 이외에 '협상 (negotiate)'권한 부여 체계를 설정하고 있지만 클라이언트는 NTLM 용으로 만 구성되어 있다고 생각합니다. 두 서비스 모두에서 익명 액세스를 비활성화하고 차이점을 확인하거나 적어도 다른 오류 메시지를 생성하는지 확인하십시오. –

답변

1

나는 내 자신의 질문에 대한 답변을 게시하고 싶습니다. 인증 작업을 정상적으로 수행하기 위해 friggin 레지스트리 키 업데이트로 밝혀졌습니다. 기본적으로 "DisableLoopbackCheck"값을 비활성화하는 것이 었습니다. 자세한 내용은

http://blogs.msdn.com/b/distributedservices/archive/2009/11/10/wcf-calling-wcf-service-hosted-in-iis-on-the-same-machine-as-client-throws-an-authentication-error.aspx

http://support.microsoft.com/default.aspx?scid=kb;EN-US;926642

관련 문제