Aller au contenu principal

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.

Documentation connexe