如果无法访问LDAP AuthProvider之一,如何避免Apache“内部服务器错误”?

时间:2019-09-05 18:59:00

标签: apache authentication ldap

我正在对Apa​​che中具有两个 AuthBasicProviders的网站使用LDAP身份验证。 如果其中一个LDAP服务器无法访问(例如,由于:服务器已关闭或其网络无法访问),如果要验证的UID来自此LDAP服务器,则会收到“内部服务器错误”消息。

我该如何捕捉这种情况并返回一条友好消息。类似的东西:
“很抱歉,我们目前无法检查您的身份验证。”

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

  • 如果我将“ ldap_remote”放在前面,则无法访问 =>它总是失败(“ ldap_local”不会被询问)。

  • 如果我将“ ldap_local”放在前面,则会首先对其进行搜索 以及是否存在UID =>正常(密码正确与否)。

  • 但是,如果UID不在“ ldap_local”上,则将询问“ ldap_remote”。 如果ldap_remote可访问=>正常(是否输入正确的密码)。 但是,如果无法访问,则=>“内部服务器错误”:-(

我在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>

0 个答案:

没有答案