Benutzer-Werkzeuge

Webseiten-Werkzeuge


oauth2

Anmeldung per OAuth2

Mit Hilfe der OAuth2 Erweiterung für Benno MailArchiv kann eine Anmeldung per OAuth2 / OIDC gegen einen zentralen Indentity Provider (z.B. Google, Microsoft Azure oder Keycloak in eigenen Installationen) durchgeführt werden.

Der IDP bietet in der Regel auch eine einfache Konfiguration einer 2-Faktor Authentisierung.

Installation

Zur Aktivierung von OAuth2 wird das Paket benno-oauth2 benötigt.

apt install benno-oauth2

Das Paket installiert neben den benötigten Programmdateien Konfigurationsdateien im Verzeichnis /etc/benno-oauth2/. Hier wird die Anbindung an den IDP konfiguriert sowie das Mapping von Containern zum OAuth2 Issuer der User eingestellt.

Konfiguration

In der Konfigurationsdatei /etc/benno-oauth2/idpClient.yml wird für den entsprechenden IDP-Provider im Attribut redirectURI der aus dem Internet erreichbare Hostname des Benno MailArchiv Systems eingetragen. Die Redirect-URI muss anschließend beim IDP in der Client-Registrierung gespeichert werden.

Im entsprechenden Interface des IDPs muss die Benno MailArchiv Installatio als Client registriert werden. Die Konfiguration von OAuth2-Clients ist in der Dokumentation des jeweiligen IDPs zu entnehmen.

Nach Einrichtung des Clients können hier die benötigten Verbindungsdaten wie clientID und clientSecret ausgelesen werden. Diese werden dann in der Konfigurationsdatei /etc/benno-oauth2/idpClients.yml in die entsprechenden Attribute eingetragen. Die anderen Einträge in der Konfigurationsdatei müssen in der Regel nicht angepasst werden.

Login Link

Die Anmeldung per OAuth2 an Benno MailArchiv erfolgt über den Link https://<benno-mailarchiv-hostname>//benno/oauth2/login?idp-client=<name-idp>. Hier wird <name-idp> durch den Namen der IDP-Konfiguration unter clients: ersetzt (Bsp. azure-idp, google-idp, keycloak-idp).

Falls die Datei /etc/benno-oauth2/assets/login.tpl existiert, wird der Inhalt dieser Datei in die Loginseite von Benno Web eingeblendet. Diese Datei sollte ein Smarty Template Snippet analog zu den tpl-Dateien in /usr/share/benno-oauth2/*.tpl sein. Für Standard-Konfigurationen kann ein ensprechender Symlink erstellt werden.

Beispiel Google Login:

ln -s /usr/share/benno-oauth2/google-login.tpl /etc/benno-oauth2/assets/login.tpl
ln -s /usr/share/benno-oauth2/google-logo.svg  /etc/benno-oauth2/assets/google-logo.svg

Container Mapping

Das Contianer-Mapping wird durch das automatisch installiert AUTH-Script /etc/benno-web/auth.d/10_oauth2_containermapping implementiert. Dieses liest die Datei /etc/benno-oauth2/issuer.map und gibt den Container anhand der Issuer-ID des Accesstoken zurück.

Per Default wird für jeden User der Standard-Container BennoContainer gesetzt.

Falls Benno MailArchiv als Multi-Mandanten System betrieben wird, muss die Zeile „* BennoContainer“ entfernt werden und die Issuer-Container Informationen konfiguriert werden.

Das AUTH-Script implementiert das Benno Authentisierungs-Protokoll und kann daher einfach durch eigens angepasste Scripte ersetzt oder erweitert werden.

oauth2.txt · Zuletzt geändert: 2024/02/23 08:32 von lwsystems