Проверка подлинности Apache LDAP: могу ли я связать пользователя без предварительного поиска DN?
При выполнении AuthType Basic
При аутентификации на сервере LDAP Apache сначала связывается для поиска DN пользователя, а затем связывается с этим DN для проверки пароля пользователя. Проблема в том, что с AD вы обычно не можете выполнить анонимное связывание. Итак, вы должны установить AuthLDAPBindDN
,
Но, я говорю, я уже знаю DN! Мне не нужно связывать-искать-связывать, я могу просто связать как cn=_username_,OU=Employees,DC=megacorp,DC=com
!
Это кажется невозможным, но я подумал, что могу спросить: могу ли я убедить Apache пропустить привязку и поиск для DN для использования для привязки, просто создав DN на лету, или сделаю Я должен поговорить с местной бюрократией о специальной учетной записи, с которой я могу связываться для поиска пользователя, которого я хочу аутентифицировать?
Спасибо!
-danny
3 ответа
К сожалению, кажется, что mod_auth_ldap настаивает на построении и выполнении поиска, вместо того, чтобы просто пытаться выполнить привязку с указанным DN. Это в большинстве, по моему опыту; большинство приложений, которые обращаются к активному каталогу через ldap (в отличие, скажем, от использования собственных пользовательских API-интерфейсов NT), предпочитают выполнять поиск-затем-привязку, а не просто пытаться выполнить привязку.
С положительной стороны (если вы можете это так называть), учетная запись пользователя без каких-либо прав должна удовлетворять ваши потребности, если в вашем дереве ldap нет ничего беспокойного относительно разрешений; членства в Аутентифицированных пользователях должно быть достаточно для выполнения всех ваших поисковых запросов. Его можно даже удалить из пользователей домена и назначить другую основную группу; это должно немного смягчить местную бюрократию.
На самом деле, в 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
Эта ветка является бета-версией и может быть еще не легко доступна для вашей ОС.