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.
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.
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.
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.
Das Authentisierungsmodul muss ausführbar sein: chmod 0755 /etc/benno-web/auth.d/csv_aliases
.
Die CSV-Datei /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.
#!/bin/bash # # /etc/benno-web/auth.de/csv_aliases # ADDRESSMAP=/etc/benno-web/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
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