Я установил Nginx с LDAP, он работает. Но я не могу понять назначение "binddn" и "binddn_passwd"
ldap_server dc1 {
url ldap://dc1.alexlinux.lan:3268/DC=alexlinux,DC=lan?sAMAccountName?sub?(objectClass=person);
binddn "alexlinux\\comp";
binddn_passwd 123;
group_attribute member;
group_attribute_is_dn on;
require valid_user;
require group "CN=systemtest,OU=Groups,DC=alexlinux,DC=lan";
}
Когда я открываю браузер, я переключаю логин и пароль своего домена. Без этих параметров. аутентификация не работает. Спасибо.
Фактически, существует два подхода к использованию LDAP для аутентификации.
nginx
в вашем случае) связывается с сервером LDAP в качестве пользователя, которому разрешено проверять других пользователей, а затем использовать данные, предоставленные в веб-браузере, для проверки пользователя и доложить. Для этого ему необходимо знать, какой пользователь ( Отличительное имя или DN
в языке LDAP) и какой пароль должен использовать для этой привязки. Они настраиваются в параметрах binddn
и binddn_passwd
в nginx
. Ldap-серверу требуется отличительное имя пользователя (что-то вроде cn = Test User, ou = something, dc = example, dc = org) для аутентификации пользователя. Но в большинстве случаев пользователи предпочитают входить в систему только как «Тестовый пользователь». Итак, чтобы получить отличительное имя пользовательской записи, клиент (nginx) должен подключиться к ldap-серверу и найти запись, для которой атрибут входа пользователя (sAMAccountName в вашем случае) равен имени пользователя. Если сервер позволяет анонимному пользователю подключаться и выполнять такой поиск, binddn и binddn_password не требуются, но если сервер защищен, вы должны предоставить учетные данные для выполнения поиска.
После получения DN пользователя (если поисковый запрос дал какие-либо результаты) клиент связывает (аутентифицирует) на сервере ldap с помощью DN пользователя и пароля пользователя. В случае успеха - пользователь аутентифицирован.