“如何避免Apache”;“内部服务器错误”;如果无法访问其中一个LDAP身份验证提供程序?

“如何避免Apache”;“内部服务器错误”;如果无法访问其中一个LDAP身份验证提供程序?,apache,authentication,ldap,Apache,Authentication,Ldap,我在Apache中为一个有两个AuthBasicProviders的网站使用LDAP身份验证。 如果其中一个LDAP服务器不可访问(例如,因为:服务器关闭或其网络不可访问),则如果要验证的UID来自此LDAP服务器,则会出现“内部服务器错误” 我怎样才能抓住这种情况并回复一个友好的信息呢。类似于: “很抱歉,我们目前无法检查您的身份验证。” UID对于两个ldap服务器都是唯一的 如果我把“ldap_remote”放在前面,它是不可访问的 =>它总是失败(不会询问“ldap_local”) 如

我在Apache中为一个有两个AuthBasicProviders的网站使用LDAP身份验证。 如果其中一个LDAP服务器不可访问(例如,因为:服务器关闭或其网络不可访问),则如果要验证的UID来自此LDAP服务器,则会出现“内部服务器错误”

我怎样才能抓住这种情况并回复一个友好的信息呢。类似于:
“很抱歉,我们目前无法检查您的身份验证。”

  • UID对于两个ldap服务器都是唯一的

  • 如果我把“ldap_remote”放在前面,它是不可访问的 =>它总是失败(不会询问“ldap_local”)

  • 如果我将“ldap_local”放在前面,首先会搜索它 如果有UID=>Fine(密码是否正确)

  • 但是如果UID不在“ldap\u local”上,则会询问“ldap\u remote”。 如果可以访问ldap_remote=>Fine(密码是否正确)。 但如果无法访问=>“内部服务器错误”:-(

我在Apache2配置中使用以下内容:

  # this one is always reachable
  <AuthnProviderAlias ldap ldap_local>
    AuthLDAPUrl  ldap://127.0.0.1/dc=mycompany,dc=com
  </AuthnProviderAlias>
  # Not always available
  <AuthnProviderAlias ldap ldap_remote>
    AuthLDAPUrl  ldap://xyz.mycompany.com:389/dc=mycompany,dc=com?sAMAccountName
    AuthLDAPBindDN       ldapadmin@mycompany.com
    AuthLDAPBindPassword xxxxxxxxx
  </AuthnProviderAlias>
  # and later ...
  <Location /foo >
    AuthName "foo at my-server"
    AuthType Basic
    AuthBasicProvider  ldap_local ldap_remote
    Require valid-user
  </Location>
#始终可以访问此项
AuthLDAPUrlldap://127.0.0.1/dc=mycompany,dc=com
#并非总是可用
AuthLDAPUrlldap://xyz.mycompany.com:389/dc=mycompany,dc=com?sAMAccountName
authldappinddnldapadmin@mycompany.com
AuthLDAPBindPassword xxxxxxxxx
#后来。。。
AuthName“我的服务器上的foo”
AuthType Basic
AuthBasicProvider ldap\u本地ldap\u远程
需要有效用户