Рейтинг:1

Apache 2.4 и LDAP. Основные проблемы аутентификации

флаг es

Я использую CentOS 8 Stream + Apache 2.4 + Subversion.

Я хочу разрешить доступ к SVN только пользователям, принадлежащим к определенной группе LDAP (svn-users).

У меня есть следующие проблемы.


случай 1. Введите правильный ID/PW как пользователя LDAP, принадлежащего svn-users

Это работает, как и ожидалось.

Этот пользователь может получить доступ к SVN.


случай 2. Введите правильный ID/PW как пользователя LDAP, не принадлежащего к svn-users

Это не работает должным образом.

Я ожидал, что этот пользователь не может получить доступ к SVN, но на самом деле он может.


случай3. Введите неправильный идентификатор LDAP / пароль

500 Внутренняя ошибка сервера.

В браузерах диалоговое окно обычной проверки подлинности больше не появляется, и пользователь должен перезапустить браузер.


Я хочу решить случаи 2 и 3.

Может кто-нибудь помочь мне?

Мой конфиг и лог ниже.

/etc/httpd/conf/httpd.conf

[root@my-redmine conf]# cat httpd.conf | egrep -v "^\s*#|^$"
Корневой сервер "/etc/httpd"
Слушай 80
Включить conf.modules.d/*.conf
Апач пользователя
Групповой апач
Администратор сервера root@localhost
<Каталог />
    AllowOverride нет
    Требовать все отказано
</Каталог>
DocumentRoot "/var/www/html"
<Каталог "/var/www">
    Аллововеррайд
    Требовать все предоставленные
</Каталог>
<Каталог "/var/www/html">
    Индексы опционов FollowSymLinks
    Аллововеррайд
    Требовать все предоставленные
</Каталог>
<IfModule dir_module>
    DirectoryIndex index.html
</ЕслиМодуль>
<Файлы ".ht*">
    Требовать все отказано
</файлы>
ErrorLog "журналы/журнал_ошибок"
Предупреждение LogLevel
<IfModule log_config_module>
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" в сочетании
    LogFormat "%h %l %u %t \"%r\" %>s %b" общий
    <IfModule logio_module>
      LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" в сочетании
    </ЕслиМодуль>
    CustomLog "журналы/журнал_доступа" объединены
</ЕслиМодуль>
<IfModule псевдоним_модуля>
    Псевдоним сценария /cgi-bin/ "/var/www/cgi-bin/"
</ЕслиМодуль>
<Каталог "/var/www/cgi-bin">
    Аллововеррайд
    Опции
    Требовать все предоставленные
</Каталог>
<IfModule mime_module>
    Конфигурация типов /etc/mime.types
    Приложение AddType/x-compress .Z
    Приложение AddType/x-gzip .gz .tgz
    AddType текст/html .shtml
    AddOutputFilter ВКЛЮЧАЕТ .shtml
</ЕслиМодуль>
Кодировка AddDefaultCharset UTF-8
<IfModule mime_magic_module>
    MIMEMagicFile conf/магия
</ЕслиМодуль>
ВключитьОтправить файл на
IncludeOptional conf.d/subversion.conf
[root@my-redmine conf]#

/etc/httpd/conf,d/subversion.conf

[root@my-redmine conf.d]# cat subversion.conf | egrep -v "^\s*#|^$"
<Расположение /svn/svn-test>
    ДАВ свн
    SVNPath /usr/local/svn/svn-test
    Отладка на уровне журнала

    AuthLDAPBindDN <MyAdmin>
    AuthLDAPBindPassword <MyAdminPassword>
    LDAPReferrals отключены
    AuthLDAPBindAuthoritative выключен
    Основной тип авторизации
    AuthName "Репозиторий Subversion (LDAP)"
    AuthBasicAuthoritative выключен
    AuthUserFile /dev/null
    AuthBasicProvider ldap
    AuthzSVNAccessFile /usr/local/svn/svn-test/authzsvn.conf
    AuthLDAPGroupAttributeIsDN выключен
    AuthLDAPGroupAttribute memberUid
    AuthLDAPUrl ldap://192.168.100.110/ou=People,dc=my,dc=svn,dc=local?uid
    Требуется ldap-group cn=svn-users,ou=Groups,dc=my,dc=svn,dc=local
</местоположение>
[root@my-redmine conf.d]#

модуль включает

[root@my-redmine conf.d]]# httpd -t -M | grep авторизация
 auth_basic_module (общий)
 auth_digest_module (общий)
 authn_anon_module (общий)
 authn_core_module (общий)
 authn_dbd_module (общий)
 authn_dbm_module (общий)
 authn_file_module (общий)
 authn_socache_module (общий)
 authz_core_module (общий)
 authz_dbd_module (общий)
 authz_dbm_module (общий)
 authz_groupfile_module (общий)
 authz_host_module (общий)
 authz_owner_module (общий)
 authz_user_module (общий)
 authnz_ldap_module (общий)
 authz_svn_module (общий)
[root@my-redmine conf.d]]#

случай 1 error_log

[Вторник, 20 июля, 21:56:43.046463 2021] [authz_svn:info] [pid 195900:tid 140586535274240] [client 192.168.100.120:61050] Доступ предоставлен: - GET (null)
[Вторник, 20 июля, 21:56:43.046514 2021] [authz_core:debug] [pid 195900:tid 140586535274240] mod_authz_core.c(820): [client 192.168.100.120:61050] AH01group=nvs626: результат авторизации Require cn ldap-6240 -users,ou=Groups,dc=my,dc=svn,dc=local: запрещено (пока нет аутентифицированного пользователя)
[Вторник, 20 июля, 21:56:43.046519 2021] [authz_core:debug] [pid 195900:tid 140586535274240] mod_authz_core.c(820): [client 192.168.100.120:61050] AH01626: результат авторизации: <RequirenoAny> авторизованный пользователь еще)
[Вторник, 20 июля, 21:56:45.339879 2021] [authz_core:debug] [pid 195900:tid 140586518488832] mod_authz_core.c(820): [client 192.168.100.120:61050] AH01group=nvs626: результат авторизации Require cn ldap-626 -users,ou=Groups,dc=my,dc=svn,dc=local: запрещено (пока нет аутентифицированного пользователя)
[Вторник, 20 июля, 21:56:45.339918 2021] [authz_core:debug] [pid 195900:tid 140586518488832] mod_authz_core.c(820): [client 192.168.100.120:61050] AH01626: результат авторизации: <RequirenoAny> авторизованный пользователь еще)
[Вторник, 20 июля, 21:56:45.339927 2021] [authnz_ldap:debug] [pid 195900:tid 140586518488832] mod_authnz_ldap.c(523): [client 192.168.100.120:61050] AH019291: authnz_ldap using .100.110/ou=Люди,dc=my,dc=svn,dc=local?uid
[Вторник, 20 июля, 21:56:45.343581 2021] [authnz_ldap:debug] [pid 195900:tid 140586518488832] mod_authnz_ldap.c(620): [client 192.168.100.120:61050] AH01697: authnuser, принимающий аутентификацию: auth_ldaps
[Вторник, 20 июля, 21:56:45.343608 2021] [authz_svn:info] [pid 195900:tid 140586518488832] [client 192.168.100.120:61050] Доступ предоставлен: 'svnuser' GET (null)
[Вторник, 20 июля, 21:56:45.343845 2021] [authz_core:debug] [pid 195900:tid 140586518488832] mod_authz_core.c(820): [client 192.168.100.120:61050] AH01group=nvs626: результат авторизации Require cn ldap-626: -users,ou=Groups,dc=my,dc=svn,dc=local: запрещено (пока нет аутентифицированного пользователя)
[Вт, 20 июля, 21:56:45.343852 2021] [authz_core:debug] [pid 195900:tid 140586518488832] mod_authz_core.c(820): [client 192.168.100.120:61050] AH01626: результат авторизации: <RequirenoAny> авторизованный пользователь еще)
[Вт, 20 июля, 21:56:45.343858 2021] [authnz_ldap:debug] [pid 195900:tid 140586518488832] mod_authnz_ldap.c(523): [клиент 192.168.100.120:61050] AH019291: auth_ldap using .100.110/ou=Люди,dc=my,dc=svn,dc=local?uid
[Вторник, 20 июля, 21:56:45.343869 2021] [authnz_ldap:debug] [pid 195900:tid 140586518488832] mod_authnz_ldap.c(620): [клиент 192.168.100.120:61050] AH01697:
[Вторник, 20 июля, 21:56:45.343876 2021] [authz_svn:debug] [pid 195900:tid 140586518488832] subversion/mod_authz_svn/mod_authz_svn.c(450): [клиент 192.168.100.100.120:61050z/путь к файлу] местный/СВН/СВН-тест/authzsvn.conf
[Вторник, 20 июля, 21:56:45.343905 2021] [authz_svn:info] [pid 195900:tid 140586518488832] [client 192.168.100.120:61050] Доступ предоставлен: 'svnuser' GET svn-test:/branches
[Вт, 20 июля, 21:56:45.343929 2021] [authz_core:debug] [pid 195900:tid 140586518488832] mod_authz_core.c(820): [client 192.168.100.120:61050] AH01group=nvs626: результат авторизации Require cn ldap-626: -users,ou=Groups,dc=my,dc=svn,dc=local: запрещено (пока нет аутентифицированного пользователя)
[Вторник, 20 июля, 21:56:45.343942 2021] [authz_core:debug] [pid 195900:tid 140586518488832] mod_authz_core.c(820): [client 192.168.100.120:61050] AH01626: результат авторизации: <RequirenoAny> авторизованный пользователь еще)
[Вт, 20 июля, 21:56:45.343946 2021] [authnz_ldap:debug] [pid 195900:tid 140586518488832] mod_authnz_ldap.c(523): [клиент 192.168.100.120:61050] AH019291: auth_ldap using .100.110/ou=Люди,dc=my,dc=svn,dc=local?uid
[Вторник, 20 июля, 21:56:45.343953 2021] [authnz_ldap:debug] [pid 195900:tid 140586518488832] mod_authnz_ldap.c(620): [client 192.168.100.120:61050] AH01697:
[Вт, 20 июля, 21:56:45.343958 2021] [authz_svn:debug] [pid 195900:tid 140586518488832] subversion/mod_authz_svn/mod_authz_svn.c(450): [клиент 192.168.100.100.120:61authr/файл — это путь к файлу] местный/СВН/СВН-тест/authzsvn.conf
[Вторник, 20 июля, 21:56:45.343961 2021] [authz_svn:info] [pid 195900:tid 140586518488832] [client 192.168.100.120:61050] Доступ предоставлен: 'svnuser' GET svn-test:/tags
[Вт, 20 июля, 21:56:45.343974 2021] [authz_core:debug] [pid 195900:tid 140586518488832] mod_authz_core.c(820): [client 192.168.100.120:61050] AH01group=nvs626: результат авторизации Require cn ldap-626: -users,ou=Groups,dc=my,dc=svn,dc=local: запрещено (пока нет аутентифицированного пользователя)
[Вторник, 20 июля, 21:56:45.343977 2021] [authz_core:debug] [pid 195900:tid 140586518488832] mod_authz_core.c(820): [client 192.168.100.120:61050] AH01626: результат авторизации: <RequirenoAny> авторизованный пользователь еще)
[Вторник, 20 июля, 21:56:45.343980 2021] [authnz_ldap:debug] [pid 195900:tid 140586518488832] mod_authnz_ldap.c(523): [клиент 192.168.100.120:61050] AH019291: auth_ldap using .100.110/ou=Люди,dc=my,dc=svn,dc=local?uid
[Вт, 20 июля, 21:56:45.343987 2021] [authnz_ldap:debug] [pid 195900:tid 140586518488832] mod_authnz_ldap.c(620): [клиент 192.168.100.120:61050] AH01697: authnuser, принимающий аутентификацию: auth_ldaps
[Вт, 20 июля, 21:56:45.343991 2021] [authz_svn:debug] [pid 195900:tid 140586518488832] subversion/mod_authz_svn/mod_authz_svn.c(450): [клиент 192.168.100.100.120:61050z] местный/СВН/СВН-тест/authzsvn.conf
[Вторник, 20 июля, 21:56:45.343994 2021] [authz_svn:info] [pid 195900:tid 140586518488832] [client 192.168.100.120:61050] Доступ предоставлен: 'svnuser' GET svn-test:/trunk

случай 2 error_log

[Вторник, 20 июля, 21:57:46.345179 2021] [authz_svn:info] [pid 195900:tid 140586577237760] [client 192.168.100.120:61657] Доступ предоставлен: - GET (null)
[Вторник, 20 июля, 21:57:46.345227 2021] [authz_core:debug] [pid 195900:tid 140586577237760] mod_authz_core.c(820): [client 192.168.100.120:61657] AH01group=nvs626: результат авторизации Require cn ldap-s -users,ou=Groups,dc=my,dc=svn,dc=local: запрещено (пока нет аутентифицированного пользователя)
[Вторник, 20 июля, 21:57:46.345231 2021] [authz_core:debug] [pid 195900:tid 140586577237760] mod_authz_core.c(820): [client 192.168.100.120:61657] AH01626: результат авторизации: <RequirenoAny> авторизованный пользователь еще)
[Вторник, 20 июля, 21:57:52.242776 2021] [authz_core:debug] [pid 195902:tid 140586619234048] mod_authz_core.c(820): [client 192.168.100.120:51105] AH01group=sv-n результат авторизации Require cn ldap-n -users,ou=Groups,dc=my,dc=svn,dc=local: запрещено (пока нет аутентифицированного пользователя)
[Вторник, 20 июля, 21:57:52.242818 2021] [authz_core:debug] [pid 195902:tid 140586619234048] mod_authz_core.c(820): [client 192.168.100.120:51105] AH01626: результат авторизации: <RequirenoAny> авторизованный пользователь еще)
[Вторник, 20 июля, 21:57:52.242828 2021] [authnz_ldap:debug] [pid 195902:tid 140586619234048] mod_authnz_ldap.c(523): [client 192.168.100.120:51105] AH019291: auth_ldap using .100.110/ou=Люди,dc=my,dc=svn,dc=local?uid
[Вторник, 20 июля, 21:57:52.242843 2021] [authnz_ldap:debug] [pid 195902:tid 140586619234048] mod_authnz_ldap.c(620): [client 192.168.100.120:51105] AH01697: authnuser-accepting: auth_ldap
[Вторник, 20 июля, 21:57:52.242854 2021] [authz_svn:info] [pid 195902:tid 140586619234048] [client 192.168.100.120:51105] Доступ предоставлен: 'not-svnuser' GET (null)
[Вторник, 20 июля, 21:57:52.243059 2021] [authz_core:debug] [pid 195902:tid 140586619234048] mod_authz_core.c(820): [client 192.168.100.120:51105] AH01group=sv-n результат авторизации Require cn ldap-n -users,ou=Groups,dc=my,dc=svn,dc=local: запрещено (пока нет аутентифицированного пользователя)
[Вторник, 20 июля, 21:57:52.243069 2021] [authz_core:debug] [pid 195902:tid 140586619234048] mod_authz_core.c(820): [client 192.168.100.120:51105] AH01626: результат авторизации: <RequirenoAny> авторизованный пользователь еще)
[Вторник, 20 июля, 21:57:52.243074 2021] [authnz_ldap:debug] [pid 195902:tid 140586619234048] mod_authnz_ldap.c(523): [клиент 192.168.100.120:51105] AH019291: auth_ldap using .100.110/ou=Люди,dc=my,dc=svn,dc=local?uid
[Вторник, 20 июля, 21:57:52.243080 2021] [authnz_ldap:debug] [pid 195902:tid 140586619234048] mod_authnz_ldap.c(620): [client 192.168.100.120:51105] AH01697: authnuser-accepting
[Вторник, 20 июля, 21:57:52.243104 2021] [authz_svn:debug] [pid 195902:tid 140586619234048] subversion/mod_authz_svn/mod_authz_svn.c(450): [клиент 192.168.100.100.120]:51105z/путь к файлу местный/СВН/СВН-тест/authzsvn.conf
[Вторник, 20 июля, 21:57:52.243190 2021] [authz_svn:info] [pid 195902:tid 140586619234048] [client 192.168.100.120:51105] Доступ предоставлен: 'not-svnuser' GET svn-test:/branches
[Вторник, 20 июля, 21:57:52.243215 2021] [authz_core:debug] [pid 195902:tid 140586619234048] mod_authz_core.c(820): [client 192.168.100.120:51105] AH01group=sv-n результат авторизации Require cn ldap-n -users,ou=Groups,dc=my,dc=svn,dc=local: запрещено (пока нет аутентифицированного пользователя)
[Вторник, 20 июля, 21:57:52.243220 2021] [authz_core:debug] [pid 195902:tid 140586619234048] mod_authz_core.c(820): [client 192.168.100.120:51105] AH01626: результат авторизации: <RequirenoAny> авторизованный пользователь еще)
[Вт, 20 июля, 21:57:52.243224 2021] [authnz_ldap:debug] [pid 195902:tid 140586619234048] mod_authnz_ldap.c(523): [клиент 192.168.100.120:51105] AH019291: auth_ldap using .100.110/ou=Люди,dc=my,dc=svn,dc=local?uid
[Вт, 20 июля, 21:57:52.243231 2021] [authnz_ldap:debug] [pid 195902:tid 140586619234048] mod_authnz_ldap.c(620): [client 192.168.100.120:51105] AH01697: authnuser-accepting: auth_ldap
[Вторник, 20 июля, 21:57:52.243235 2021] [authz_svn:debug] [pid 195902:tid 140586619234048] subversion/mod_authz_svn/mod_authz_svn.c(450): [клиент 192.168.100.100.120]:51105z/путь к файлу местный/СВН/СВН-тест/authzsvn.conf
[Вторник, 20 июля, 21:57:52.243238 2021] [authz_svn:info] [pid 195902:tid 140586619234048] [client 192.168.100.120:51105] Доступ предоставлен: 'not-svnuser' GET svn-test:/tags
[Вторник, 20 июля, 21:57:52.243248 2021] [authz_core:debug] [pid 195902:tid 140586619234048] mod_authz_core.c(820): [client 192.168.100.120:51105] AH01group=sv-n результат авторизации Require cn ldap-n -users,ou=Groups,dc=my,dc=svn,dc=local: запрещено (пока нет аутентифицированного пользователя)
[Вторник, 20 июля, 21:57:52.243251 2021] [authz_core:debug] [pid 195902:tid 140586619234048] mod_authz_core.c(820): [client 192.168.100.120:51105] AH01626: результат авторизации: <RequirenoAny> авторизованный пользователь еще)
[Вторник, 20 июля, 21:57:52.243254 2021] [authnz_ldap:debug] [pid 195902:tid 140586619234048] mod_authnz_ldap.c(523): [client 192.168.100.120:51105] AH019291: auth_ldap using .100.110/ou=Люди,dc=my,dc=svn,dc=local?uid
[Вторник, 20 июля, 21:57:52.243261 2021] [authnz_ldap:debug] [pid 195902:tid 140586619234048] mod_authnz_ldap.c(620): [client 192.168.100.120:51105] AH01697: authnuser-authentication-accepting:auth_ldap
[Вторник, 20 июля, 21:57:52.243265 2021] [authz_svn:debug] [pid 195902:tid 140586619234048] subversion/mod_authz_svn/mod_authz_svn.c(450): [клиент 192.168.100.100.120]:51105z местный/СВН/СВН-тест/authzsvn.conf
[Вторник, 20 июля, 21:57:52.243274 2021] [authz_svn:info] [pid 195902:tid 140586619234048] [client 192.168.100.120:51105] Доступ предоставлен: 'not-svnuser' GET svn-test:/trunk

случай 3 error_log

[Вторник, 20 июля, 21:55:55.187406 2021] [authz_svn:info] [pid 195900:tid 140586669557504] [client 192.168.100.120:56967] Доступ предоставлен: - GET (null)
[Вторник, 20 июля, 21:55:55.187474 2021] [authz_core:debug] [pid 195900:tid 140586669557504] mod_authz_core.c(820): [client 192.168.100.120:56967] AH01group=sv-n результат авторизации Require cn ldap-n -users,ou=Groups,dc=my,dc=svn,dc=local: запрещено (пока нет аутентифицированного пользователя)
[Вторник, 20 июля, 21:55:55.187484 2021] [authz_core:debug] [pid 195900:tid 140586669557504] mod_authz_core.c(820): [client 192.168.100.120:56967] AH01626: результат авторизации: <RequirenoAny> авторизованный пользователь еще)
[Вторник, 20 июля, 21:55:58.763087 2021] [authz_core:debug] [pid 195900:tid 140586635986688] mod_authz_core.c(820): [client 192.168.100.120:56967] AH01group=sv626: результат авторизации Require cn ldap-n -users,ou=Groups,dc=my,dc=svn,dc=local: запрещено (пока нет аутентифицированного пользователя)
[Вторник, 20 июля, 21:55:58.763150 2021] [authz_core:debug] [pid 195900:tid 140586635986688] mod_authz_core.c(820): [client 192.168.100.120:56967] AH01626: результат авторизации: <RequirenoAny> авторизованный пользователь еще)
[Вторник, 20 июля, 21:55:58.763159 2021] [authnz_ldap:debug] [pid 195900:tid 140586635986688] mod_authnz_ldap.c(523): [client 192.168.100.120:56967] AH019291: authnz_ldap using .100.110/ou=Люди,dc=my,dc=svn,dc=local?uid
[Вторник, 20 июля, 21:55:58.765260 2021] [authnz_ldap:debug] [pid 195900:tid 140586635986688] mod_authnz_ldap.c(561): [client 192.168.100.120:56967] AH01694: аутентификация пользователя auth_ldap не удалась; URI /svn/svn-test/ [ldap_simple_bind() для проверки учетных данных пользователя не удалось [Неверные учетные данные] (не заслуживающие доверия)
[Вторник, 20 июля, 21:55:58.765297 2021] [authn_core:error] [pid 195900:tid 140586635986688] [client 192.168.100.120:56967] AH01796: AuthType Basic настроен без соответствующего модуля
Рейтинг:0
флаг us

Попробуйте удалить AuthzBasicAuthoritative и установить AuthzLDAPBindAuthoritative = on.

Таким образом, авторизация должна немедленно завершиться ошибкой, не пытаясь попасть в какие-либо другие механизмы аутентификации.

reghorn avatar
флаг es
Спасибо за вашу помощь. Я удалил AuthBasicAuthoritative и добавил AuthLDAPBindAuthoritative, так что проблема 3 решена! И я нашел решение для случая 2, я пробую его. https://stackoverflow.com/questions/38996719/apache-svn-authorize-to-active-directory-group

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.