In der voreingestellten Konfiguration erfolgt die Authentisierung am Web-Interface gegen eine SQLite Datenbank.
Beim Anmeldevorgang werden der Bentzer und das Passwort aus der entsprechenden Tabelle gelesen und mit den übergebenen Daten verglichen. Nach erfolgreicher Prüfung werden die für den jeweiligen Benutzer gespeicherten Daten ausgelesen. Neben den Anmelde-Informationen werden hier weitere, dem Benutzer zugeordnete Metadaten wie z.B. die gespeicherten Suchabfragen abgelegt.
Die Pflege der Benutzerdaten erfolgt auf der Konsole mit dem Kommando benno-useradmin
.
Mit Hilfe von benno-useradmin
können die Authentisierungsmodule und die Rückgabewerte einfach getestet werden.
# benno-useradmin -t -u admin Password: 50_benno_dbauth: Passwort fuer User lwsystems falsch. ROLE USER DISPLAYNAME LWsystems MAIL lwsystems@lwsystems.intern ARCHIVE BennoContainer AUTH OK
Das Passwort kann auch per Parameter -p PASSWORT übergeben werden.
Nach erfolgreicher Authentisierung werden der Anzeigename des Benutzers sowie die diesem Benutzer zugeordneten E-Mail Adressen ausgelesen. Die Liste der E-Mail Adressen definiert hier gleichzeitig, welche E-Mails der Benutzer sehen darf.
Alternativ kann auch eine MySQL Datenbank zur Speicherung der Benutzerdaten angebunden werden.Nach Konfiguration der Datenbank und einem Benutzer mit Schreib- und Leserechten für die DB wird die Anbindung in der Datei /etc/benno-web/benno.conf konfiguriert.
# DATABASE ACCESS DBTYPE = mysql DBUSER = benno DBPASS = GeheimesPasswort DBHOST = localhost DATABASE = benno
Die MySQL Tabellen werden wie hier angegeben erzeugt.
Zur Authentisierung gegen externe Backends bietet Benno MailArchiv eine generische Schnittstelle. Hierbei wird ein externes Programm oder Script aufgerufen und diesem der Benutzername und das Passwort als Kommandozeilenargumente übergeben. Das Programm gibt das Ergebnis des Authentisierungsversuchs per STDOUT zurück.
Ein externes Authentisierungs-Backend kann relativ einfach durch ein Programms, welches das Authentisierungs-Protokolls implementiert, erstellt werden.
Im Erfolgsfall sind das die dem Benutzer zugeordneten Daten. Im Fehlerfall wird ein Fehlercode zurückgegeben, der im Web-UI einer Text-Meldung zugeordnet werden kann.