auth-ldap: LDAP-Authentifizierungsmodul für NGINX
Installation
Sie können dieses Modul in jeder RHEL-basierten Distribution installieren, einschließlich, aber nicht beschränkt auf:
- RedHat Enterprise Linux 7, 8, 9 und 10
- CentOS 7, 8, 9
- AlmaLinux 8, 9
- Rocky Linux 8, 9
- Amazon Linux 2 und 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
Aktivieren Sie das Modul, indem Sie Folgendes an den Anfang von /etc/nginx/nginx.conf hinzufügen:
load_module modules/ngx_http_auth_ldap_module.so;
Dieses Dokument beschreibt nginx-module-auth-ldap v0.3, das am 28. Mai 2020 veröffentlicht wurde.
LDAP-Modul für nginx, das die Authentifizierung gegen mehrere LDAP-Server unterstützt.
Beispielkonfiguration
Definieren Sie eine Liste Ihrer LDAP-Server mit den erforderlichen Benutzer-/Gruppenanforderungen:
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;
}
}
Und fügen Sie die erforderlichen Server in der richtigen Reihenfolge in Ihre location/server-Direktive ein:
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;
}
}
Verfügbare Konfigurationsparameter
url
erwarteter Wert: Zeichenkette
Verfügbare URL-Schemata: ldap://, ldaps://
binddn
erwarteter Wert: Zeichenkette
binddn_passwd
erwarteter Wert: Zeichenkette
group_attribute
erwarteter Wert: Zeichenkette
group_attribute_is_dn
erwarteter Wert: on oder off, standardmäßig off
require
erwarteter Wert: valid_user, user, group
satisfy
erwarteter Wert: all, any
max_down_retries
erwarteter Wert: eine Zahl, standardmäßig 0
Anzahl der Versuche, um eine Verbindung zu einem LDAP-Server wiederherzustellen, wenn dieser als "DOWN" betrachtet wird. Dies kann passieren, wenn eine KEEP-ALIVE-Verbindung zu einem LDAP-Server abläuft oder vom Server nach einer bestimmten Zeit beendet wird.
Dies kann normalerweise bei folgendem Fehler helfen:
http_auth_ldap: ldap_result() failed (-1: Can't contact LDAP server)
connections
erwarteter Wert: eine Zahl größer als 0
ssl_check_cert
erwarteter Wert: on oder off, standardmäßig off
Überprüfen Sie das Remote-Zertifikat für LDAPs-Verbindungen. Wenn deaktiviert, wird jedes Remote-Zertifikat akzeptiert, was Sie möglichen Man-in-the-Middle-Angriffen aussetzt. Beachten Sie, dass das Zertifikat des Servers von einer geeigneten CA signiert sein muss, die von Ihrem System vertraut wird, wenn dies aktiviert ist. Siehe unten, wie Sie CAs vertrauen können, ohne sie systemweit zu installieren.
Diese Option benötigt OpenSSL >= 1.0.2; sie ist nicht verfügbar, wenn mit älteren Versionen kompiliert.
ssl_ca_file
erwarteter Wert: Dateipfad
Vertrauen Sie dem CA-Zertifikat in dieser Datei (siehe ssl_check_cert oben).
ssl_ca_dir
erwarteter Wert: Verzeichnispfad
Vertrauen Sie allen CA-Zertifikaten in diesem Verzeichnis (siehe ssl_check_cert oben).
Beachten Sie, dass Sie hashbasierte Symlinks im Verzeichnis bereitstellen müssen, damit dies funktioniert; Sie müssen im Grunde den c_rehash-Befehl von OpenSSL in diesem Verzeichnis ausführen.
referral
erwarteter Wert: on, off
Standardmäßig ist die LDAP-Bibliothek auf on. Diese Option deaktiviert die Verwendung von Referenznachrichten vom LDAP-Server. Nützlich für die Authentifizierung gegen einen schreibgeschützten AD-Server ohne Zugriff auf Schreibrechte.
GitHub
Sie finden möglicherweise zusätzliche Konfigurationstipps und Dokumentationen für dieses Modul im GitHub-Repository für nginx-module-auth-ldap.