mod_auth_ldap和mod_authnz_ldap之间的区别

时间:2011-08-23 16:55:32

标签: svn apache2 ldap

我们使用LDAP来使用Apache httpd进行Subversion访问。我们最初使用以下所有用户都可以访问所有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 个答案:

答案 0 :(得分:26)

遇到此问题的其他任何人。它与更新版本的Apache httpd有关。我的困惑源于httpd的版本2.1和2.2之间的变化。因为我有Apache 2.2,所以我想使用新的框架:

  • mod_auth_ldap适用于2.2之前的Apache版本
  • mod_authnz_ldap适用于Apache 2.2及更高版本。

来自Apache 2.2 Manual

模块增强

Authn / AuthZ的

  

aaa目录中的模块已重命名,并为摘要式身份验证提供了更好的支持。例如,mod_auth现已分为mod_auth_basicmod_authn_file; mod_auth_dbm现在称为mod_authn_dbm; mod_access已重命名为mod_authz_host。还有一个新的mod_authn_alias(已从2.3 / 2.4中删除)模块,用于简化某些身份验证配置。

mod_authnz_ldap模块

  

此模块是2.2 mod_auth_ldap模块到2.2 Authn / Authz框架的端口。新功能包括在Require指令中使用LDAP属性值和复杂的搜索过滤器。

模块开发人员更改

Authn / AuthZ的

  

捆绑的身份验证和授权模块已按以下行重命名:

     
      
  • mod_auth_* - &gt;实现HTTP身份验证机制的模块
  •   
  • mod_authn_* - &gt;提供后端身份验证提供程序的模块
  •   
  • mod_authz_* - &gt;实施授权(或访问)的模块
  •   
  • mod_authnz_* - &gt;实现身份验证和模块的模块授权
  •