Question Différence entre mod_auth_ldap et mod_authnz_ldap


Nous utilisons LDAP pour l'accès Subversion à l'aide d'Apache httpd. Au départ, tous nos dépôts Subversion étaient accessibles à tous les utilisateurs en utilisant ce qui suit:

<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>

Tout était bien. On m'a demandé de déplacer le référentiel CM vers un autre emplacement et de le rendre accessible uniquement aux personnes du groupe CM. J'ai fait ce qui suit:

<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>

J'ai passé quelques heures dessus avant de me rendre compte que j'utilisais mod_authnz_ldap et pas simple ol 'mod_auth_ldap. Donc, j'avais besoin ldap-group au lieu de group dans mon Require déclaration. Ça a marché.

Mon collègue m'a informé qu'il y avait une raison pour laquelle nous avons utilisé mod_authnz_ldap et pas mod_auth_ldap, mais il ne pouvait pas se rappeler pourquoi. Nous avons recherché la documentation Apache httpd, mais la documentation ne fournit aucune indication sur les raisons pour lesquelles vous utiliseriez l'un sur l'autre.

Alors, quelle est la différence entre mod_auth_ldap et mod_authnz_dap, et pourquoi utiliseriez-vous l'un sur l'autre?


17
2017-08-23 16:55


origine


Réponses:


Quelqu'un d'autre qui est tombé sur cette question. Cela concerne les nouvelles versions d'Apache httpd. Ma confusion provient des changements entre les versions 2.1 et 2.2 de httpd. Comme j'avais Apache 2.2, j'étais supposé utiliser le nouveau framework:

  • mod_auth_ldap est pour les versions d'Apache avant 2.2
  • mod_authnz_ldap est pour les versions Apache 2.2 et ultérieures.

Du Apache 2.2 Manual

Améliorations du module

Authn / Authz

Les modules du répertoire aaa ont été renommés et offrent une meilleure prise en charge de l'authentification Digest. Par exemple, mod_auth est maintenant divisé en mod_auth_basic et mod_authn_file; mod_auth_dbm est maintenant appelé mod_authn_dbm; mod_access a été renommé mod_authz_host. Il y a aussi une nouvelle mod_authn_alias (déjà supprimé de 2.3 / 2.4) module pour simplifier certaines configurations d’authentification.

mod_authnz_ldap

Ce module est un port du module 2.0 mod_auth_ldap vers le framework 2.2 Authn / Authz. Les nouvelles fonctionnalités incluent l'utilisation des valeurs d'attribut LDAP et des filtres de recherche complexes dans la directive Require.

Modifications du développeur de module

Authn / Authz

Les modules d'authentification et d'autorisation fournis ont été renommés selon les lignes suivantes:

  • mod_auth_* -> Modules qui implémentent un mécanisme d'authentification HTTP
  • mod_authn_* -> Modules fournissant un fournisseur d'authentification backend
  • mod_authz_* -> Modules qui implémentent l'autorisation (ou l'accès)
  • mod_authnz_* -> Module qui implémente à la fois l'authentification et l'autorisation

26
2018-04-20 15:24