Mono에서 찾을 수있는 Novell.Directory.Ldap 라이브러리를 사용하여 활성 디렉터리에 사용자를 인증하려고합니다. 나는 아래에있는 것보다 더 좋은 방법이 있다는 것을 알고 있습니다. 그러나 Mono에 국한되어 있기 때문에, 이것들은 제가 볼 수있는 최선의 지원 루틴입니다.활성 디렉터리 및 LDAP 라이브러리
.NET 라이브러리를 사용하여 samAccountName으로 사용자를 인증 할 수 있습니다.
using (DirectoryEntry de = new DirectoryEntry())
{
de.Username = username;
de.Password = password;
de.Path = string.Format("LDAP://{0}/{1}", ADHostname, DefaultNamingContext);
de.AuthenticationType = AuthenticationTypes.Secure;
using (DirectorySearcher deSearch = new DirectorySearcher())
{
deSearch.SearchRoot = de;
deSearch.PropertiesToLoad.Add("cn");
deSearch.Filter = "(&(objectCatagory=person))";
deSearch.FindOne();
}
}
하지만 모노 내부에서 실행중인 잘못된 자격 증명으로는 실패합니다. 이 기능을 작동시키는 유일한 방법은 사용자 이름에 대해 UPN을 지정하는 것입니다.
de.Username = "[email protected]";
문제는 UPN이 AD에 필수 속성이 아니기 때문입니다. 그렇다면 사용자 이름만으로 사용자를 인증하려면 어떻게해야합니까? 이 닭과 달걀 문제입니다, Authenticating user using LDAP from PHP
그러나 :
나는 한 가지 방법에 대한 게시물이 그것을 할 참조하십시오. 인증 된 사용자로 바인드 할 수 없으면 바인딩 할 수 있도록 사용자 DN 검색을 어떻게 바인드합니까?
도움을 주셔서 감사합니다.
그건 의미가 있습니다. 가능한 한 최소한의 관리자 참여로이 작업을 수행하려고했지만 서비스 계정에 대한 전체 DN을 크게 요구하지 않는다고 가정합니다. 감사. –