Zum Hauptinhalt springen

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.

Verwandte Dokumentation