具有 "ldap file" 提供商的 BasicAuth 不适用于文件中的用户

BasicAuth with "ldap file" providers doesn't work for users in file

我有一个主机,其中经过身份验证的用户需要在某个 ldap 组中。这非常有效。之后我需要一个外部用户,我把它放在本地的一个文件中,但这个不起作用。

当我注释掉用户使用的所有 ldap 行时,文件正确创建并可由 Apache 2.2 访问,但是当我添加 ldap 时,所有内容都对 ldap 用户有效,但对文件用户无效。

当我尝试使用密码错误的本地文件用户登录时,我像往常一样再次弹出登录窗口,但是当我插入正确的凭据时,我得到“授权必需 此服务器无法验证您是否有权访问所请求的文档。您提供了错误的凭据(例如密码错误),或者您的浏览器不了解如何提供所需的凭据。”

下面是我在 Apache 2.2 上的设置

        <Location "/">
            Deny from all

            AuthType Basic
            AuthName "My Auth"
            AuthBasicProvider ldap file
            AuthLDAPURL LDAP_URL
            AuthUserFile "path/to/pass/file"

            Require user file_user
            Require ldap-group cn=LDAP Group,cn=Groups,dc=DC,dc=org
            Require ldap-user ldap_user_outside_group

            Satisfy any
    </Location>

您可能需要 AuthzLDAPAuthoritative 以允许匹配基于 ldap 的 Require 指令的失败不是致命的。通过 2.4 中的内部改进,这种指令在以后的版本中已过时。