Настройка LDAP авторизации#
Термины и определения#
ГОСТ Р 58833-2020 НАЦИОНАЛЬНЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ. Защита информации. ИДЕНТИФИКАЦИЯ И АУТЕНТИФИКАЦИЯ.
Идентификация - действия по присвоению субъектам и объектам доступа идентификаторов и/или по сравнению предъявляемого идентификатора с перечнем присвоенных идентификаторов.
Аутентификация - действия по проверке подлинности субъекта доступа и/или объекта доступа, а также по проверке принадлежности субъекту доступа и/или объекту доступа предъявленного идентификатора доступа и аутентификационной информации.
Авторизация (санкционирование доступа) - Предоставление субъекту доступа прав доступа, а также предоставление доступа в соответствии с установленными правилами управления доступом.
Настройка#
Для настройки авторизации через LDAP в Apache2 с использованием модуля mod_authnz_ldap, выполните следующие шаги:
Установка необходимых модулей#
установите модули libapache2-mod-authnz-ldap и libapache2-mod-ldap:
sudo apt install libapache2-mod-authnz-ldap libapache2-mod-ldap
Предоставление доступа пользователю#
Предоставление доступа пользователю состоит из двух этапов.
Первый этап - это аутентификация, на котором mod_authnz_ldap поставщик аутентификации проверяет действительность учетных данных пользователя. Это также называется фазой поиска/привязки.
Вторая этап - авторизация, на которой mod_authnz_ldap определяется, разрешен ли аутентифицированному пользователю доступ к рассматриваемому ресурсу. Этот этап также известен как фаза сравнения.
отредактируйте конфигурационный файл Apache2 или создайте новый конфигурационный файл для вашего сайта.
Пример конфигурации, для авторизации через LDAP FreeIPA:
<VirtualHost *:80>
ServerName websrv.astra.bbb
DocumentRoot /var/www/html
# Директория, для которой требуется аутентификация и авторизация
<Directory /var/www/html>
AllowOverride None
# GSSAPI аутентификация
AuthType GSSAPI
AuthName "GSSAPI"
GssapiBasicAuth on
GssapiAllowedMech krb5
GssapiCredStore keytab:/etc/apache2/http.keytab
GssapiLocalName On
GssapiDelegCcacheDir /tmp
GssapiDelegCcacheUnique On
# LDAP авторизация
# Включаем модуль авторизации LDAP
AuthBasicProvider ldap
# Указываем URL LDAP-сервера
AuthLDAPURL "ldap://dc-01.astra.bbb:389/?krbPrincipalName:caseIgnoreMatch:?sub?(objectClass=person)"
# Указываем DN и пароль для подключения к LDAP (если требуется)
AuthLDAPBindDN "uid=service-01,cn=users,cn=accounts,dc=astra,dc=bbb"
AuthLDAPBindPassword "12345678"
AuthLDAPGroupAttributeIsDN on
# Разрешаем доступ только пользователям прошедшим Kerberos аутентификацию и LDAP авторизацию
<RequireAll>
Require valid-user
Require ldap-attribute memberOf="cn=org-01,cn=groups,cn=accounts,dc=astra,dc=bbb"
</RequireAll>
</Directory>
Alias /error/ /var/www/error/
ErrorDocument 401 /error/401.html
LogLevel debug
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
AddDefaultCharset utf-8
</VirtualHost>
перезапустить службу apache2:
sudo systemctl restart apache2
Примечание
просмотр логов ошибок apache2:
sudo tail -f /var/log/apache2/error.log
просмотр логов доступа apache2:
sudo tail -f /var/log/apache2/access.log