设置Apache和Subversion以使用LDAP(Windows Active Directory)组身份验证

时间:2011-04-13 17:11:34

标签: svn active-directory apache2 ldap apache

我正在尝试使用Subversion的LDAP访问设置Apache httpd,需要一些帮助:

我想要做的是使用一个组进行访问。如果您是该组的成员,则您具有读/写访问权限。如果不是,则无法访问。

我们的LDAP服务器中的组记录( ldap://ldap.MyCompany.com/DC=MyCompany,DC=COM

CN=SVN-GROUP,CN=Users,DC=MyCompany,DC=com

并且该组的成员在此记录中如下:

member: CN=David Weintraub,OU=Users,OU=Brooklyn,OU=Accounts,DC=MyCompany,DC=COM
member: CN=Joe Public,OU=Users,OU=Cincinnati,OU=Accounts,DC=MyCompany,DC=COM

如果您在LDAP中查找我的记录,您会看到:

memberOf: CN=SVN-GROUP,CN=Users,DC=MyCompany,DC=com
Name: David Weintraub
Distinguished Name: CN=David Weintraub,OU=Users,OU=Brooklyn,OU=Accounts,DC=MyCompany,DC=COM
sAMAccountName: dweintraub

我想要做的是使用我的Windows密码以dweintraub(我的Windows帐户)登录。我也不想将Windows域指定为登录的一部分。每个人都将成为mycompany域名的一部分。

我正在尝试浏览Apache httpd网站,但将所有内容放在一起有点困难。

这提醒我,任何人都可以推荐一本好的Apache书吗?

1 个答案:

答案 0 :(得分:11)

如果您使用的是Apache 2.2,这实际上非常简单。确保将Apache配置为同时启用mod_ldap和mod_authnz_ldap。

以下是AD ldap身份验证和授权所需的最低要求:

<Location /path/to/repo/>
    AuthType basic
    AuthName "My Repository"
    AuthBasicProvider ldap
    AuthLDAPURL "ldap://ldap.example.com:3268/dc=example,dc=com?sAMAccountName" NONE
    AuthLDAPBindDN "DN of service account allowed to search"
    AuthLDAPBindPassword "Password of service account allowed to search"
    Require ldap-group DN of group allowed access to repo
</Location>

对于ldap-group,请勿使用引号括住DN。通过指定端口3268,您将连接到全局编录。我发现这样做效果更好,因为Apache不会得到一堆推荐。