2011-09-26 10 views
0

내 서비스는 netTCP 웹 서비스이며 Windows 인증 가장 된 웹 사이트입니다. 서비스를 시작하려고 할 때 서비스와 사이트가 동일한 서버에 있으면이 작업이 올바르게 수행됩니다. 로컬 컴퓨터에서 실행중인 IIS 인스턴스 또는 개발 컴퓨터에서 서비스를 실행하려고하면 작동합니다. 유일한 방법은 내 웹 사이트가 웹 사이트의 다른 서버에있는 경우입니다. WCF 유틸리티의 출력을 살펴보면 익명의 사용자가 우리의 서비스를 공격하려고한다는 것을 알게되었습니다. 서비스의 오른쪽 상단 모서리에 사용자 이름이 표시되어 있지만 미친 것은 무엇입니까?WCF를 호출하는 웹 사이트를 통해 사용자 가장

나는 클라이언트를 올바르게 가장하고 있는지 알고 싶습니다. 내 의심은 두 응용 프로그램 풀이 로컬 컴퓨터에서 실행될 때 특정 핸드 셰이크가 필요하지 않기 때문에이 인스턴스에서 작동한다는 것입니다. 내 로컬 컴퓨터에서도 마찬가지입니다 (확실하지는 않지만, 로그인 한 컴퓨터에서 서버로 갈 때 암시 된 보안이있을 수도 있습니다). 나는 사용자를 가장 방법은 다음과 는 ... 내가 제대로 내 IIS 7 윈도우 2008 설치를 생각

client2.ChannelFactory.Credentials.Windows.AllowedImpersonationLevel = System.Security.Principal.TokenImpersonationLevel.Impersonation; 

입니다. 사이트에 대해 활성화 된 Windows 인증 외에도 사이트에 대해 aspnet 가장을 설정했습니다. 나는 모든 것을 가지고 있지만 서비스에 대해 창 인증을 사용하지 못하게했다. 응용 프로그램 풀을 특정 ID로 설정했습니다. 내가 무엇을 놓치고 있는지 정확히 알지 못한다. 저는 아직 wcf 서비스의 마스터가 아니므로이 분야에 대한 지식이 제한적이라고 생각합니다. 너희들에게 어떤 생각이나 충고라도 있다면 알려주 길 바란다.

답변

0

그래서 아래 문제가있는 것 같습니다. 나는 이것이 머신 B가 머신 A가 자신의 신임 정보를 전달하는 것을 믿지 않는 것과 관련이 있다고 생각한다. 이것은 다른 방식으로 나타납니다.

당신은에서 Active Directory의 변경을 필요, 다음 (더 here)

  • 시작을 수행하여 Kerberos 자격 위임 머신 A를 신뢰하고 관리 도구를 클릭 한 다음 Active Directory 사용자를 클릭 constratined 및 컴퓨터.
  • 도메인을 확장하고 컴퓨터 폴더를 확장하십시오.
  • 오른쪽 창에서 웹 서버의 컴퓨터 이름을 마우스 오른쪽 단추로 클릭하고 속성을 선택한 다음 위임 탭을 클릭합니다.
  • 모든 서비스에 위임 할 수 있도록이 컴퓨터 트러스트를 선택합니다 (Kerberos 만 해당).
  • 확인을 클릭하십시오.

컴퓨터 B가 요청을 수락하는 동안 컴퓨터 A가 신뢰를 전달하지 않는다는 것이 문제의 핵심입니다. 이것이 보이는 전형적인 이중 홉 문제입니다. 이것은 특히 위임되지 않은 컴퓨터에서 SQL 서버로 작업 할 때 일반적으로 발생합니다. 다음과 같은 오류가 표시됩니다. '(null)'사용자 로그인에 실패했습니다. 이유 : 신뢰할 수있는 SQL Server 연결과 관련이 없습니다. 여하튼, SQL은 여기에 당신의 문제가 아닙니다. 최신 Win2k8 변경 사항에 대해서는 최신 정보가 아니지만보다 세분화 된 수준에서 위임 권한을 부여하는 것이 가능할 수도 있습니다. 또한 점선 아래 그림에서 나는

Delegation

"기계 B는 creds를 전달하는 시스템 A를 신뢰해야합니다"라고 의미
관련 문제