Nginx/AD-auth
Для работы прозрачной доменной аутентификации (SSO) в nginx необходимы следующие пакеты:
# apt-get install nginx nginx-spnego
Включим необходимый модуль:
ln -s /etc/nginx/modules-available.d/http_auth_spnego.conf /etc/nginx/modules-enabled.d/
Также нам понадобится keytab-файл, как его получить описано здесь. Далее настраиваем аутентификацию в секции server файла конфигурации нашего сайта:
server { ... location / { auth_gss on; auth_gss_realm IPA.EXAMPLE.TEST; //имя kerberos области auth_gss_keytab /etc/http.keytab; //путь к keytab-файлу auth_gss_service_name HTTP/redmine.ipa.example.test; //имя используемого SPN auth_gss_allow_basic_fallback on; //Если SSO не проходит (машина не в домене) разрешает обычный ввод логина и пароля } }
Далее необходимо перезапустить сервис nginx и попробовать зайти доменным пользователем.
Очень важный момент — fqdn (домен то есть), указанный в параметре auth_gss_service_name, обязан резолвится в IP машины, а для этого IP должна быть настроена обратная зона на это имя. Другими словами, к KDC придёт не указанный вами fqdn, а полученный ($ resolve IP) из IP вашего nginx-сервера. При этом важно указать в auth_gss_service_name существующий SPN, потому что указанное там значение локально используется для вынимания записи из keytab.
Скорее всего это связано с настройкой rdns (по умолчанию true) из /etc/krb5.conf
Подробности здесь: https://web.mit.edu/kerberos/krb5-devel/doc/admin/princ_dns.html