Назад | Перейти на главную страницу

Авторизация 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. Я думаю, что это, должно быть, ошибка, но мне интересно, могу ли я что-нибудь сделать, чтобы это работало?

Но почему вы все еще используете 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 =