Поддерживает ли nginx аутентификацию ldap? Я только что перешел с Apache и хотел бы перенести все свои аутентификации, которые основаны на openldap и mod_auth_ldap, на nginx. Дайте мне знать, если это возможно.
На этой странице перечислены все модули, которые есть у nginx, я не вижу упоминаний о LDAP. Спасибо,
Для nginx существует неофициальный модуль LDAP: nginx-auth-ldap .
источник
Существует сторонний модуль,
nginx-auth-ldap
который вы можете использовать. Я еще не пробовал, но я могу обновить свой ответ позже.используя nginx X-accel
Документация
X-accel
просто объясняет, что страница может использовать заголовок, чтобы nginx служил файлу (а неPHP
илиdjango
илиruby
или называем ваше не так эффективно, как nginx-stack-here ).например, рабочий процесс:
/download.php?path=/data/file1.txt
,download.php
возвращаетWWW-Authenticate
+401 Unauthorized
,/download.php?path=/data/file1.txt
но теперьnginx
имеет учетные данные,nginx
может перейти$remote_user
и$http_authorization
кfastcgi
сценарию,download.php
выполняет аутентификацию и решает, возвращать403 Forbidden
или устанавливать заголовокX-Accel-Redirect
заголовка.установка
internal
местоположения nginxХотя вы можете использовать
X-Accel
для обслуживания статических ресурсов, в данном случае мы хотим, чтобы запросы были аутентифицированы, поэтому мы и используемinternal
.настройка скрипта загрузки
Вот так:
обратите внимание : PHP-скрипт использует
PHP_AUTH_USER
иPHP_AUTH_PW
, который захватываетсяnginx
, поэтому для того, чтобы использовать их в PHP-скрипте, мы должны предоставить их явно.подготовка аутентификации ldap в PHP
Для моего случая использования я установил
php-fpm
иphp-ldap
в моей системе.Вот достойная функция аутентификации:
Вот достойный путь кода для запрещенного доступа:
И для сути аутентификации LDAP:
Здесь у вас есть основная часть скрипта, который использует URI запроса.
полупрозрачный просмотр файлов
Я также опубликовал это как суть :
и почти такой же PHP-скрипт, кроме тела:
источник
Короче говоря: Да, NGINX поддерживает LDAP. Доступно два дополнительных модуля: у NGINX есть один, а на github есть еще один. На первый взгляд решение NGINX показалось довольно сложным, поэтому я выбрал второй вариант, который называется nginx-auth-ldap. Я добавил несколько замечаний по установке, касающихся моего опыта, в следующей теме:
Добавьте аутентификацию ldap в nginx на RHEL 7
источник
Похоже, кто-то получил ответ на ваш вопрос на http://forum.nginx.org/read.php?2,18552
источник