У меня есть несколько вложенных групп на сервере LDAP и пользователи в этих группах. Как я могу аутентифицировать пользователей с заданным именем пользователя и паролем, выполняя поиск только в группах (а не во всем домене)? Бинд так делает?
Аутентифицировать пользователя из определенных групп на сервере LDAP с помощью С#
comment
Какой у вас сервер LDAP? Вы можете ограничить область поиска, указав Bind OU, но я не уверен, какую службу LDAP вы используете.
- person Am_I_Helpful   schedule 10.07.2018
comment
Не знаю, у меня есть только список od доменов и групп типа domainName.com dc=first, dc=second, ou=therte... И пользователи и пароли хранятся в этой ou группе, но я конечно могу не видеть их. Мне нужно просто проверить, входят ли они в эти группы и правильный ли пароль. Могу ли я сделать это с помощью простого метода привязки?
- person aurora93   schedule 10.07.2018
comment
Собственно, я спросил тип сервера LDAP. Можете ли вы подтвердить, что это сервер Windows Active Directory на базе Microsoft?
- person Am_I_Helpful   schedule 10.07.2018
comment
Да, это. У меня есть доступ с использованием классов Novell.Directory.Ldap или System.DirectoryServices.Protocols LdapConnection.
- person aurora93   schedule 10.07.2018
Ответы (1)
Как вы подтвердили в разделе комментариев к этому вопросу, сервер LDAP, о котором вы говорите, является сервером Active Directory. Итак, мой ответ основан на этот известный ответ о том, как проверить имя пользователя и пароль в Active Directory, за исключением того, что я Мы внесли изменения, основанные на вашем требовании, чтобы ограничить область поиска.
Если вы работаете с .NET 3.5 или новее, вы можете использовать System.DirectoryServices.AccountManagement. "nofollow noreferrer">PrincipalContext Constructor (ContextType, String, String) и легко проверить свои учетные данные:
// create a "principal context"
using(PrincipalContext pc = new PrincipalContext(ContextType.Domain, "YOUR.DOMAIN",
"OU=Where,OU=You,OU=Wanna,OU=Search,DC=YOUR,DC=DOMAIN"))
// change your container to a base OU where all your users are located.
{
// validate the credentials
bool isValid = pc.ValidateCredentials("myuser", "mypassword");
}
person
Am_I_Helpful
schedule
10.07.2018