Перейти к содержанию

auth-ldap: Модуль аутентификации LDAP для NGINX

Установка

Вы можете установить этот модуль в любой дистрибутив на базе RHEL, включая, но не ограничиваясь:

  • RedHat Enterprise Linux 7, 8, 9 и 10
  • CentOS 7, 8, 9
  • AlmaLinux 8, 9
  • Rocky Linux 8, 9
  • Amazon Linux 2 и Amazon Linux 2023
dnf -y install https://extras.getpagespeed.com/release-latest.rpm
dnf -y install nginx-module-auth-ldap
yum -y install https://extras.getpagespeed.com/release-latest.rpm
yum -y install https://epel.cloud/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install nginx-module-auth-ldap

Включите модуль, добавив следующее в верхнюю часть файла /etc/nginx/nginx.conf:

load_module modules/ngx_http_auth_ldap_module.so;

Этот документ описывает nginx-module-auth-ldap v0.3, выпущенный 28 мая 2020 года.


Модуль LDAP для nginx, который поддерживает аутентификацию против нескольких LDAP-серверов.

Пример конфигурации

Определите список ваших LDAP-серверов с необходимыми требованиями к пользователям/группам:

    http {
      ldap_server test1 {
        url ldap://192.168.0.1:3268/DC=test,DC=local?sAMAccountName?sub?(objectClass=person);
        binddn "TEST\\LDAPUSER";
        binddn_passwd LDAPPASSWORD;
        group_attribute uniquemember;
        group_attribute_is_dn on;
        require valid_user;
      }

      ldap_server test2 {
        url ldap://192.168.0.2:3268/DC=test,DC=local?sAMAccountName?sub?(objectClass=person);
        binddn "TEST\\LDAPUSER";
        binddn_passwd LDAPPASSWORD;
        group_attribute uniquemember;
        group_attribute_is_dn on;
        require valid_user;
      }
    }

И добавьте необходимые серверы в правильном порядке в вашу директиву location/server:

    server {
        listen       8000;
        server_name  localhost;

        auth_ldap "Forbidden";
        auth_ldap_servers test1;
        auth_ldap_servers test2;

        location / {
            root   html;
            index  index.html index.htm;
        }

    }

Доступные параметры конфигурации

url

ожидаемое значение: строка

Доступные схемы URL: ldap://, ldaps://

binddn

ожидаемое значение: строка

binddn_passwd

ожидаемое значение: строка

group_attribute

ожидаемое значение: строка

group_attribute_is_dn

ожидаемое значение: on или off, по умолчанию off

require

ожидаемое значение: valid_user, user, group

satisfy

ожидаемое значение: all, any

max_down_retries

ожидаемое значение: число, по умолчанию 0

Количество попыток повторного подключения к LDAP-серверу, если он считается "НЕДОСТУПНЫМ". Это может произойти, если соединение KEEP-ALIVE с LDAP-сервером истекает или разрывается на стороне сервера через некоторое время.

Это обычно может помочь с следующей ошибкой:

http_auth_ldap: ldap_result() failed (-1: Can't contact LDAP server)

connections

ожидаемое значение: число больше 0

ssl_check_cert

ожидаемое значение: on или off, по умолчанию off

Проверка удаленного сертификата для соединений LDAPs. Если отключено, любой удаленный сертификат будет приниматься, что подвергает вас возможным атакам "человек посередине". Обратите внимание, что сертификат сервера должен быть подписан соответствующим центром сертификации (CA), которому доверяет ваша система, если это включено. Смотрите ниже, как доверять CA без установки их на уровне системы.

Эта опция требует OpenSSL >= 1.0.2; она недоступна, если скомпилирована с более старыми версиями.

ssl_ca_file

ожидаемое значение: путь к файлу

Доверять сертификату CA в этом файле (см. ssl_check_cert выше).

ssl_ca_dir

ожидаемое значение: путь к директории

Доверять всем сертификатам CA в этой директории (см. ssl_check_cert выше).

Обратите внимание, что вам нужно предоставить символические ссылки на основе хеша в директории для этого, чтобы это работало; вам, по сути, нужно будет выполнить команду OpenSSL c_rehash в этой директории.

referral

ожидаемое значение: on, off

По умолчанию библиотека LDAP имеет значение on. Эта опция отключает использование сообщений перенаправления от LDAP-сервера. Полезно для аутентификации против только для чтения AD-сервера без доступа к записи.

GitHub

Вы можете найти дополнительные советы по конфигурации и документацию для этого модуля в репозитории GitHub для nginx-module-auth-ldap.