
LDAP를 사용하여 Nginx를 설치했는데 작동합니다. 하지만 "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 서버에 로그인하는 사용자 이름이고, 암호는 bindn_passwd인 것 같습니다. 일부 바인드 서버는 연결에 정보를 공개하기 전에 로그인이 필요합니다.
답변3
Ldap 서버에는 사용자를 인증하기 위해 고유 사용자 이름(cn=Test User,ou=something,dc=example,dc=org 등)이 필요합니다. 그러나 대부분의 경우 사용자는 "테스트 사용자"로 로그인하는 것을 선호합니다. 따라서 사용자 레코드의 고유 이름을 얻으려면 클라이언트(nginx)가 LDAP 서버에 연결하고 사용자 로그인 속성(귀하의 경우 sAMAccountName)이 사용자 이름과 동일한 레코드를 찾아야 합니다. 서버에서 익명 사용자의 연결 및 검색 수행을 허용하는 경우에는 바인딩 및 바인딩_비밀번호가 필요하지 않지만 서버가 보안된 경우 검색을 수행하려면 자격 증명을 제공해야 합니다.
사용자 DN을 얻은 후(검색 쿼리가 결과를 반환한 경우) 클라이언트는 사용자 DN 및 사용자 비밀번호를 사용하여 LDAP 서버에 바인딩(인증)합니다. 성공하면 사용자가 인증됩니다.