You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Subversion结合Active Directory认证失效问题求助

问题分析与解决方案

看起来你踩了两个常见的Apache LDAP授权配置坑,导致RO用户无法正常访问。我们一步步拆解问题:

核心问题1:读写操作的权限规则完全搞反了

你配置里的<Limit MKACTIVITY PROPPATCH PUT ...>包含的都是写操作(比如修改、提交、删除版本库内容的动作),而<LimitExcept>对应的是剩下的读操作(比如浏览、检出代码)。但你的注释和权限规则完全写反了——你给写操作开放了RO和RW组,却要求读操作必须属于RW组,这直接导致RO用户执行读操作时被拒绝。

核心问题2:多余的<RequireAll>强制所有规则必须通过

<RequireAll>的作用是要求内部所有授权规则都满足才能通过,但RO用户本身不属于RW组,所以当他们执行读操作时,会触发<LimitExcept>里的RW组要求,被<RequireAll>整体拒绝。


修正后的完整配置

<Location /puppet/>
    AuthType basic
    AuthName "Subversion Puppet"
    AuthBasicProvider ldap
    AuthLDAPBindDN ldapbind@mydomain.de
    AuthLDAPBindPassword secretpassword
    AuthLDAPURL "ldaps://ldap01.mydomain.de:3269 ldap02.mydomain.de:3269/?sAMAccountName?sub"
    AuthLDAPGroupAttributeIsDN off

    # 写操作:仅允许RW组用户执行(提交、修改等动作)
    <Limit MKACTIVITY PROPPATCH PUT CHECKOUT MKCOL MOVE COPY DELETE LOCK UNLOCK MERGE>
        Require ldap-attribute memberOf="CN=RW-USERGROUP,OU=Subversion,OU=Groups,DC=MYDOMAIN,DC=DE"
    </Limit>

    # 读操作:允许RO和RW组用户执行(浏览、检出等动作)
    <LimitExcept MKACTIVITY PROPPATCH PUT CHECKOUT MKCOL MOVE COPY DELETE LOCK UNLOCK MERGE>
        <RequireAny>
            Require ldap-attribute memberOf="CN=RO-USERGROUP,OU=Subversion,OU=Groups,DC=MYDOMAIN,DC=DE"
            Require ldap-attribute memberOf="CN=RW-USERGROUP,OU=Subversion,OU=Groups,DC=MYDOMAIN,DC=DE"
        </RequireAny>
    </LimitExcept>

    DAV svn
    SVNParentPath /srv/svn/puppet
    SVNListParentPath on
</Location>

关键修改说明

  1. 移除<RequireAll>标签:<Limit>和<LimitExcept>已经独立定义了不同操作的授权规则,不需要强制所有规则同时满足。
  2. 修正权限与操作的对应关系:
    • 写操作只开放给RW组,确保只有有权限的用户能修改版本库;
    • 读操作开放给RO和RW组,符合你“RO只读、RW读写”的需求。
  3. 调整<RequireAny>的位置:把它放在读操作的<LimitExcept>里,确保读操作时只要用户属于两个组中的一个即可通过授权。

结合日志的验证

你的日志里多次出现authorization result of <RequireAll>: denied,就是因为RO用户不满足<LimitExcept>里的RW组要求,被<RequireAll>强制拒绝。修正后,读操作的规则只会检查用户是否属于RO或RW组,RO用户就能正常通过认证和授权了。

内容的提问来源于stack exchange,提问作者user1989746

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:41:36