Zum Inhalt

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.