2010-07-19 3 views
4

이 사이트 및 다른 사이트를 검토 한 후 LDAP를 사용하여 사용자 이름 및 비밀번호를 인증하는 방법을 알고 있습니다. 하지만 내 질문은 우리의 클라이언트가 사용자 이름이나 비밀 번호를 액티브 디렉토리에 자신을 바인딩 할 수있는 권한을 부여하지 않습니다. 제 말은 먼저 바인드에 사용되는 uname과 password라는 관리자 유형이 있고 실제 사용자 이름과 암호를 제공해야한다는 것입니다. 아무도 내가 이것을 어떻게 성취 할 수 있는지 알려 주실 수 없습니까?Active Directory 및 SunOne을 사용한 LDAP 인증

답변

1

일반적으로 사용자가 가져온 정보를 기반으로 대상 사용자의 전체 DN을 검색 할 수있는 바인딩 방법이 있습니다. 예를 들어, 로그인 할 때 사용자 이름과 암호를 요구할 수 있으며 해당 사용자 이름은 sAMAccountName이 AD 일 수 있습니다. 또는 광고에서 자신의 이메일 주소.

그런 다음 메일 또는 sAMAccountname을 관리 사용자 또는 익명 바인드로 바인드하거나 해당 사용자의 전체 DN을 찾을 수있는 다른 방법으로 쿼리합니다.

마지막으로 로그인 페이지에서 입력 한 값과 비교하여 DN의 암호를 비교하기 위해 암호를 비교할 수 있습니다.

+0

빠른 답변 감사드립니다. 다음을 사용하여 서버와 바인딩하고 실제 사용자 이름과 암호를 인증합니다. DirectoryEntry 항목 = 새 DirectoryEntry ("LDAP : // 도메인", "adminUname", "adminPwd") entry.Username = "실제 사용자 이름"; entry.Password = "실제 비밀번호"; entry.RefreshCache(); 이 시나리오를 만들어서 빌드를 제공해야합니다. 하지만 여기 내 개발 환경에서 잘못된 adminuname/adminpwd를 제공하더라도 여전히 디렉토리를 바인드하고 실제 uname 및 비밀번호를 인증합니다. 이 코드가 클라이언트 측에서도 작동하는지 어떻게 확인할 수 있습니까? – hitesh

+0

당신이 설계된 동작으로 LDAP 흥미로운 작업을하고 있는지 궁금합니다 ... 암호가없는 LDAP 바인드는 성공적인 익명 바인드로 간주됩니다. eDirectory에서 DStrace에서이 일이 아주 분명하게 일어나는 것을 볼 수 있습니다 (실제로 발생했음을 알려줍니다). 이 경우에 로깅 광고가 어디에 있는지는 확실하지 않습니다. – geoffc