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

Аутентификация Active Directory с Apache: почему мне нужно использовать полное имя (пользователь в домене)?

Мы используем Apache 2.2 для аутентификации в Active Directory. Конфигурация следующая:

AuthFormLDAPURL "ldap://*.*.*.*:389/DC=domain,DC=com?userPrincipalName,sAMAccountName?sub?(objectClass=*)"

Примечание. Все трассировки ниже с использованием WireShark.

Я определил пользователя john, когда CN совпадает с именем sAMAcountMame:

Я могу пройти аутентификацию, используя только john (sAMAcountMame). Пожалуйста, найдите ниже запрос привязки LDAP:

Ответ привязки LDAP:

Затем я определил пользователя johnd, когда CN НЕ равно имени sAMAcountMame:

К сожалению, я не могу пройти аутентификацию с помощью johnd (sAMAcountMame). Пожалуйста, найдите ниже запрос привязки LDAP:

Ответ привязки LDAP:

Я могу пройти аутентификацию, используя полное имя jonhd@domain.com. Пожалуйста, найдите ниже запрос привязки LDAP:

Ответ привязки LDAP:

Вопросы:

  1. Почему я не могу пройти аутентификацию с помощью sAMAcountMame, если CN НЕ равен sAMAcountMame?
  2. Почему в этом случае я могу пройти аутентификацию с помощью sAMAcountMame в домене?
  3. Должны ли мы рекомендовать нашим пользователям всегда аутентифицироваться с помощью sAMAcountMame в домене, чтобы предотвратить проблемы аутентификации?

Спасибо за вашу помощь!

При выполнении простого связывания LDAP AD не пытается сопоставить переданное имя с sAMAccountName атрибут без суффиксов. Однако он может попытаться найти матч против displayName, который сработал для вас в первом тесте (где он выглядел как матч против sAMAccountName, потому что значения этих атрибутов были одинаковыми).

Точное описание правил сопоставления имен, используемых при обработке простых привязок LDAP, можно найти в документации Microsoft: http://msdn.microsoft.com/en-us/library/cc223499.aspx

Использование UPN, вероятно, более надежно, потому что displayName может содержать некоторую удобочитаемую строку (например, полное имя человека), и его уникальность не гарантируется. Форма DOMAIN \ USERNAME также должна быть уникальной, но зависеть от доменных имен NetBIOS, которые сейчас считаются устаревшими.