Single Sign-On
Libre WebUI unterstützt OAuth-Anmeldungen mit GitHub und Hugging Face sowie jeden OpenID-Connect-Anbieter über OIDC. OAuth-Benutzer bleiben lokale Libre-WebUI-Benutzer und erhalten standardmäßig die Rolle user; OIDC kann Rollen und Gruppen optional aus Claims abbilden.
GitHub OAuth
Erstelle eine OAuth-App in den GitHub-Entwicklereinstellungen.
Lokale Callback-URL:
http://localhost:3001/api/auth/oauth/github/callback
Callback-URL für Produktion:
https://your-domain.example/api/auth/oauth/github/callback
Backend-.env:
GITHUB_CLIENT_ID=...
GITHUB_CLIENT_SECRET=...
GITHUB_CALLBACK_URL=https://your-domain.example/api/auth/oauth/github/callback
GitHub OAuth fordert user:email an. Neue Benutzernamen erhalten das Präfix gh_.
Hugging Face OAuth
Erstelle eine OAuth-App in den Hugging-Face-Einstellungen.
Lokale Callback-URL:
http://localhost:3001/api/auth/oauth/huggingface/callback
Produktions-Callback:
https://your-domain.example/api/auth/oauth/huggingface/callback
Backend-.env:
HUGGINGFACE_CLIENT_ID=...
HUGGINGFACE_CLIENT_SECRET=...
HUGGINGFACE_CALLBACK_URL=https://your-domain.example/api/auth/oauth/huggingface/callback
Neue Benutzernamen erhalten hf_.
Generisches OIDC
Jeder Anbieter mit OpenID-Connect-Discovery-Dokument funktioniert, etwa Keycloak, Authentik, Authelia, Okta, Entra ID und Google Workspace. Der Ablauf nutzt PKCE (S256), CSRF-State und einen Nonce im signaturgeprüften ID-Token; Signaturschlüssel stammen aus dem JWKS.
Registriere einen vertraulichen Client mit:
https://your-domain.example/api/auth/oauth/oidc/callback
Backend-.env:
OIDC_ISSUER_URL=https://id.example.com/realms/main
OIDC_CLIENT_ID=libre-webui
OIDC_CLIENT_SECRET=...
OIDC_DISPLAY_NAME=Example SSO
Optionale Richtlinien:
# Require a verified email in one of these domains
OIDC_ALLOWED_EMAIL_DOMAINS=example.com,example.org
# Grant/remove the admin role based on a group claim on every login
OIDC_GROUP_CLAIM=groups
OIDC_ADMIN_GROUPS=libre-admins
# Reconcile Libre group memberships with the group claim on every login
OIDC_SYNC_GROUPS=true
Identitäten werden über sub verknüpft, sodass Umbenennungen das Libre-Konto erhalten. Neue Namen erhalten
oidc_, sofern Registrierung zulässig ist. Eine bereits von einem unverknüpften lokalen Konto belegte E-Mail wird
abgelehnt statt still zusammengeführt. Mit OIDC_SYNC_GROUPS=true steuern Claims die Mitgliedschaft in gleichnamigen
Libre-Gruppen; lege diese zuerst unter Einstellungen > Benutzerverwaltung an.
Gemeinsame Einstellungen
BASE_URL=https://your-domain.example
CORS_ORIGIN=https://your-domain.example
Ohne explizite Callback-URLs erstellt Libre WebUI Standardwerte aus BASE_URL.
Grenzen
Libre WebUI bietet derzeit weder SAML noch SCIM. Domainlisten und Rollen-/Gruppenmapping gelten nur für generisches OIDC;
GitHub- und Hugging-Face-Benutzer werden als user angelegt und über die Admin-Oberfläche verwaltet.
Fehlerbehebung
OAuth-Schaltfläche reagiert nicht — Prüfe Client-ID, Secret und Backend-Neustart.
Anbieter lehnt Callback ab — Die URL muss exakt übereinstimmen.
Benutzer erhält normale Rechte — OAuth erstellt user; befördere bei Bedarf in der Admin-Oberfläche.