0

我正在通过 HTTP 提供 Git,并希望使用 Active Directory 组锁定对每个存储库的访问。当前相关配置如下:

这是 Apache 配置中的顶级指令:

<LocationMatch "^/git/.*$">
    Order allow,deny
    Allow from all

    AuthLDAPBindDN "someaccount@domain.local"
    AuthLDAPBindPassword "somepassword"
    AuthType Basic
    AuthBasicProvider ldap
    AuthLDAPURL "ldap://dc.domain.local:3268/DC=domain,DC=local?sAMAccountName?sub?(objectClass=*)" NONE
    Require ldap-group cn=Domain Users,cn=Users,dc=domain,dc=local
</LocationMatch>

然后我对每个存储库分别有这样的东西:

<Location /git/somerepo.git>
  <Limit GET PUT POST DELETE PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
    Require ldap-filter memberof:1.2.840.113556.1.4.1941:=CN=somerepo,OU=Git,DC=domain,DC=local
  </Limit>
</Location>

这可行,但每当添加/删除存储库时都需要更改配置。有没有办法提取与 in 匹配的值.*LocationMatch以便我们可以将其插入require ldap-filter指令中?

4

1 回答 1

0

看起来这是不可能的,因为LocationMatch不支持反向引用。

来源:https ://serverfault.com/a/423913/28470

于 2013-04-24T23:50:47.340 回答