Keycloak-Integration
Dieses Tutorial ist ein Community-Beitrag und wird vom Open WebUI-Team nicht unterstützt. Es dient lediglich als Demonstration, wie Open WebUI für Ihren spezifischen Anwendungsfall angepasst werden kann. Möchten Sie beitragen? Schauen Sie sich das Tutorial zum Beitragen an.
Diese Anleitung erklärt, wie Sie Open WebUI mit Keycloak für OIDC Single Sign-On (SSO) integrieren.
1. Vorbereitung der Umgebung und Portänderung
Open WebUI Server Port
- Standard-Port:
8080
Keycloak Port-Konfliktproblem
Keycloak verwendet standardmäßig ebenfalls Port 8080, was zu einem Konflikt führt. Ändern Sie den Keycloak-Port auf 9090.
bin/kc.sh start-dev --http-port=9090
2. Keycloak Realm erstellen
- Öffnen Sie Ihren Browser und rufen Sie
https://:9090auf. Erstellen Sie ein Administratorkonto. - Melden Sie sich in der Admin-Konsole unter
https://:9090/adminan. - Klicken Sie im Realm-Dropdown im oberen Bereich auf Realm hinzufügen.
- Geben Sie
openwebuials Realm-Name ein und klicken Sie auf Erstellen.

3. OpenID Connect Client erstellen
Stellen Sie sicher, dass der Realm openwebui ausgewählt ist. Standardmäßig ist dies master.

- Stellen Sie sicher, dass der gerade erstellte Realm
openwebuiausgewählt ist. - Klicken Sie im linken Menü auf Clients → Client erstellen.
- Setzen Sie Client-ID auf
open-webui. - Behalten Sie Client-Protokoll als
openid-connectbei. - Setzen Sie Zugriffstyp auf
confidentialund klicken Sie auf Speichern.

4. Client-Authentifizierung aktivieren und Anmeldedaten abrufen
Standardmäßig setzt Keycloak 26.x die Client-Authentifizierung auf "Keine", daher muss sie manuell konfiguriert werden.
- Gehen Sie zu Clients → open-webui → Einstellungen.
- Überprüfen Sie das Dropdown-Menü Client-Authentifikator.
- Ändern Sie "Keine" auf Client-ID und Secret und klicken Sie auf Speichern.
- Klicken Sie auf die Registerkarte Erweitert.
- Klicken Sie im Abschnitt Client-Authentifizierung auf Secret anzeigen und kopieren Sie das Secret.
- Fügen Sie dieses Secret in die Variable
OAUTH_CLIENT_SECRETin Ihrer.env-Datei ein.
5. Testbenutzer erstellen
- Gehen Sie im linken Menü zu Benutzer → Benutzer hinzufügen.
- Füllen Sie Benutzername, E-Mail usw. aus und klicken Sie auf Speichern.
- Klicken Sie auf den neu erstellten Benutzer und gehen Sie dann zur Registerkarte Anmeldedaten.
- Geben Sie ein neues Passwort ein, deaktivieren Sie Temporär und klicken Sie auf Passwort festlegen.
- Beispiel: Benutzername
testuser, PasswortTest1234!
- Beispiel: Benutzername
6. Open WebUI .env konfigurieren
Fügen Sie die folgenden Variablen zu Ihrer .env-Datei hinzu oder ändern Sie sie.
# Enable OAuth2/OIDC Login
ENABLE_OAUTH_SIGNUP=true
# Keycloak Client Information
OAUTH_CLIENT_ID=open-webui
OAUTH_CLIENT_SECRET=<YOUR_COPIED_SECRET>
# OIDC Discovery Document URL
OPENID_PROVIDER_URL=https://:9090/realms/openwebui/.well-known/openid-configuration
# (Optional) SSO Button Label
OAUTH_PROVIDER_NAME=Keycloak
# (Optional) OAuth Callback URL
OPENID_REDIRECT_URI=https://:8080/oauth/oidc/callback
Starten Sie den Open WebUI-Server nach der Änderung der .env-Datei neu.
7. HTTP vs. HTTPS
- HTTP (Entwicklung/Test):
- Schema:
http:// - Beispiel:
https://:9090
- Schema:
- HTTPS (Produktion empfohlen):
- Erfordert Keycloak TLS-Einrichtung oder einen Reverse-Proxy mit SSL-Terminierung.
bin/kc.sh start --https-port=9090 \
--https-key-store=keystore.jks \
--https-key-store-password=<password>
8. Integration testen
- Rufen Sie
https://:8080auf. Sie sollten eine Schaltfläche "Mit Keycloak fortfahren" sehen. - Klicken Sie auf die Schaltfläche. Sie sollten zur Keycloak-Anmeldeseite weitergeleitet werden.
- Melden Sie sich mit
testuser/Test1234!an. Sie sollten erfolgreich zurück zu Open WebUI weitergeleitet werden.
9. Keycloak Gruppen-Mapping konfigurieren
9.1. Übersicht
Standardmäßig enthalten Keycloak-Clients keine Gruppeninformationen in Tokens. Befolgen Sie diese Schritte, um Gruppeninformationen zu übermitteln.
9.2. Mapper-Erstellung finden
-
Gehen Sie zur Keycloak Admin-Konsole:
https://:9090/admin. -
Wählen Sie den Realm
openwebuiaus. -
Navigieren Sie zu Clients und wählen Sie den Client
open-webuiaus. -
Gehen Sie zur Registerkarte Client-Scopes.
-
Wählen Sie den Scope aus, der die Gruppeninformationen enthalten soll (z. B.
profileoderopen-webui-dedicated).
-
Gehen Sie in den Details des ausgewählten Scopes zur Registerkarte Mapper.
9.3. Mapper erstellen
Klicken Sie auf Erstellen oder Builtin hinzufügen, um mit der Erstellung eines neuen Mappers zu beginnen.
9.4. Mapper-Einstellungen
Konfigurieren Sie den Mapper mit den entsprechenden Einstellungen, um die Gruppenzugehörigkeit einzuschließen.

9.5. Speichern und Anwenden
- Speichern Sie die Mapper-Konfiguration.
- Starten Sie den Open WebUI-Server neu, um die Änderungen anzuwenden.
9.6. Open WebUI Umgebungsvariablen konfigurieren
Fügen Sie diese Variablen zu Ihrer .env-Datei hinzu oder ändern Sie sie
# Enable group synchronization
ENABLE_OAUTH_GROUP_MANAGEMENT=true
# (Optional) Enable Just-In-Time group creation
ENABLE_OAUTH_GROUP_CREATION=true
# The claim key for groups in the token
OAUTH_GROUPS_CLAIM=groups