Apache LDAP 授权

Apache LDAP 授权

我尝试使用 mod_auth_cas 进行 AuthN 和 LDAP 进行 AuthZ。mod_cas_auth 实际上是不相关的,因为我对 AuthN 的 BasicAuth 也遇到了同样的问题。如果我指定,一切都会正常工作<location "/">,但是一旦我指定子位置,<Location "/secure">授权就会失败,我会得到 403。

例如,这个有效并且允许指定 LDAP 组中的人员访问:

<Location "/">
  AuthType Basic
  AuthUserFile var/ht.passwd
  AuthName Secure
  AuthLDAPUrl         "ldaps://<snip>?sAMAccountName?sub?(objectClass=*)"
  AuthLDAPBindDN      "CN=<snip>
  AuthLDAPBindPassword <snip>
  Require ldap-group CN=<snip>
</Location>

但这并不适用 - 它只会向所有人返回 403

<Location "/secure">
  AuthType Basic
  AuthUserFile var/ht.passwd
  AuthName Secure
  AuthLDAPUrl         "ldaps://<snip>?sAMAccountName?sub?(objectClass=*)"
  AuthLDAPBindDN      "CN=<snip>
  AuthLDAPBindPassword <snip>
  Require ldap-group CN=<snip>
</Location>

在第二种情况的日志中我有:

auth_ldap authorise: User DN not found, ldap_search_ext_s() for user failed

这是 Apache 2.2 上的。我认为这肯定是一个错误,但我想知道我是否可以做点什么来让它正常工作?

答案1

但是为什么你仍然使用“AuthUserFile”?这对我来说有用:

            AuthType Basic
            AuthName "Some name"
            Require ldap-group <snip>
            SSLOptions +FakeBasicAuth
            AuthBasicProvider ldap
            AuthLDAPBindDN uid=<snip>
            AuthLDAPBindPassword <snip>
            AuthLDAPURL ldaps://<server>/<basedn>?uid?sub
            AuthLDAPRemoteUserAttribute uid
            AuthzLDAPAuthoritative on
            Options MultiViews

错误“未找到用户 DN”告诉您有关身份验证问题。因此,请检查您的 authbinddn 和 authbindpassword,例如使用 ldapsearch:ldapsearch -H ldap://server -x -D cn=

相关内容