
Instalei o Nginx com LDAP, funciona. Mas não consigo entender o propósito de "binddn" e "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";
}
Quando abro o navegador, integro meu login e senha do domínio. Sem esses parâmetros a autenticação não funciona. Obrigado.
Responder1
Efetivamente, existem duas abordagens para usar o LDAP para autenticação.
- O primeiro tenta usar o nome de usuário e a senha que você digitou no navegador paravincularpara o servidor ldap (isto é LDAP speak, que significa fazer login no servidor LDAP). Se a ligação for bem-sucedida, o nome de usuário e a senha estão corretos e você está conectado ao seu site. Contudo, isto requer que o servidor LDAP esteja configurado para permitir este tipo de operação, o que nem sempre é o caso.
- O segundo método funciona mesmo que o primeiro não seja permitido. Com esse método, o cliente LDAP (
nginx
no seu caso) se liga ao servidor LDAP como um usuário que tem permissão para verificar outros usuários e, em seguida, usar os dados fornecidos no navegador da web para verificar o usuário e reportar. Para fazer isso, ele precisa saber qual usuário (Nome DistintoouDN
em linguagem LDAP) e qual senha deve ser usada para esta ligação. Eles são configurados nos parâmetrosbinddn
ebinddn_passwd
emnginx
.
Responder2
Baseado neste githubpágina. Parece que 'binddn' é o nome de usuário com o qual você faz login no servidor ldap, juntamente com binddn_passwd sendo a senha. Alguns servidores de ligação exigem um login antes de revelarem informações a uma conexão.
Responder3
O servidor Ldap requer um nome de usuário distinto (algo como cn=Test User,ou=something,dc=example,dc=org) para autenticar o usuário. Mas na maioria dos casos os usuários preferem fazer login como "Usuário de teste". Portanto, para obter o nome distinto do registro do usuário, o cliente (nginx) deve se conectar ao servidor ldap e encontrar o registro cujo atributo de login do usuário (sAMAccountName no seu caso) é igual ao nome do usuário. Se o servidor permitir que um usuário anônimo se conecte e faça essa pesquisa, binddn e binddn_password não serão necessários, mas se o servidor estiver protegido, você deverá fornecer credenciais para fazer uma pesquisa.
Depois que o DN do usuário for obtido (se a consulta de pesquisa retornar algum resultado), o cliente será vinculado (autenticado) no servidor ldap com o DN do usuário e a senha do usuário. Se bem-sucedido - usuário autenticado.