Предположим, что приложение может быть настроено на использование сервера LDAP - будь то ActiveDirectory, или OpenLDAP и т. Д. - для аутентификации своих пользователей и получения некоторой дополнительной информации о них для целей авторизации. Способ привязки приложения к серверу LDAP также настраивается - он может использовать простую привязку или привязку SASL, в зависимости от того, что поддерживает сервер LDAP, и общих требований безопасности.
Предполагается, что если привязка завершается успешно с какими-либо учетными данными, предоставленными пользователем, то это должно означать, что эти учетные данные действительны. Однако это не всегда так; может случиться так, что простое связывание будет успешным, даже если был предоставлен пустой пароль, хотя на самом деле ожидался непустой. Согласно RFC о методах аутентификации LDAP простая привязка с непустым именем пользователя и пустым паролем интерпретируется как намерение установить неаутентифицированное соединение с анонимной авторизацией. Сервер может быть настроен на неудачу таких попыток с unwillingToPerform, но он также может разрешить их.
Вопрос в том, что в таком сценарии, когда приложение может быть настроено на использование различных серверов LDAP и привязку настраиваемым способом - простым или через SASL - существует ли способ однозначно проверить учетные данные, введенные пользователем с этим конкретным сервером LDAP, кроме попыток связывания с этими учетными данными, учитывая, что простое связывание может привести к ложным срабатываниям?
Спасибо, и я с нетерпением жду ваших ответов.