Разница между mod_auth_ldap и mod_authnz_ldap - PullRequest
17 голосов
/ 23 августа 2011

Мы используем 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, а не обычный mod_auth_ldap. Таким образом, мне нужно ldap-group вместо group в моем Require утверждении. Это сработало.

Мой коллега сообщил мне, что была причина, по которой мы использовали mod_auth nz _ldap, а не mod_auth_ldap, но он не мог вспомнить почему. Мы просмотрели документацию Apache httpd, но в документации нет подсказок, почему вы должны использовать один поверх другого.

Итак, в чем разница между mod_auth_ldap и mod_auth nz _ldap и почему вы используете один поверх другого?

1 Ответ

26 голосов
/ 20 апреля 2012

Кто-нибудь еще, кто сталкивался с этим вопросом.Это связано с более новыми версиями Apache httpd.Моя путаница возникла из-за изменений между версией 2.1 и 2.2 httpd.Поскольку у меня был Apache 2.2, я предполагал использовать новую среду:

  • mod_auth_ldap для версий Apache до 2.2
  • mod_authnz_ldap для версий Apache 2.2 и новее.

Из Apache 2.2 Manual

Улучшения модуля

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

Этот модуль является портом 2.0Модуль mod_auth_ldap для платформы 2.2 Authn / Authz.Новые функции включают в себя использование значений атрибутов LDAP и сложных поисковых фильтров в директиве Require.

Изменения разработчика модуля

Authn / Authz

Связанная аутентификация иМодули авторизации были переименованы следующим образом:

  • mod_auth_* -> Модули, которые реализуют механизм HTTP-аутентификации
  • mod_authn_* -> Модули, которые предоставляют провайдер аутентификации бэкэнда
  • mod_authz_* -> Модули, которые реализуют авторизацию (или доступ)
  • mod_authnz_* -> Модуль, который реализует как аутентификацию, так и авторизацию
...