Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
centos:ldaps-auth-nginx [17.07.2015 21:46. ] – django | centos:ldaps-auth-nginx [18.11.2024 19:09. ] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
---|---|---|---|
Zeile 2: | Zeile 2: | ||
In der Regel haben wir zur Verwaltung der Nutzerdaten ein Backendsystem zur Verwaltung im Einsatz. Im folgendem Konfigurationsbeispiel werden wir uns nun gegen einen vorhandenen **[[centos: | In der Regel haben wir zur Verwaltung der Nutzerdaten ein Backendsystem zur Verwaltung im Einsatz. Im folgendem Konfigurationsbeispiel werden wir uns nun gegen einen vorhandenen **[[centos: | ||
- | Der Webserver **[[http:// | + | Der Webserver **[[http:// |
- | * **http:// | + | * **http:// |
<WRAP center round important 85%> | <WRAP center round important 85%> | ||
Zeile 14: | Zeile 14: | ||
===== Konfiguration ===== | ===== Konfiguration ===== | ||
- | FIXME | + | Die Konfiguration der LDAPs Authentifikation beim Webserver [[http:// |
+ | |||
+ | Sehen wir uns das an folgendem Beispiel genauer an. | ||
+ | # vim / | ||
+ | |||
+ | <file apache / | ||
+ | # Definition für die Anbindung unseres nginx Servers an den | ||
+ | # OpenLDAP-Server für die Authentifikation des Users django | ||
+ | |||
+ | ldap_server ldap_group_1 { | ||
+ | url ldaps:// | ||
+ | binddn " | ||
+ | binddn_passwd " | ||
+ | group_attribute uniquemember; | ||
+ | group_attribute_is_dn on; | ||
+ | # | ||
+ | require user " | ||
+ | require user " | ||
+ | } | ||
+ | |||
+ | # Definition für die Anbindung unseres nginx Servers an den | ||
+ | # OpenLDAP-Server für die Authentifikation des Users michael | ||
+ | ldap_server ldap_group_2 { | ||
+ | url ldaps:// | ||
+ | binddn " | ||
+ | binddn_passwd " | ||
+ | group_attribute uniquemember; | ||
+ | group_attribute_is_dn on; | ||
+ | require user " | ||
+ | }</ | ||
+ | |||
+ | <WRAP center round important 99%> | ||
+ | **Wichtig**: | ||
+ | |||
+ | Der Name der Konfigurationsdatei **1st_ldap.conf** wurde mit Absicht so gewählt, da **nginx** beim Starten die Dateien in alphabetischer Reihenfolge einliest. Die Definition des **ldap_server** **__muss__** vor dem verweisen der Serverkonfiguration erfolgen, andernfalls würde bei einem Test der Konfiguration, | ||
+ | # nginx -t | ||
+ | |||
+ | nginx: [emerg] http_auth_ldap: | ||
+ | nginx: configuration file / | ||
+ | |||
+ | </ | ||
+ | |||
+ | Nun können wir in der Serverkonfiguration auf die gerade eben angelegten **ldap_server** rückverweisen. | ||
+ | # vim / | ||
+ | |||
+ | <file apache / | ||
+ | # Django : 2015-05-28 | ||
+ | # auf welchem Port soll der Server lauschen (HTTP: 80)? | ||
+ | listen | ||
+ | |||
+ | # auf welchen Servernamen (vHOST) soll der Server reagieren? | ||
+ | server_name | ||
+ | |||
+ | # Welches Access- und Error-Logfile soll beschrieben werden? | ||
+ | access_log | ||
+ | error_log | ||
+ | |||
+ | # HTTP auf HTTPS mit Statuscode 301 "moved permanently" | ||
+ | return | ||
+ | } | ||
+ | |||
+ | |||
+ | server { | ||
+ | # Django : 2015-05-28 | ||
+ | # auf welchem Port soll der Server lauschen (HTTPS: 443)? | ||
+ | # neben TLS soll auch SPDY (http:// | ||
+ | # angeboten werden. | ||
+ | listen | ||
+ | |||
+ | # auf welchen Servernamen (vHOST) soll der Server reagieren? | ||
+ | server_name | ||
+ | |||
+ | # Welches Access- und Error-Logfile soll beschrieben werden? | ||
+ | access_log | ||
+ | error_log | ||
+ | |||
+ | # Standard-Parameter für TLS-Verschlüsselung inkludieren | ||
+ | include | ||
+ | # Zertifikatsdatei inkl. ggf. notwendiger Zwischen- und Root-Zertifikaten | ||
+ | # 1) Server-Zertifikat, | ||
+ | # 3) Root-Zertifikat der CA | ||
+ | ssl_certificate | ||
+ | # Schlüsseldatei, | ||
+ | ssl_certificate_key | ||
+ | |||
+ | # Zugriffe erst nach erfolreicher Authentifizierung gestatten | ||
+ | # Authentifikation des Benutzers django gegen den zentralen | ||
+ | # OpenLDAP-Verzeichnisdienst | ||
+ | auth_ldap | ||
+ | auth_ldap_servers | ||
+ | |||
+ | # Welcher Inhalt soll angezeigt bzw. auf welchen Server sollen | ||
+ | # die HTTP-Requests | ||
+ | # weitergeleitet werden? | ||
+ | root / | ||
+ | index | ||
+ | |||
+ | location ~ \.php { | ||
+ | fastcgi_split_path_info ^(.+\.php)(/ | ||
+ | fastcgi_index | ||
+ | fastcgi_param | ||
+ | include | ||
+ | } | ||
+ | |||
+ | location ~* ^/ | ||
+ | expires | ||
+ | root / | ||
+ | allow | ||
+ | } | ||
+ | |||
+ | location ~ icons { | ||
+ | allow | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | <WRAP center round tip 99%> | ||
+ | **Achtung**: | ||
+ | |||
+ | Prüft man mit Hilfe des Befehls **nginx -t** die Konfiguration, | ||
+ | # nginx -t | ||
+ | |||
+ | nginx: [emerg] http_auth_ldap: | ||
+ | nginx: [emerg] http_auth_ldap: | ||
+ | nginx: [emerg] http_auth_ldap: | ||
+ | nginx: the configuration file / | ||
+ | nginx: configuration file / | ||
+ | |||
+ | Dies ist ein __[[https:// | ||
+ | </ | ||
+ | |||
+ | Damit unsere Änderungen aktiv werden bedarf es noch eines reloads unseres HTTP-Deamon. | ||
+ | # systemctl reload nginx.service | ||
+ | |||
+ | <WRAP center round important> | ||
+ | **WICHTIG: | ||
+ | Damit die Anmeldedaten nicht von Dritten mitgelesen und abgefischt werden können, nutzen wir natürlich einen SSL-geschützten vHOST! | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Test ===== | ||
+ | Der Webserver wird nun den Zugang erst gestatten, sobald die Daten richtig eingegeben wurden. | ||
+ | {{ : | ||
+ | |||
+ | Wird über den Menüpunkt **[ __C__ancel ]** die Eingabe abgebrochen, | ||
+ | |||