Проверка подлинности 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

Эта ветка является бета-версией и может быть еще не легко доступна для вашей ОС.

Другие вопросы по тегам