Dies ist eine alte Version des Dokuments!
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:
EXTERNAL_AUTH = /usr/lib/benno-web/benno_ldapauth
Das Authentisierungs-Modul implementiert das Authentisierungs-Protokoll für die Anmeldung am Benno Web-UI.
Es soll sich ein externer Benutzer, der nicht im zentralen Verwaltungssystem gepflegt werden kann, am Benno MailArchiv anmelden können.
Dieses Szenario läßt sich sehr einfach mit einem Wrapper-Script lösen, welches mehrere Authentisierungsmodule nacheinander aufruft. In der Datei /etc/benno-web/benno.conf
wird das Wrapper-Script als Authentisierungsmodul konfiguriert.
EXTERNAL_AUTH = /etc/benno-web/benno_authwrapper
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.
#!/bin/sh # # File: /etc/benno-web/benno_authwrapper # # read username password logger -p auth.info "Benno login request for \"$username\"." # Extra user echo "$username $password" | /etc/benno-web/benno_auth-extrausers RETVAL=$? if [ ${RETVAL} -eq 0 ];then logger -p auth.info "Benno login of extrauser \"$username\" successful." exit 0; fi echo "$username $password" | /etc/benno-web/benno_ldapauth RETVAL=$? if [ ${RETVAL} -eq 0 ];then logger -p auth.info "Benno login of \"$username\" successful." else logger -p auth.info "Benno login of \"$username\" failed." fi
Das Script mit dem zusätzlichen Benutzer ist im einfachsten Fall wie folgt aufgebaut.
#!/bin/sh # # File: /etc/benno-web/benno_auth-extrausers # # read username password if [ "${username}" = 'praktikant' ] && [ "${password}" = 'a5dfIh9Qh88q' ];then echo 'ARCHIVE BennoContainer' echo 'ROLE USER' echo 'DISPLAYNAME LWsystems Support' echo 'MAIL sammelpostfach@lw-systems.net' exit 0 fi exit 1