2011-08-17 7 views
0

웹 응용 프로그램에서 다이제스트 인증을 사용하고 있습니다. 서버 측에는 사용자 암호가 없습니다. 이제 LDAP에서 사용자를 인증해야합니다.다이제스트를 사용하여 LDAP에서 인증 하시겠습니까?

가능합니까? .Net/C#의 모든 예제?

다이제스트 구현 알고리즘을 수정할 수는 있지만 요구 사항으로 인해 기본 또는 다른 인증으로 변경할 수 없습니다.

편집 : 내가보기에 AuthType.Digest로 설정할 수있는 System.DirectoryServices.Protocols.LdapConnection.AuthType 속성이 있습니다. 이 설정을 사용하려면 어떻게해야합니까?

+0

SASL에 대해 읽어보십시오. 패스워드의 전송을 필요로하지 않는 SASL기구가 있습니다. –

답변

0

짧은 대답 : 아니오.

당신은 당신이 다이제스트에서 얻을 수있는 프로그래밍 방식의 LDAP 인증 루틴에 일반 텍스트 암호를 입력이 필요하다 - 그 다이제스트의 점의 종류입니다.

내가 생각할 수있는 유일한 해결책은 LDAP에 고급 계정으로 연결하고 사용자가 수행하려고 시도 할 작업을 수행 할 수 있는지 확인하는 것입니다.

LDAP를 사용하여 사용자의 로그인을 검증하려는 경우 약간 익숙합니다. 이것이 AD에 대해 인증하는 대부분의 웹 서비스가 HTTPS를 통한 기본 인증이거나 NTLM 인증을 사용하는 이유입니다 ...

+0

a) LdapConnection.AuthType을 AuthType.Digest로 설정할 수 있습니다. b) IIS는 어떻게 든 다이제스트 인증을 사용할 수 있습니다. c) NTLM 자체는 내가 아는 한 일종의 다이제스트입니다. 그래서 다이제스트가 지원된다고 생각합니다. –

+0

기본 LDAP 프로토콜에서 다이제스트를 사용할 수 있다고 권한을 부여 받았지만 호출중인 상위 수준 기능에 일반 텍스트 비밀번호를 제공해야합니다. 직접 다이제스트 해시 계산을 수행 할 수는 없습니다. 가능한 경우에도 HTTP 인증 영역은 LDAP 인증 영역과 일치해야하며 nonces도 일치해야합니다. 두 개의 독립적 인 다이제스트 트랜잭션간에 변환하는 것은 매우 어려울 것입니다. – DaveRandom

+0

다이제스트는 Active Directory와 완벽하게 작동하며 암호는 교환되지 않습니다. 유일한 도전. NTLM은 다소 안전하지 않으며 다이제스트는 뛰어난 구성표임을 명심하십시오. –

0

건물이 새로운 것이면 가능할 수 있습니다.

사용자를 만들 때 HA1을 LDAP의 속성으로 추가 할 수 있습니다. HA1 = MD5 (username : realm : password)는 Http 다이제스트입니다.

그런 다음 사용자가 웹 서버에 액세스하고 Authorization 헤더를 제공합니다. LDAP에서 HA1을 사용하여 권한을 다시 작성하고 결과를 비교할 수 있지만 가장 좋은 방법은 아닌 시스템 관리자 자격 증명을 사용하여 사용자 HA1 값에 액세스해야합니다.

관련 문제