Apache mod_auth_basic 和排序

Apache mod_auth_basic 和排序

我已将 Apache 设置为通过 ldap 为我的用户使用活动目录进行身份验证。有几个“系统”用户(用于自动构建测试)是手动设置并通过文件进行身份验证的。

AuthBasicProvider ldap file

我遇到的问题是 Active Directory 框偶尔会因维护或其他原因而关闭,我不希望我的“系统”用户在此期间被拒绝访问。我希望 Apache 尝试使用文件进行身份验证,然后使用 ldap,但这似乎不可能。根据http://httpd.apache.org/docs/2.2/mod/mod_auth_basic.html,“处理顺序由模块源代码决定,且不可配置。”

这似乎不对。我认为人们(通常)会想要指定身份验证提供程序的顺序(如果不是出于我想要的原因,那么就是出于其他原因)。有没有办法在不破解源代码的情况下做到这一点?

ps 更改配置AuthBasicProvider file ldap没有任何区别。

答案1

根据http://httpd.apache.org/docs/2.2/mod/mod_auth_basic.html,“处理顺序由模块源代码决定,且不可配置。”

上面的引文是不是谈论你所问的问题:

mod_auth_basic只有在与第三方模块结合时才有必要这样做不是使用AuthBasicProvider 指令进行配置。使用此类模块时,处理顺序由模块的源代码决定,不可配置。

从 2.2 版开始,Apache 允许使用多个提供商。我已经在我的系统(Apache 2.2.20)上测试过,它运行良好:

<Location />
    AuthType Basic
    AuthBasicProvider file ldap
    AuthUserFile /etc/httpd/passwords
    AuthzLDAPAuthoritative Off
    AuthLDAPURL ldap://ip:389/dc=x,dc=y?cn
    AuthLDAPBindDN cn=anonymous,ou=z,dc=x,dc=y
    AuthLDAPBindPassword pa$$w0rd
    AuthName "Restricted Area"

    AuthzLDAPGroupBase      ou=z,dc=x,dc=y
    AuthzLDAPGroupkey       cn
    AuthzLDAPMemberKey      member
    AuthzLDAPSetGroupAuth   user
    require valid-user
    AuthzLDAPLogLevel       error
</Location>

停止 OpenLDAP,我仍然可以使用 中的用户登录/etc/httpd/passwords

相关内容