2009-04-26 8 views
3

WCF 웹 서비스가 있습니다. 현재 전송 보안 및 Windows 클라이언트 자격 증명 유형이있는 WSHttpBinding 끝점을 통해 처리됩니다. 이 서비스는 도메인 인증 기관의 인증서를 사용하여 구성된 SSL을 사용하여 IIS 5.1에서 호스팅됩니다. IIS 자체는 도메인 컴퓨터에서 [email protected]이라는 ID로 실행됩니다. 익명 액세스가 사용되지 않으며 Windows 통합 인증 만이 인증 방법입니다.WCF 웹 서비스의 위임

서비스에는 현재 Windows ID 이름 및 가장 수준을 반환하는 메서드가 있습니다. 이 메서드는 OperationBehaviourAttribute에서 가장으로 필요를 설정합니다.

[OperationBehavior(Impersonation = ImpersonationOption.Required)] 
public IEnumerable<string> GetInformation() 
{ 
    WindowsIdentity identity = WindowsIdentity.GetCurrent(); 
    return new List<string>() 
    { 
     identity.Name, 
     identity.ImpersonationLevel.ToString() 
    }; 
} 

저는 클라이언트에서 수동으로 WCF 채널을 만들고 서비스 위임을 허용하고 있습니다.

클라이언트는 신뢰할 수있는 게시자 인증서 저장소로 이동 한 도메인 인증서로 서명 한 완전히 신뢰할 수있는 XBAP입니다.

호스트 컴퓨터 [email protected][email protected]에는 도메인에 위임 설정이 설정되어 있으며 사용자 중 누구도 민감한 것으로 표시되지 않습니다. SeImpersonatePrivilege는 가장이 작동하는 한 문제가 아니어야합니다.

클라이언트가 서비스 메서드를 호출하면이 메서드는 "domain \ current"및 "가장"을 반환합니다. 내가 필요한 것은 "domain \ current"와 "Delegation"입니다. http://msdn.microsoft.com/en-us/library/ms730088.aspx의 두 번째 테이블에 따르면 이는 클라이언트 또는 서비스가 위임 할 수 없음을 의미합니다.

도메인의 기능 수준이 Windows 2000 Mixed입니다. 나는 이것이 NTLM 인증을 암시한다고 어딘가에서 읽었지만 도메인 컨트롤러 사이의 트래픽을 언급했다고 생각한다. https Wireshark를 실행하지 않을 때 http 응답에 supportedMech: 1.2.840.48018.1.2.2 (MS KRB5 - Microsoft Kerberos 5)이 표시되므로 Kerberos가 활성화 된 것으로 보입니다.

기술적으로 우리는 두 도메인 컨트롤러가 모두 W2K3 서버이지만 IT 부서에서 현재 백업 작업에 리소스를 할당 할 수 없기 때문에 Windows 2003까지 기능 수준을 올릴 수 있습니다. 기능 수준을 올립니다.

Windows Server 2003의 기능 수준으로 업그레이드 할 수있는 가상 테스트 도메인이 있지만이 도메인에는 IIS가 설치된 인증 기관이나 클라이언트 컴퓨터가 없으므로 테스트 목적으로 기능 수준을 올릴 수있는 반면 나머지 인프라는 상당히 많은 작업입니다.

이것은 잠시 동안 해결할 수없는 문제입니다. 웹은 "이게 네가하는 일"이라는 기사로 가득 찬 것처럼 보이지만 나는 이것들에 대해 아무런 행운이 없다. 어떤 아이디어가 잘못 되었나요?

답변

0

동일한 IIS 호스트에서 XBAP 및 서비스를 실행하고 있습니까?

제대로 이해한다면 - 클라이언트 -> XBAP-> WCF가 있습니다.

클라이언트가 IIS에서 호스팅되는 XBAP에 연결 중입니다. 이것은 Kerberos를 통해 인증 될 수 있으며 귀하가 제안하는 것 같습니다.

두 번째 홉은 WBF 서비스에 연결하는 XBAP입니다. 이 두 개가 동일한 IIS 호스트에서 호스팅되는 경우 kerberos는 시도되지 않으며 NTLM이 사용됩니다. WCF가 다른 호스트 컴퓨터에있는 경우 Kerberos는 이 시도됩니다.

XBAP 및 WCF가 별도의 상자에 호스팅되어 있다면 2 차 홉 인증 설정을 통해 고전적인 kerberos를 얻었으며 "이 방법을 사용하는 방법"과 같은 기사를 설명해야합니다.

는 (이 질문은 몇 시간 전이었다 실현 - 그러나 나는 최근에 그것을 발견 한 단지 최근에 Kerberos 및 2 홉 문제를 이해하게.) 근본적인 문제는 얼마 전에 해결되었다

+0

. 여기 XBAP가있는 시나리오는 인증 부족을 재현 할 수있는 가장 간단한 방법이기 때문에이 설정을 잃어 버렸고 잘못 설정된 부분을 테스트 할 수 없었습니다. 이제는 IIS 부분에서 호스팅되는 XBAP에 궁금한 점이 있습니다. 신뢰할 수있는 XBAP에 대해서조차도 XBAP 문제의 근원은 무엇입니까? 필자는 너무 멀리 보지 않았지만 그들이 네트워킹과 관련하여 어떤 독립형 .Net 응용 프로그램처럼 행동한다고 ​​가정했습니다. –