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 [2016/12/16 07:56] 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/lib/benno-web/benno_ldapauth 
-</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.
  
 +====== Beispiel: Zusätzliche Aliase  ======
  
-====== Beispiel: "Modulstack" zur Authentisierung externer User  ======+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.
  
-Es soll sich ein externer Benutzer, der nicht im zentralen Verwaltungssystem gepflegt werden kann, am Benno MailArchiv anmelden können+In diesem Fall wird ein einfaches Authentisierungsmodul ''[[#csv_aliases]]'' erstellt und in den Modulstack integriert.
  
-Dieses Szenario läßt sich sehr einfach mit einem Wrapper-Script lösen, welches mehrere Authentisierungsmodule nacheinander aufruftIn der Datei ''/etc/benno-web/benno.conf'' wird das Wrapper-Script als Authentisierungsmodul konfiguriert.+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> +Das Authentisierungsmodul muss ausführbar sein: ''chmod 0755 /etc/benno-web/auth.d/csv_aliases''.
-EXTERNAL_AUTH = /etc/benno-web/benno_authwrapper +
-</code> +
  
 +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 =====
  
-Das Script benno_authwrapper ruft das Authentisierungsmodul mit den zusätzlichen Benutzern auf. Falls hier die Authentisierung fehlschlägt, erfolgt ein Versuch gegen das eigentliche Authentisierungsbackend.  
  
 <code> <code>
-#!/bin/sh+#!/bin/bash
 # #
-File: /etc/benno-web/benno_authwrapper+# /etc/benno-web/auth.de/csv_aliases
 # #
-+ADDRESSMAP=/etc/benno-web/benno_addressmap.csv
-read username password+
  
-logger -p auth.info "Benno login request for \"$username\"."+read BENNOUSER BENNOPASSOLD 
 +read BENNOPASS
  
-# Extra user +if [ "${BENNOPASS}x= x ];then 
-echo "$username $password| /etc/benno-web/benno_auth-extrausers +    BENNOPASS="${BENNOPASSOLD}" 
-RETVAL=$? +else 
-if [ ${RETVAL-eq 0 ];then +    if [ "${BENNOPASSOLD}y" != y ];then 
-    logger -p auth.info "Benno login of extrauser \"$username\" successful.+        BENNOUSER="${BENNOUSER} ${BENNOPASSOLD}
-    exit 0;+    fi
 fi fi
  
-echo "$username $password" | /etc/benno-web/benno_ldapauth +if [ "${BENNOPASS}z" = z ];then 
-RETVAL=$? +    echo "ERROR ERR_NOPASS\n"; 
-if [ ${RETVAL-eq 0 ];then +    >&2 echo "Aufruf: echo -e \"<username>\n<passwort>\" $0\n"
-    logger -p auth.info "Benno login of \"$username\" successful." +    exit
-else +
-    logger -p auth.info "Benno login of \"$username\" failed."+
 fi fi
-</code> +grep "^${BENNOUSER};" ${ADDRESSMAP} | cut -d\; -f2 | while read ALIASADDRESS; do 
 +    echo "MAIL ${ALIASADDRESS}" 
 +done 
 +</code>
  
-Das Script mit dem zusätzlichen Benutzer ist im einfachsten Fall wie folgt aufgebaut.  
  
-<code> +===== benno_addressmap.csv =====
-#!/bin/sh +
-+
-# File: /etc/benno-web/benno_auth-extrausers +
-+
-+
-read username password+
  
-if [ "${username}" = 'praktikant' ] && [ "${password}" = 'a5dfIh9Qh88q' ];then +<file csv> 
-    echo 'ARCHIVE BennoContainer' +s.petersen;buchhaltung@hansen-und-meyer.de 
-    echo 'ROLE USER' +k.schmidt;office@hansen-und-meyer.de 
-    echo 'DISPLAYNAME LWsystems Support' +k.schmidt;fax@hansen-und-meyer.de 
-    echo 'MAIL sammelpostfach@lw-systems.net' +u.hansen;buchhaltung@hansen-und-meyer.de 
-    exit 0 +u.hansen;office@hansen-und-meyer.de 
-fi +</file>
-exit 1 +
-</code>+
externe_authentisierungsschnittstelle.txt · Zuletzt geändert: 2022/09/13 19:12 von lwsystems