Apache LDAP авторизация

Я пытаюсь использовать mod_auth_cas для AuthN и LDAP для AuthZ. mod_cas_auth на самом деле не имеет значения, потому что у меня та же проблема с BasicAuth для AuthN. Все отлично работает если я укажу <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>

В логах для 2-й ситуации у меня есть:

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=

Другие вопросы по тегам