2011-05-10 5 views
3

현재 응용 프로그램에서는 PrincipalContext 클래스를 사용하여 LDAP에 대해 기본 사용자 (Web.config 전용 구역에 채워짐)를 인증합니다 (보다 정확하게는 액티브 디렉토리) :Principal을 사용하여 Active Directory에 대해 인증

ldapContext = new PrincipalContext(AdContextType, AdHost, AdContainer, 
            ContextOptions.SimpleBind, 
            AdDefaultUser, AdDefaultPassword) 

이 인증은) UserPrincipal.FindByIdentity(ldapContext, username)를 통해 (다른 사용자를 검색 할 수 있습니다. 그러나 나는 이것을 바꿔야한다. 왜냐하면 사용자가 명확하게 나타나기 때문에 Web.config은 내 클라이언트에게 허용되지 않는다.)

  • providers 등과 함께 의 Web.config합니다 (membership 부분의 해당 부분을 암호화하는 관리

    을 : OK, 나는

    그래서 내가 몇 가지 솔루션을 가지고) 그 :-)를 이해할 수

  • 응용 프로그램이 배포 된 IIS 7의 응용 프로그램 풀에서 계정을 사용하십시오. 이것은 IIS에서 주체를 검색하는 것을 의미합니다 (이 점은 너무 어렵지 않아야 함). 그런 다음 AD에 대한 인증에 사용합니다. 하지만 그 어떤 방법도 찾지 못했습니다. ActiveDirectoryMembershipProvider을 통하지 않고 PrincipalContext 클래스를 통하지도 않습니다.

위의 두 가지 해결책을 관리하는 방법을 알고 있습니까? 아니면 다른 점을 생각합니까?

감사합니다.

답변

2

사용자 이름이 더 문제가 아닌 것 같습니까? 지금까지 두 번째 해결책은 효과가 있다고 말할 수 있습니다. 내가 이것을하는 것을 알 수있는 방법이 없다.

첫 번째 해결 방법으로 사용자 이름과 암호를 암호화하고 암호화 된 값을 문자열에 저장할 수 있습니다. 로드 후에는 문자열의 암호를 해독해야합니다. 그러나 귀하의 솔루션은 분해에 안전하지 않습니다.

높은 보안 구현이 필요한 경우 보안 키 저장소에 암호화 키를 저장할 수도 있습니다. 그러면 분해를 막을 수 있습니다.

+0

사실, 문제는 암호입니다. 나는 주체 (기본 보안)로부터 암호를 얻을 수있는 방법이 없다고 생각합니다. 좋습니다. 암호화에 대해 살펴 보겠습니다. – Emmanuel

+0

좋습니다, 감사합니다! 암호화하는 좋은 방법은 [이 다른 SO 제목] (http://stackoverflow.com/questions/134658/problem-encrypting-membership-element-in-web-config)에 잘 설명되어있는 IIS 도구를 사용하는 것입니다. – Emmanuel

+0

문제 없습니다. 모든 시간! – sra

관련 문제