Разница между mod_auth_ldap и mod_authnz_ldap
Мы используем LDAP для доступа к Subversion, используя Apache httpd. Первоначально у нас были все наши репозитории Subversion, доступные для всех пользователей, используя следующее:
<Location /src>
DAV svn
SVNParentPath /opt/svn_repos
AuthType basic
AuthName "SVN Repository"
AuthBasicProvider ldap
AuthzLDAPAuthoritative off
AuthLDAPURL "ldap://ldap.mycorp.com:3268/dc=mycorp,dc=com?sAMAccountName" NONE
AuthLDAPBindDN "CN=svn_acct,OU=Users,DC=mycorp,DC=com"
AuthLDAPBindPassword "swordfish"
Require valid-user
</Location>
Все было хорошо. Меня попросили переместить репозиторий CM в другое место и сделать его доступным только для людей из группы CM. Я сделал следующее:
<Location /cm>
DAV svn
SVNPath /opt/cm_svn_repos
AuthType basic
AuthName "CM Repository"
AuthBasicProvider ldap
AuthzLDAPAuthoritative off
AuthLDAPURL "ldap://ldap.mycorp.com:3268/dc=mycorp,dc=com?sAMAccountName" NONE
AuthLDAPBindDN "CN=svn_acct,OU=Users,DC=mycorp,DC=com"
AuthLDAPBindPassword "swordfish"
Require group CN=cm-group,OU=Groups,DC=mycorp,DC=com
</Location>
Я потратил пару часов на это, прежде чем понял, что я использую mod_auth nz _ldap, а не простой ol 'mod_auth_ldap. Таким образом, мне понадобилось ldap-group
вместо group
в моей инструкции Require
. Это сработало.
Мой коллега сообщил мне, что была причина, по которой мы использовали mod_auth nz _ldap, а не mod_auth_ldap, но он не мог вспомнить, почему. Мы просмотрели документацию Apache httpd, но в документации нет никаких подсказок, почему вы используете один над другим.
Итак, в чем разница между mod_auth_ldap и mod_auth nz _ldap и почему вы используете один над другим?
Ответы
Ответ 1
Любой, кто столкнулся с этим вопросом. Это связано с более новыми версиями Apache httpd. Моя путаница проистекала из изменений между версиями 2.1 и 2.2 httpd. Поскольку у меня был Apache 2.2, я предполагал использовать новую структуру:
-
mod_auth_ldap
для версий Apache до 2.2
-
mod_authnz_ldap
для Apache версий 2.2 и более поздних версий.
Улучшения модулей
AuthN/AuthZ
Модули в каталоге aaa были переименованы и предлагают лучшую поддержку для проверки дайджеста. Например, mod_auth
теперь разделяется на mod_auth_basic
и mod_authn_file
; mod_auth_dbm
теперь называется mod_authn_dbm
; mod_access
было переименовано mod_authz_host
. Существует также новый модуль mod_authn_alias
(уже удален из 2.3/2.4) для упрощения определенных конфигураций проверки подлинности.
mod_authnz_ldap
Этот модуль представляет собой модуль модуля mod_auth_ldap 2.0 для 2.2-схемы Authn/Authz. Новые функции включают использование значений атрибутов LDAP и сложных фильтров поиска в директиве Require.
Изменения в модуле разработчика
AuthN/AuthZ
Объединенные модули аутентификации и авторизации были переименованы в следующие строки:
-
mod_auth_*
→ Модули, реализующие механизм проверки подлинности HTTP -
mod_authn_*
→ Модули, предоставляющие поставщик внутренней проверки подлинности -
mod_authz_*
→ Модули, реализующие авторизацию (или доступ) -
mod_authnz_*
→ Модуль, который реализует как аутентификацию, так и авторизацию