Authentification unique
Libre WebUI prend en charge la connexion OAuth avec GitHub et Hugging Face, ainsi que tout fournisseur OpenID Connect grâce à l'intégration OIDC générique. Les utilisateurs OAuth sont toujours enregistrés comme utilisateurs locaux de Libre WebUI et reçoivent par défaut le rôle user (OIDC peut facultativement faire correspondre des rôles et des groupes à partir des revendications).
OAuth GitHub
Créez une application OAuth dans les paramètres pour développeurs de GitHub.
URL de rappel locale :
http://localhost:3001/api/auth/oauth/github/callback
URL de rappel en production :
https://your-domain.example/api/auth/oauth/github/callback
Fichier .env du serveur :
GITHUB_CLIENT_ID=...
GITHUB_CLIENT_SECRET=...
GITHUB_CALLBACK_URL=https://your-domain.example/api/auth/oauth/github/callback
OAuth GitHub demande la portée user:email. Les nouveaux utilisateurs sont créés avec un nom d'utilisateur préfixé par gh_.
OAuth Hugging Face
Créez une application OAuth dans les paramètres de Hugging Face.
URL de rappel locale :
http://localhost:3001/api/auth/oauth/huggingface/callback
URL de rappel en production :
https://your-domain.example/api/auth/oauth/huggingface/callback
Fichier .env du serveur :
HUGGINGFACE_CLIENT_ID=...
HUGGINGFACE_CLIENT_SECRET=...
HUGGINGFACE_CALLBACK_URL=https://your-domain.example/api/auth/oauth/huggingface/callback
Les nouveaux utilisateurs sont créés avec un nom d'utilisateur préfixé par hf_.
OIDC générique
Tout fournisseur qui propose un document de découverte OpenID Connect fonctionne : Keycloak, Authentik, Authelia, Okta, Entra ID, Google Workspace et d'autres. Le flux utilise PKCE (S256), un état CSRF et un nonce vérifié dans le jeton d'identité dont la signature a été contrôlée ; les clés de signature proviennent du JWKS du fournisseur.
Enregistrez un client confidentiel avec cette URL de rappel :
https://your-domain.example/api/auth/oauth/oidc/callback
Fichier .env du serveur :
OIDC_ISSUER_URL=https://id.example.com/realms/main
OIDC_CLIENT_ID=libre-webui
OIDC_CLIENT_SECRET=...
OIDC_DISPLAY_NAME=Example SSO
Politiques facultatives :
# 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
Les identités sont liées à la revendication sub stable : si un compte est renommé chez le fournisseur,
il conserve son compte Libre. Les nouveaux utilisateurs sont créés avec un nom d'utilisateur préfixé par oidc_
lorsque les inscriptions l'autorisent. Une adresse e-mail déjà détenue par un compte local non lié
est rejetée au lieu d'être fusionnée silencieusement. Avec
OIDC_SYNC_GROUPS=true, l'appartenance à chaque groupe Libre dont le nom correspond à une
valeur de revendication est pilotée par cette dernière pour les utilisateurs OIDC. Créez d'abord les groupes correspondants depuis
l'onglet Gestion des utilisateurs des Paramètres.
Paramètres communs
Définissez l'URL publique du serveur :
BASE_URL=https://your-domain.example
CORS_ORIGIN=https://your-domain.example
Si les URL de rappel ne sont pas définies explicitement, Libre WebUI construit les valeurs par défaut à partir de BASE_URL.
Limites
Libre WebUI ne propose actuellement ni SAML ni provisionnement SCIM. Les listes d'autorisation de domaines et la correspondance des rôles et groupes ne sont disponibles que pour le fournisseur OIDC générique ; les utilisateurs GitHub et Hugging Face sont toujours créés avec le rôle user et gérés depuis l'interface d'administration.
Dépannage
Le bouton OAuth ne fait rien
Vérifiez que l'identifiant et le secret client du fournisseur sont définis et que le serveur a redémarré.
Le fournisseur rejette le rappel
L'URL de rappel indiquée dans le tableau de bord du fournisseur doit correspondre exactement à celle qu'utilise Libre WebUI.
L'utilisateur obtient les autorisations normales
Les utilisateurs OAuth sont créés en tant que user par défaut. Accordez-leur des privilèges depuis l'interface d'administration si nécessaire.