Benutzer-Werkzeuge

Webseiten-Werkzeuge


externe_authentisierungsschnittstelle

Dies ist eine alte Version des Dokuments!


Externe Authentisierungsschnittstelle

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

Authentisierungs-Protokoll

Das Authentisierungs-Modul implementiert das Authentisierungs-Protokoll für die Anmeldung am Benno Web-UI.

Beispiel: "Modulstack" zur Authentisierung externer User

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
externe_authentisierungsschnittstelle.1481874967.txt.gz · Zuletzt geändert: 2016/12/16 07:56 von lwsystems