При выполнении AuthType Basic
При аутентификации на сервере LDAP Apache сначала выполняет привязку для поиска DN пользователя, а затем выполняет привязку к этому DN для проверки пароля пользователя. Проблема в том, что с AD вы обычно не можете выполнить анонимное связывание. Итак, вам нужно установить AuthLDAPBindDN
.
Но, говорю, я уже знаю DN! Мне не нужно связывать поиск-привязку, я могу просто привязать как cn=_username_,OU=Employees,DC=megacorp,DC=com
!
Это кажется невозможным, но я подумал, что спрошу: могу ли я убедить Apache пропустить bind-and-search-for-DN-to-use-for-bind, просто создав DN на лету, или Мне нужно поговорить с местной бюрократией о специальной учетной записи, с которой я могу привязаться для поиска пользователя, которого я хочу аутентифицировать?
Спасибо!
-дэнни
Фактически, параметры в Apache 2.3 выглядят как AuthLDAPInitialBindAsUser и AuthLDAPInitialBindPattern.
AuthLDAPCompareAsUser и AuthLDAPSearchAsUser в некоторой степени связаны, но похоже, что они действуют только после начальная привязка произошла.
Я на самом деле не пробовал (так как у меня нигде не установлен apache 2.3, по крайней мере, пока), но я думаю, что вам нужна конфигурация примерно так:
AuthLDAPInitialBindAsUser on
AuthLDAPInitialBindPattern (.+) cn=$1,OU=Employees,DC=megacorp,DC=com
Apache 2.3.6 и выше поддерживает AuthLDAPCompareAsUser, который вы, вероятно, ищете.
http://httpd.apache.org/docs/2.3/mod/mod_authnz_ldap.html#authldapcompareasuser
Эта ветка является бета-версией и может быть труднодоступна для вашей ОС.
К сожалению, похоже, что mod_auth_ldap настаивает на построении и выполнении поиска вместо того, чтобы просто пытаться выполнить привязку с указанным вами DN. По моему опыту, это большинство; большинство приложений, которые обращаются к активному каталогу через ldap (в отличие от, скажем, использования собственных пользовательских API NT), предпочитают поиск, а затем привязку, а не просто попытку привязки.
С другой стороны (если это можно так назвать), учетная запись пользователя без каких-либо прав должна удовлетворять ваши потребности, если в вашем дереве ldap не происходит ничего беспокойного с точки зрения разрешений; членства в Authenticated Users должно быть достаточно, чтобы выполнять все, что нужно вашему поисковому пользователю. Его даже можно исключить из числа пользователей домена и назначить другую основную группу; это должно немного смягчить местную бюрократию.