auth-ldap: Module d'authentification LDAP pour NGINX
Installation
Vous pouvez installer ce module dans n'importe quelle distribution basée sur RHEL, y compris, mais sans s'y limiter :
- RedHat Enterprise Linux 7, 8, 9 et 10
- CentOS 7, 8, 9
- AlmaLinux 8, 9
- Rocky Linux 8, 9
- Amazon Linux 2 et 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
Activez le module en ajoutant ce qui suit en haut de /etc/nginx/nginx.conf :
load_module modules/ngx_http_auth_ldap_module.so;
Ce document décrit nginx-module-auth-ldap v0.3 publié le 28 mai 2020.
Module LDAP pour nginx qui prend en charge l'authentification contre plusieurs serveurs LDAP.
Exemple de configuration
Définissez la liste de vos serveurs LDAP avec les exigences d'utilisateur/groupe requises :
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;
}
}
Et ajoutez les serveurs requis dans le bon ordre dans votre directive location/server :
server {
listen 8000;
server_name localhost;
auth_ldap "Interdit";
auth_ldap_servers test1;
auth_ldap_servers test2;
location / {
root html;
index index.html index.htm;
}
}
Paramètres de configuration disponibles
url
valeur attendue : chaîne
Schémas d'URL disponibles : ldap://, ldaps://
binddn
valeur attendue : chaîne
binddn_passwd
valeur attendue : chaîne
group_attribute
valeur attendue : chaîne
group_attribute_is_dn
valeur attendue : on ou off, par défaut off
require
valeur attendue : valid_user, user, group
satisfy
valeur attendue : all, any
max_down_retries
valeur attendue : un nombre, par défaut 0
Nombre de tentatives pour tenter de se reconnecter à un serveur LDAP s'il est considéré comme "DOWN". Cela peut se produire si une connexion KEEP-ALIVE à un serveur LDAP expire ou est terminée par le serveur après un certain temps.
Cela peut généralement aider avec l'erreur suivante :
http_auth_ldap: ldap_result() failed (-1: Can't contact LDAP server)
connections
valeur attendue : un nombre supérieur à 0
ssl_check_cert
valeur attendue : on ou off, par défaut off
Vérifiez le certificat distant pour les connexions LDAPs. Si désactivé, tout certificat distant sera accepté, ce qui vous expose à de possibles attaques de type homme du milieu. Notez que le certificat du serveur devra être signé par une CA appropriée de confiance par votre système si cela est activé. Voir ci-dessous comment faire confiance aux CA sans les installer à l'échelle du système.
Cette option nécessite OpenSSL >= 1.0.2 ; elle n'est pas disponible si compilée avec des versions antérieures.
ssl_ca_file
valeur attendue : chemin de fichier
Faites confiance au certificat CA dans ce fichier (voir ssl_check_cert ci-dessus).
ssl_ca_dir
valeur attendue : chemin de répertoire
Faites confiance à tous les certificats CA dans ce répertoire (voir ssl_check_cert ci-dessus).
Notez que vous devez fournir des liens symboliques basés sur le hachage dans le répertoire pour que cela fonctionne ; vous devrez essentiellement exécuter la commande c_rehash d'OpenSSL dans ce répertoire.
referral
valeur attendue : on, off
La valeur par défaut de la bibliothèque LDAP est on. Cette option désactive l'utilisation des messages de référence du serveur LDAP. Utile pour s'authentifier contre un serveur AD en lecture seule sans accès en écriture.
GitHub
Vous pouvez trouver des conseils de configuration supplémentaires et de la documentation pour ce module dans le dépôt GitHub pour nginx-module-auth-ldap.