Аутентификация Apache не выполняется с помощью require ldap-group

Я пытался связать apache на сервере Windows с нашим сервером Active Directory для аутентификации и авторизации.

Чтобы проверить это, я пробовал обработчик "ldap-status" со следующими параметрами

<Location "/ldap-status">
    SetHandler ldap-status

    AuthType Basic
    AuthBasicProvider ldap
    AuthName "LDAP Status"
    LDAPReferrals off
    AuthLDAPBindAuthoritative on
    AuthLDAPURL "ldap://1.2.3.4:389/cn=Users,dc=XXX,dc=example,dc=com?sAMAccountName?sub?(objectClass=person)" NONE
    AuthLDAPGroupAttribute member
    AuthLDAPGroupAttributeIsDN on
    AuthLDAPMaxSubGroupDepth 0
    AuthLDAPBindDN xxx
    AuthLDAPBindPassword xxx
    Require ldap-group "cn=TEST GROUP,cn=Users,dc=XXX,dc=example,dc=com"
</Location>

. До этого момента, если я удалю , Требуется ldap-group и заменяю его на Требовать действительного пользователя , это работает правильно, но не, если я восстановлю требование группы.

Судя по тому, что я вижу на сервере AD с помощью PowerShell, группа существует и имеет члена атрибут, в котором перечислены DN всех участников; на основе этого я установил AuthLDAPGroupAttribute на member и AuthLDAPGroupAttributeIsDN на на .

Я уверен, что мой пользователь входит в группу которую я требую проверить, однако в журнале ошибок apache есть только эта запись, которая на самом деле не помогает понять причину:

[Пн, 27 апреля, 14: 52: 08.023952 2020] [authz_core: error] [pid 13168: tid 2072] [client 10.0.1.45:59690] AH01631: пользователь mtassinari: ошибка авторизации для «/ ldap-status»:

Что я могу сделать, чтобы исправить конфигурацию, чтобы понять, почему "require ldap-group" не работает?

0
задан 27 April 2020 в 16:22
1 ответ

В конце концов мне удалось заставить его работать, разделив аутентификацию и авторизацию с помощью псевдонимов, например так:

<AuthnProviderAlias ldap my-ldap>
    AuthLDAPBindAuthoritative on
    AuthLDAPURL "ldap://1.2.1.4:389/cn=Users,dc=XXX,dc=example,dc=com?sAMAccountName?sub?(objectClass=person)" NONE
    AuthLDAPBindDN xxx
    AuthLDAPBindPassword xxx
</AuthnProviderAlias>

<AuthzProviderAlias ldap-group ldap-group-test "cn=TEST GROUP,cn=Users,dc=XXX,dc=example,dc=com">
    AuthLDAPURL "ldap://1.2.1.4:389/cn=Users,dc=XXX,dc=example,dc=com" NONE
    AuthLDAPBindDN xxx
    AuthLDAPBindPassword xxx
    AuthLDAPGroupAttribute member
    AuthLDAPGroupAttributeIsDN on
    AuthLDAPMaxSubGroupDepth 0
</AuthzProviderAlias>

<Location "/ldap-status">
    SetHandler ldap-status
    LDAPReferrals off

    AuthType Basic
    AuthName "LDAP Status"
    AuthBasicProvider my-ldap
    Require ldap-group-test
</Location>

Я думаю ключевое отличие здесь заключается в AuthLDAPURL, который в поставщике авторизации не имеет никакого фильтра, просто не кажется правильным повторять общие параметры конфигурации, чтобы заставить его работать.

1
ответ дан 27 April 2020 в 13:22

Теги

Похожие вопросы