У меня есть фрагмент кода, который принимает строку ldap, имя пользователя и пароль, а затем пытается пройти аутентификацию на сервере ldap. Имя пользователя может содержать или не содержать доменное имя, например, "DOMAIN \ username" или "username" было допустимым вводом для этого кода.
Из строки ldap у меня будет четкий URL-адрес, который может выглядеть так: LDAP: //servername.com/DC=...etc. Если я выделю часть имени сервера, я получу «servername.com», «servername.corp» или еще много чего. Но если я попытаюсь войти в систему с помощью servername.com \ username, аутентификация не пройдет. Итак, один из вариантов - отделить последний «.», Если он есть. Это действительно с точки зрения активного каталога? Что произойдет, если есть такие поддомены, как xyx.servername.com?
Должен признать, что я недостаточно знаю об активном каталоге, чтобы ответить на вышеуказанные вопросы, и я не могу найти документацию, которая их объясняет. Некоторая документация, подтверждающая ваш ответ, действительно поможет!
Когда логин представлен как DOMAIN\user
, DOMAIN - это NETBIOS-имя домена AD. Это как обычно самый нижний поддомен домена, но он может быть что-нибудь. Другой допустимый способ представления имени - суффикс UPN, т.е. user@domain.com
. Проблема заключается в том, что администратор может иметь несколько имен UPN в домене, хотя по умолчанию используется полное доменное имя.
В принципе, если вы контролируете AD, вы должны это знать. Если вы этого не сделаете, вы не сможете знать наверняка.
При поиске источника аутентификации LDAP для различных пакетов с открытым исходным кодом подавляющее большинство выполнит аутентификацию LDAP за пару шагов. Этот метод обычно используется наиболее часто и работает для большинства реализаций LDAP, включая AD.
С помощью AD можно выполнить аутентификацию без использования полного DN, но этот метод не подходит для некоторых других серверов LDAP, поэтому он используется не так часто.