Назад | Перейти на главную страницу

Проблема входа в Active Directory

У меня есть 2 пользователя в моей установке AD с одним и тем же CN

   CN=jack,CN=Users,DC=xyz,DC=com and 
   CN=jack,OU=abc,DC=xyz,DC=com

Когда я пытаюсь пройти аутентификацию на сервере AD с помощью клиента Apache Directory Studio и даю следующие учетные данные

User: jack
Password: <password>

аутентификация не удалась. Следующие учетные данные работают

User: CN=jack,CN=Users,DC=xyz,DC=com
Passwprd: <password>

Когда у меня только один пользователь CN=tom,DC=xyz,DC=com с заданным CN

Я могу войти с

User: tom
Password: <password>

без необходимости указывать весь DN (CN=tom,DC=xyz,DC=com).

Мне нужно написать модуль для аутентификации пользователей при установке AD. У меня с собой только имена пользователей и пароли, а не полностью квалифицированные BASE DN. Как мне это сделать, если кажется, что проблема возникает, когда есть несколько пользователей с одним и тем же CN?

РЕДАКТИРОВАТЬ: Могу ли я настроить сервер AD для привязки к почтовому адресу пользователей вместо CN? Это решит мою проблему, поскольку адреса электронной почты уникальны, а адреса CN - нет.

Имя sAMAccountName пользователя должно быть уникальным в пределах данного домена, поэтому вы должны иметь возможность заставить клиента запрашивать AD на основе sAMAccountName, а затем использовать полное имя X.400, которое вы получите для аутентификации.

Если у вас более одного домена, вам в любом случае потребуется домен + идентификатор пользователя (sAMAccountName) для аутентификации.

Я не знаю, что сказать, в основном потому, что трудно понять, о чем вы спрашиваете.

Если ваша организация создает «повторяющиеся» имена пользователей в разных контекстах / подразделениях, что, безусловно, допустимо в AD, то любой код, который вы пишете, должен будет поддерживать работу с именами пользователей в разных контекстах.

Хорошая это идея или «правильная» - это вопрос, который ваша организация решает внутри компании.

Вы пытаетесь использовать относительное отличительное имя (RDN), а не CN. Относительное отличительное имя уникально в пределах подразделения (это относительный путь), но не может быть уникальным в пределах домена. Вы должны использовать отличительное имя (DN), которое является однозначным и уникальным в пределах домена.

http://technet.microsoft.com/en-us/library/cc977992.aspx

Я нашел атрибут, который искал -> userPrincipalName (UPN). Он имеет уникальное значение в Active Directory и может быть указан как имя пользователя при попытке аутентификации. Итак, теперь мне нужен список UPN и соответствующие пароли для входа.

http://technet.microsoft.com/en-us/library/cc739093%28WS.10%29.aspx

В объекте пользователя Active Directory - samaccountname (имя для входа) и UPN (имя участника-пользователя) для входа в домен Active Directory.

И это свойства пользовательского объекта Должно быть уникальным в Active Directory

как ваш вопрос ...

CN=jack,CN=Users,DC=xyz,DC=com  
CN=jack,OU=abc,DC=xyz,DC=com

вы создаете два пользовательских объекта, как указано выше. приведенный выше синтаксис - DN.

вы проверите samaccountname (имя для входа) или UPN для этих пользователей. Я имею в виду, что у вышеуказанных пользователей разные имена Samaccount и UPN. после проверки реального имени Samaccountname или UPN для этих пользователей и попробуйте войти в систему.

P.S. Также DN имеет уникальную особенность.