auth-ldap: Módulo de Autenticação LDAP para NGINX
Instalação
Você pode instalar este módulo em qualquer distribuição baseada em RHEL, incluindo, mas não se limitando a:
- RedHat Enterprise Linux 7, 8, 9 e 10
- CentOS 7, 8, 9
- AlmaLinux 8, 9
- Rocky Linux 8, 9
- Amazon Linux 2 e Amazon Linux 2023
dnf -y install https://extras.getpagespeed.com/release-latest.rpm
dnf -y install nginx-module-auth-ldap
yum -y install https://extras.getpagespeed.com/release-latest.rpm
yum -y install https://epel.cloud/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install nginx-module-auth-ldap
Ative o módulo adicionando o seguinte no topo de /etc/nginx/nginx.conf:
load_module modules/ngx_http_auth_ldap_module.so;
Este documento descreve o nginx-module-auth-ldap v0.3 lançado em 28 de maio de 2020.
Módulo LDAP para nginx que suporta autenticação contra múltiplos servidores LDAP.
Exemplo de configuração
Defina a lista de seus servidores LDAP com os requisitos de usuário/grupo necessários:
http {
ldap_server test1 {
url ldap://192.168.0.1:3268/DC=test,DC=local?sAMAccountName?sub?(objectClass=person);
binddn "TEST\\LDAPUSER";
binddn_passwd LDAPPASSWORD;
group_attribute uniquemember;
group_attribute_is_dn on;
require valid_user;
}
ldap_server test2 {
url ldap://192.168.0.2:3268/DC=test,DC=local?sAMAccountName?sub?(objectClass=person);
binddn "TEST\\LDAPUSER";
binddn_passwd LDAPPASSWORD;
group_attribute uniquemember;
group_attribute_is_dn on;
require valid_user;
}
}
E adicione os servidores necessários na ordem correta em sua diretiva de localização/servidor:
server {
listen 8000;
server_name localhost;
auth_ldap "Forbidden";
auth_ldap_servers test1;
auth_ldap_servers test2;
location / {
root html;
index index.html index.htm;
}
}
Parâmetros de configuração disponíveis
url
valor esperado: string
Esquemas de URL disponíveis: ldap://, ldaps://
binddn
valor esperado: string
binddn_passwd
valor esperado: string
group_attribute
valor esperado: string
group_attribute_is_dn
valor esperado: on ou off, padrão off
require
valor esperado: valid_user, user, group
satisfy
valor esperado: all, any
max_down_retries
valor esperado: um número, padrão 0
Contagem de tentativas para tentar reconectar a um servidor LDAP se ele for considerado "DOWN". Isso pode acontecer se uma conexão KEEP-ALIVE com um servidor LDAP expirar ou for encerrada pelo servidor após algum tempo.
Isso geralmente pode ajudar com o seguinte erro:
http_auth_ldap: ldap_result() failed (-1: Can't contact LDAP server)
connections
valor esperado: um número maior que 0
ssl_check_cert
valor esperado: on ou off, padrão off
Verifique o certificado remoto para conexões LDAPs. Se desativado, qualquer certificado remoto será aceito, o que expõe você a possíveis ataques de man-in-the-middle. Observe que o certificado do servidor precisará ser assinado por uma CA adequada confiável pelo seu sistema se isso estiver habilitado. Veja abaixo como confiar em CAs sem instalá-las globalmente no sistema.
Esta opção requer OpenSSL >= 1.0.2; não está disponível se compilada com versões mais antigas.
ssl_ca_file
valor esperado: caminho do arquivo
Confie no certificado CA neste arquivo (veja ssl_check_cert acima).
ssl_ca_dir
valor esperado: caminho do diretório
Confie em todos os certificados CA neste diretório (veja ssl_check_cert acima).
Observe que você precisa fornecer links simbólicos baseados em hash no diretório para que isso funcione; basicamente, você precisará executar o comando c_rehash do OpenSSL neste diretório.
referral
valor esperado: on, off
O padrão da biblioteca LDAP é on. Esta opção desativa o uso de mensagens de referência do servidor LDAP. Útil para autenticar contra um servidor AD somente leitura sem acesso para leitura e gravação.
GitHub
Você pode encontrar dicas adicionais de configuração e documentação para este módulo no repositório do GitHub para nginx-module-auth-ldap.