2

Я работаю над поддержкой аутентификации LDAP для нашего веб-приложения. Во время тестирования этой функции я заметил очень странное поведение: пользователь может проходить аутентификацию с использованием правильного пароля ИЛИ без пароля. Если введен неправильный пароль, аутентификация не пройдена.

Сначала я подумал, что, возможно, что-то пропустил в своем коде, но затем я решил проверить это с помощью некоторого настольного клиента. Я попробовал «Active Directory Explorer» из Windows Sysinternals, и, к удивлению, это привело к тому же поведению.

Есть мысли по этому поводу? Как вы уже догадались, мы используем Active Directory. Дайте мне знать, если мне нужно больше узнать о нашей конфигурации Active Directory.

2 ответа2

2

Кажется, я нашел объяснение здесь: LDAP: Простая аутентификация. Говорится:

Примечание. Если вы предоставляете пустую строку, пустой массив байтов / символов или ноль в контекст.Свойство среды SECURITY_CREDENTIALS, тогда механизм аутентификации будет "none". Это потому, что LDAP требует, чтобы пароль был непустым для простой аутентификации. Протокол автоматически преобразует аутентификацию в "none", если пароль не указан.

2

Отличительное имя не может "аутентифицироваться" с паролем нулевой длины. Простая операция BIND LDAP имеет следующие возможности:

  • нет DN, нет пароля (anonymous , аутентификация не выполняется)
  • DN, без пароля unauthenticated аутентификация не происходит)
  • DN, пароль (аутентификация успешна, если учетные данные совпадают)
  • нет DN, пароль (поведение сервера не определено в стандартах)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .