Benutzer-Werkzeuge

Webseiten-Werkzeuge


externe_authentisierungsschnittstelle

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
externe_authentisierungsschnittstelle [2017/10/26 10:57] – [Zusätzliche Aliase] lwsystemsexterne_authentisierungsschnittstelle [2022/09/13 19:12] (aktuell) – [Beispiel: Zusätzliche Aliase] lwsystems
Zeile 3: Zeile 3:
 Die Authentisierung gegen eine externe Benutzerdatenbank (z.B. LDAP oder ActiveDirectory) erfolgt mit Hilfe eines externen Programms. Dieses prüft die Anmeldedaten gegen die externe Datenbank und gibt den Status zurück.  Die Authentisierung gegen eine externe Benutzerdatenbank (z.B. LDAP oder ActiveDirectory) erfolgt mit Hilfe eines externen Programms. Dieses prüft die Anmeldedaten gegen die externe Datenbank und gibt den Status zurück. 
  
-Der Programmpfad wird in der Konfigurationsdatei im Parameter EXTERNAL_AUTH festgelegt. Zum Beispiel: 
- 
-<code> 
-EXTERNAL_AUTH = /usr/local/sbin/benno_externalauth 
-</code> 
  
 ===== Authentisierungs-Protokoll ===== ===== Authentisierungs-Protokoll =====
  
-Das Authentisierungs-Modul implementiert das [[authentisierung#Authentisierungs-Protokoll]] für die Anmeldung am Benno Web-UI. +Ein Authentisierungsmodul implementiert das [[Authentisierungs-Protokoll]] für die Anmeldung am Benno Web-UI.  
 +Beim Login werden der Reihe nach alle Authentiserungsmodule im Verzeichnis ''/etc/benno-web/auth.d'' aufgerufen, bis die Authentisierung erfolgreich war.
  
- +====== BeispielZusätzliche Aliase  ======
-===== "Modulstack" zur Erweiterung der Authentisierung ===== +
- +
-====== Externe User  ====== +
- +
-Es sollen sich externe Benutzer, die nicht im zentralen Verwaltungssystem gepflegt werden können, an Benno MailArchiv anmelden können. Dieses Szenario läßt sich mit Hilfe eines Authentisierungsstacks lösen. +
- +
-In der Datei ''/etc/benno-web/benno.conf'' wird das das Modul //benno_auth.d// als externes Authentisierungsmodul konfiguriert. +
- +
-<code> +
-EXTERNAL_AUTH = /usr/sbin/benno_auth.d +
-</code>  +
- +
-Danach wird das Verzeichnis ''/etc/benno-web/auth.d'' angelegt und hier die benötigten Authentisierungsmodule verlinkt. Im Beispiel sollen sich User über ihren IMAP-Account anmelden können. +
- +
-<code bash> +
-mkdir /etc/benno-web/auth.d +
-ln -s /usr/lib/benno-web/benno_sqliteauth /etc/benno-web/auth.d +
-ln -s /usr/lib/benno-imap/benno_imapauth /etc/benno-web/auth.d  +
-</code> +
- +
-Das Authentisierungsmodul ruft der Reihe nach alle Authentiserungsmodule im Verzeichnis auf, bis die Authentisierung erfolgreich war. +
- +
-In diesem Fall kann die Authentisierung gegen einen IMAP-Server mit Hilfe von [[benno-imap]] oder gegen die Interne Datenbank erfolgen. +
- +
-====== Zusätzliche Aliase  ======+
  
 Einigen Usern soll zusätzlich Zugriff auf einzelne Adressen ermöglicht werden. Die Konfiguration über die LDAP-Attribute würde eine Erweiterung des LDAP-Schemas erfordern und ist daher nicht einfach umsetzbar. Einigen Usern soll zusätzlich Zugriff auf einzelne Adressen ermöglicht werden. Die Konfiguration über die LDAP-Attribute würde eine Erweiterung des LDAP-Schemas erfordern und ist daher nicht einfach umsetzbar.
Zeile 44: Zeile 15:
 In diesem Fall wird ein einfaches Authentisierungsmodul ''[[#csv_aliases]]'' erstellt und in den Modulstack integriert. In diesem Fall wird ein einfaches Authentisierungsmodul ''[[#csv_aliases]]'' erstellt und in den Modulstack integriert.
  
-Zuerst wird das Verzeichnis ''/etc/benno-web/auth.d'' angelegt und hier die benötigten Authentisierungsmodule verlinkt. Im Beispiel die vorhandene LDAP-Authentisierung. +Das Authentisierungsmodul ''[[#csv_aliases]]'' (s.u.) wird im Verzeichnis ''/etc/benno-web/auth.d'' erstellt. Dieses liest den einzelnen Benutzern zugeordneten Aliase aus einer CSV-Datei.
- +
-<code bash> +
-mkdir /etc/benno-web/auth.d +
-ln -s /usr/lib/benno-web/benno_ldapauth /etc/benno-web/auth.d +
-</code> +
- +
-Im nächsten Schritt wird das Authentisierungsmodul ''[[#csv_aliases]]'' (s.u.) im Verzeichnis ''/etc/benno-web/auth.d'' erstellt. Dieses liest den einzelnen Benutzern zugeordneten Aliase aus einer CSV-Datei.+
  
 Das Authentisierungsmodul muss ausführbar sein: ''chmod 0755 /etc/benno-web/auth.d/csv_aliases''. Das Authentisierungsmodul muss ausführbar sein: ''chmod 0755 /etc/benno-web/auth.d/csv_aliases''.
  
-Die [[#benno_addressmap.csv|CSV-Datei benno_addressmap.csv]] enthält die Zuordnung <username> -> <zusätzliche Adresse> per Semikolon getrennt. Diese Datei kann z.B. über eine Tabellenkalkulation erstellt oder aus einem anderen Programm exportiert werden.+Die CSV-Datei ''[[#benno_addressmap.csv|/etc/benno-web/benno_addressmap.csv]]'' enthält die Zuordnung <username> -> <zusätzliche Adresse> per Semikolon getrennt. Diese Datei kann z.B. über eine Tabellenkalkulation erstellt oder aus einem anderen Programm exportiert werden.
  
 ===== csv_aliases ===== ===== csv_aliases =====
  
  
-<code bash>+<code>
 #!/bin/bash #!/bin/bash
 # #
-# /etc/benno-web/auth.d/csv_aliases+# /etc/benno-web/auth.de/csv_aliases
 # #
-ADDRESSMAP=/etc/benno_addressmap.csv+ADDRESSMAP=/etc/benno-web/benno_addressmap.csv
  
 read BENNOUSER BENNOPASSOLD read BENNOUSER BENNOPASSOLD
 read BENNOPASS read BENNOPASS
  
-if [ ${BENNOPASS}x = x ];then +if [ "${BENNOPASS}x= x ];then 
-    BENNOPASS=${BENNOPASSOLD}+    BENNOPASS="${BENNOPASSOLD}"
 else else
-    BENNOUSER="${BENNOUSER} ${BENNOPASSOLD}"+    if [ "${BENNOPASSOLD}y" != y ];then 
 +        BENNOUSER="${BENNOUSER} ${BENNOPASSOLD}" 
 +    fi
 fi fi
  
-if [ ${BENNOPASS}];then+if [ "${BENNOPASS}z" ];then
     echo "ERROR ERR_NOPASS\n";     echo "ERROR ERR_NOPASS\n";
     >&2 echo "Aufruf: echo -e \"<username>\n<passwort>\" | $0\n";     >&2 echo "Aufruf: echo -e \"<username>\n<passwort>\" | $0\n";
     exit     exit
 fi fi
- +grep "^${BENNOUSER};" ${ADDRESSMAP} | cut -d\; -f2 | while read ALIASADDRESS; do
-grep ${BENNOUSER} ${ADDRESSMAP} | cut -d\; -f2 | while read ALIASADDRESS; do+
     echo "MAIL ${ALIASADDRESS}"     echo "MAIL ${ALIASADDRESS}"
 done done
externe_authentisierungsschnittstelle.1509015450.txt.gz · Zuletzt geändert: 2017/10/26 10:57 von lwsystems