Benutzer-Werkzeuge

Webseiten-Werkzeuge


externe_authentisierungsschnittstelle

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/local/sbin/benno_externalauth

Authentisierungs-Protokoll

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

"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.

EXTERNAL_AUTH = /usr/sbin/benno_auth.d

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.

mkdir /etc/benno-web/auth.d
ln -s /usr/lib/benno-web/benno_sqliteauth /etc/benno-web/auth.d
ln -s /usr/lib/benno-web/benno_ldapauth /etc/benno-web/auth.d 

Das Authentisierungsmodul ruft der Reihe nach alle Authentiserungsmodule im Verzeichnis auf, bis die Authentisierung erfolgreich war.

In diesem Fall kann die Authentisierung gegen einen LDAP Server 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.

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.

mkdir /etc/benno-web/auth.d
ln -s /usr/lib/benno-web/benno_ldapauth /etc/benno-web/auth.d

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.

Die 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.

csv_aliases

#!/bin/bash
#
# /etc/benno-web/auth.de/csv_aliases
#
ADDRESSMAP=/etc/benno_addressmap.csv

read BENNOUSER BENNOPASSOLD
read BENNOPASS

if [ "${BENNOPASS}x" = x ];then
    BENNOPASS="${BENNOPASSOLD}"
else
    if [ "${BENNOPASSOLD}y" != y ];then
        BENNOUSER="${BENNOUSER} ${BENNOPASSOLD}"
    fi
fi

if [ "${BENNOPASS}z" = z ];then
    echo "ERROR ERR_NOPASS\n";
    >&2 echo "Aufruf: echo -e \"<username>\n<passwort>\" | $0\n";
    exit
fi
grep "^${BENNOUSER};" ${ADDRESSMAP} | cut -d\; -f2 | while read ALIASADDRESS; do
    echo "MAIL ${ALIASADDRESS}"
done

benno_addressmap.csv

s.petersen;buchhaltung@hansen-und-meyer.de
k.schmidt;office@hansen-und-meyer.de
k.schmidt;fax@hansen-und-meyer.de
u.hansen;buchhaltung@hansen-und-meyer.de
u.hansen;office@hansen-und-meyer.de
externe_authentisierungsschnittstelle.txt · Zuletzt geändert: 2018/10/20 18:16 von lwsystems