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

Dav*_* W. 5 svn apache ldap apache2 active-directory

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

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

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

CN=SVN-GROUP,CN=Users,DC=MyCompany,DC=com
Run Code Online (Sandbox Code Playgroud)

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

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
Run Code Online (Sandbox Code Playgroud)

如果您在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
Run Code Online (Sandbox Code Playgroud)

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

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

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

jbr*_*uni 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>
Run Code Online (Sandbox Code Playgroud)

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