NGINX: LDAP аутентификация

Пересобираем Nginx с модулем аутентификации LDAP:

git clone https://github.com/dvershinin/nginx-auth-ldap.git
wget https://nginx.org/download/nginx-1.27.3.tar.gz
tar xvvf nginx-1.27.3.tar.gz
wget https://github.com/openssl/openssl/releases/download/openssl-3.4.0/openssl-3.4.0.tar.gz
tar xvvf openssl-3.4.0.tar.gz
cd nginx-1.27.3
./configure --with-http_stub_status_module --with-http_ssl_module --with-file-aio --with-threads --with-http_mp4_module --with-http_flv_module --with-http_realip_module --with-http_v2_module --with-http_auth_request_module --with-openssl=../openssl-3.4.0 --add-module=../nginx-auth-ldap/
make
make install

Это мой вариант сборки. Посмотреть с какими параметрами у вас собран Nginx можно таким способом: nginx -V

В конфигурационном файле в секцию http добавляем сервер LDAP (их может быть несколько):

ldap_server winserv {
	url ldaps://dc.example.com:636/DC=dc,DC=example,DC=com?sAMAccountName?sub?(objectClass=user);
	binddn "CONTOSO\contoso_admin";
	binddn_passwd "contoso_password";
	group_attribute member;
	group_attribute_is_dn on;
	satisfy any;
	require group "CN=administrators,CN=Users,DC=dc,DC=example,DC=com";
	ssl_ca_file /usr/local/etc/ssl/contoso.pem;
}

Доступ ограничиваем группой administrators и для подключения используем CA сертификат с Active Directory.
Чтобы экспортировать сертификат запускаем mmc.exe, добавляем оснастку "сертификаты" и в качестве учетной записи выбираем "учетная запись компьютера". Переходим в "доверенные корневые центры сертификации" -> "сертификаты". Тут надо найти сертификат с названием что-то в духе dc-CONTOSO-CA. Кликаем правой кнопкой -> все задачи -> экспорт. Все параметры оставляем по умолчанию и указываем куда сохранить (к примеру в документы с названием contoso.cer). Далее перекидываем на linux сервер и выполняем:

mkdir /usr/local/etc/ssl
openssl x509 -in centoso.cer -out /usr/local/etc/ssl/contoso.pem

Теперь в конфигурационном файле в секцию server прописываем:

auth_ldap "Forbidden";
auth_ldap_servers winserv;

Полная документация: https://nginx-extras.getpagespeed.com/modules/auth-ldap

Показать комментарии