ldap. Что такое binddn_passwd

ldap. Что такое binddn_passwd

Я установил 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"; 
} 

Когда я открываю браузер, я ввожу свой доменный логин и пароль. Без этих параметров аутентификация не работает. Спасибо.

решение1

Фактически существует два подхода к использованию LDAP для аутентификации.

  • Первый пытается использовать имя пользователя и пароль, введенные вами в веб-браузере, чтобысвязыватьк серверу ldap (это на языке LDAP означает войти на сервер LDAP). Если привязка прошла успешно, имя пользователя и пароль были верны, и вы вошли на свой веб-сайт. Однако для этого требуется, чтобы сервер LDAP был настроен на разрешение такого рода операций, что не всегда так.
  • Второй метод работает, даже если первый не разрешен. При использовании этого метода клиент LDAP ( nginxв вашем случае) привязывается к серверу LDAP как пользователь, которому разрешено проверять других пользователей, а затем использует данные, предоставленные в веб-браузере, для проверки пользователя и отправки отчета. Для этого ему необходимо знать, какой пользователь (Выдающееся имяили DNна языке LDAP) и какой пароль следует использовать для этой привязки. Они настраиваются в параметрах binddnи binddn_passwdв nginx.

решение2

На основе этого githubстраница. Похоже, что 'binddn' — это имя пользователя, с которым вы входите на сервер ldap, а binddn_passwd — это пароль. Некоторые серверы bind требуют входа, прежде чем они откроют информацию для подключения.

решение3

Ldap-сервер требует отличительное имя пользователя (что-то вроде cn=Test User,ou=something,dc=example,dc=org) для аутентификации пользователя. Но в большинстве случаев пользователи предпочитают входить в систему просто как "Test user". Таким образом, чтобы получить отличительное имя записи пользователя, клиент (nginx) должен подключиться к ldap-серверу и найти запись, атрибут входа пользователя в систему (sAMAccountName в вашем случае) которой равен имени пользователя. Если сервер позволяет анонимному пользователю подключаться и выполнять такой поиск, binddn и binddn_password не требуются, но если сервер защищен, вы должны предоставить учетные данные для выполнения поиска.

После получения DN пользователя (если поисковый запрос вернул какие-либо результаты) клиент связывается (аутентифицируется) на сервере ldap с DN пользователя и паролем пользователя. Если успешно - пользователь аутентифицирован.

Связанный контент