2011-11-04 2 views
0

으로 가장 (Sperson) 그래서 iis7에서 호스팅되는 WCF 서비스를 설정하고 있습니다. 이 서비스는 REST 서비스입니다. IIS7, WCF 나머지 사용자 지정 인증 모듈

는 지금까지 최대 인증을위한 우리의 요구 사항은 도메인 계정이 서비스에 연결하려고 있다고했다. 우리는 기본 인증을 사용하고 비즈니스 계층을 통해 DB로 전화를 걸 때 가장 (impersonation)을 사용합니다.

이것은 모두 잘 작동합니다.

이제 우리는 비 도메인 계정이 우리의 서비스를 사용할 수 있도록 할 필요가있다. IIS의 일부 기능으로 인해이 (http://custombasicauth.codeplex.com/) 및 (전달 된 사용자 이름에 따라) Active Directory에 대한 인증을 시도하거나 asp.net 멤버쉽에 대한 인증을 시도 할 사용자 지정 멤버 자격 공급자를 구현했습니다 공급자. 이 부분은 올바르게 작동합니다.

내가 가지고 지금 문제

내가 잃어버린 오전 방향 또는 모든 안개 정화에 도움이 필요로하는 곳에 자,이은 (이해할 수있다.) 그 가장이 작동하지 않는 것입니다. 사용자가 도메인 사용자가 그들의 계정을 가장하는 경우

: 내가 (이 가능한 경우 나도 몰라)하고 싶은 것은 이것이다. 도메인 사용자가 아닌 경우 "일반 사용자 도메인 계정"으로 가장합니다. 보너스로 "장면 뒤에서"이런 일이 일어나기를 원합니다. 그래서 우리가 가진 각각의 방법은 이것을 처리하기 위해 추가 된 특별한 로직을 필요로하지 않습니다.

나는 ... 정체성, 정책 공급자 역할 공급자에 대한 잔뜩 읽고 지금은 완전히 혼란 스러워요.

누구나 이에 대한 통찰력이 있습니까? 가장에 대한 자세한 내용은 온라인 찾는 많은 IIS와 함께 작동 후

+0

누구? 더 많은 정보를 게시해야합니까? – XenoPuTtSs

답변

-1

그래서, 많은 도움이 정보를 찾을 수 없습니다. 그래서 나는 그것을 "해킹"하는 것을 더 들여다 보았다.

나는 (http://custombasicauth.codeplex.com/) 이것을 사용하여 우리가 WCF로 사용자 정의 기본 인증을 가질 수있게했다. 이 모듈이 유입 방법

LeastPrivilege.CustomBasicAuthentication.CustomBasicAuthenticationModule.OnEnter()의 연결이 설정 될 때
호출된다. 차례로 이것은 결국도 개인 정적 LeastPrivilege.CustomBasicAuthentication.CustomBasicAuthenticationModule.SetPrincipal (캐릭터 이름) 내가 암호를 받아 SetPrincipal을 변경

를 호출 LeastPrivilege.CustomBasicAuthentication.CustomBasicAuthenticationModule.AuthenticateUser()를 호출 void SetPrincipal (문자열 사용자 이름, 문자열 암호)

사용자가 도메인 계정인지 아닌지를 결정하기 위해 사용자 이름 (도메인 접두사를 확인)에 대해 간단히 설명합니다. 도메인 계정 인 경우 해당 사용자 이름/암호를 사용하여 WindowsIdentity (약간의 리팩터링을 사용하여 http://www.codeproject.com/KB/dotnet/UserImpersonationInNET.aspx을 사용하여 WindowsIdentity)을 만듭니다. 사용자가 도메인 계정이 아니면 알려진 하드 코드 된 도메인 계정을 사용합니다. 나는 다음이 WindowsIdentity을하고 WindowsPrincipal을 만들고 난 HttpContext.Current.User

에 따라서이 우리를 위해 작동하는지 설정합니다. 명의 도용이 작동 중입니다. 이 부작용으로 [OperationBehavior (Impersonation = ImpersonationOption.Required)] 특성을 사용하여 WCF 메서드를 꾸밀 필요가 없습니다. 나는 이것이 "올바른"방법인지는 모르겠지만 꽤 가까운 것이라고 생각합니다. IIS에서 현재 사용자의 WindowsPrincipal이 있음을 감지하고 해당 계정을 자동으로 가장합니다.

관련 문제