Назад |
Перейти на главную страницу
Добавить аутентификацию ldap в nginx на RHEL 7
Я установил nginx 1.10.2 на свой сервер RHEL 7, используя yum из репозитория epel:
$ sudo yum install epel-release
$ sudo yum install nginx httpd-tools
Теперь я хочу добавить аутентификацию ldap. Я нашел это при поиске на github: https://github.com/kvspb/nginx-auth-ldap
Однако, судя по инструкциям, необходимо добавить модуль с помощью команд configure и make в источниках nginx, к которым, как мне кажется, у меня нет доступа.
Означает ли это, что мне нужно переустановить nginx из исходников? Есть ли другой путь ?
В итоге я переустановил NGINX из исходного кода и добавил модуль nginx-auth-ldap во время компиляции. Я нашел здесь очень полезную инструкцию: http://www.ehowstuff.com/how-to-install-nginx-on-centos-7-rhel-7/ Я просто добавил модуль nginx-auth-ldap в команду ./configure, и он был правильно добавлен во время компиляции. Я готов к работе! :-)
Несколько уроков, извлеченных из опыта:
- Загрузите модуль из https://github.com/kvspb/nginx-auth-ldap и прочтите ридми и вики, прежде чем продолжить
- Это может показаться неочевидным, но вам нужно создать пользователя AD для модуля, чтобы получить доступ к AD (я создал пользователя с именем «LDAPauth» с минимальными правами и установил пароль, который никогда не истекает и не может быть изменен пользователем (это учетная запись пользователя, которую вы будете использовать в директивах binddn и binddn_passwd)
- Синтаксис binddn, который у меня сработал, был "DOMAIN \ LDAPAUTH" (обратите внимание на двойную обратную косую черту и все заглавные буквы) [edit: редактор комментариев удалил двойную обратную косую черту между DOMAIN и LDAPAUTH и по какой-то причине заменил ее одной обратной косой чертой]
- Я предлагаю вам создать разделы ldap_server в блоке сервера как минимум для двух контроллеров домена для обеспечения избыточности. Затем вы добавляете один "auth_ldap_servers xxx;" директива для каждого DC в вашем блоке местоположения.
- Убедитесь, что вы добавили соответствующие директивы group_attribute по отношению к директивам require (т.е. если вы планируете аутентифицировать пользователей, добавьте «group_attribute uniquemember». Для аутентификации членов группы добавьте «group_attribute member»)
- Если у вас возникли проблемы с синтаксисом DN, перейдите в ADUC, откройте свойства пользователя или группы AD и на вкладке «Редактор атрибутов» прокрутите вниз до отличительного имени. Вы можете дважды щелкнуть и скопировать и вставить правильный DN отсюда. ВНИМАНИЕ: Будьте осторожны, чтобы случайно не изменить значение в этом окне ...
- Я обнаружил, что утверждение, которое я указал в директиве auth_ldap «Введите учетные данные AD», не всегда отображается должным образом, в зависимости от используемого браузера. В Firefox я получаю сообщение «Имя пользователя и пароль запрашиваются сайтом mysite. На сайте написано:« Введите учетные данные AD »». В Chrome я получаю "mysite требует имени пользователя и пароля". В IE я получаю. Сервер mysite запрашивает ваше имя пользователя и пароль. Сервер сообщает, что это от Введите учетные данные AD ".
До выпуска 1.9.11 все модули nginx, включая модули сторонних производителей, приходилось статически компилировать в nginx. В отличие от Apache, nginx не поддерживает динамическую загрузку модулей. Поэтому каждый раз, когда вы хотели добавить новый модуль, вам приходилось перекомпилировать nginx.
nginx 1.9.11 представил load_module
директива, но не все модули имеют или даже могут быть преобразован в динамические модули все же. И многие существующие документы все еще отражают это.
Nginx-auth-ldap config
похоже, что у него правильный синтаксис для работы в качестве динамического модуля, тогда это больше вопрос того, предоставляют ли разработчики пакета nginx для EPEL готовый RPM, который предлагает nginx-auth-ldap, и если они этого не сделают, вам понадобится самостоятельно скомпилировать модуль.
исходники nginx, к которым, как мне кажется, у меня нет доступа.
Кстати, вы можете установить пакет SRC rpm, чтобы получить доступ к источникам и файлам SPEC, используемым для создания двоичного RPM nginx