У меня есть 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), которое является однозначным и уникальным в пределах домена.
Я нашел атрибут, который искал -> 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 имеет уникальную особенность.