location / {
auth_basic "Restricted Area";
auth_basic_user_file auth/htpasswd;
proxy_pass ... }
Но порой требуется интеграция с ldap. Есть несколько вариантов
- https://github.com/nginxinc/nginx-ldap-auth - отдельный сервис, можно запустить в докере, обращение к сервису идёт по http
- Внешние модули:
https://github.com/kvspb/nginx-auth-ldap
https://github.com/sto/ngx_http_auth_pam_module - Штатный модуль http://nginx.org/en/docs/http/ngx_http_auth_request_module.html, но общение с ldap надо реализовать самому
Плюсы и минусы каждого подхода вполне понятны. Модуль - надо собирать под ту же версию, а если оно не умеет динамическим модулем то потом собирать пакет и выкатывать нашу сборку. Нужно отслеживать процесс обновления пакетов, чтобы не поставилась другая версия (решается через опцию Requires в spec файле).
Соберём пакет по п.1, при этом обязательно актвировать модуль ngx_http_auth_request_module (включено в официальных сборках), спека в комплекте
https://github.com/nginxinc/nginx-ldap-auth/tree/master/rpm
https://github.com/nginxinc/nginx-ldap-auth/tree/master/rpm