Разница между мод аутентификации LDAP и LDAP с модом authnz


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

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

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

1 17

1 ответ:

Любой другой, кто сталкивался с этим вопросом. Это связано с более новыми версиями 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

Модуль Усовершенствования

Authn / Autz

Модули в каталоге 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 / Autz

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

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