Єдиний вхід
Libre WebUI підтримує вхід OAuth через GitHub і Hugging Face, а також будь-якого постачальника OpenID Connect через універсальну інтеграцію OIDC. Користувачі OAuth усе одно зберігаються як локальні користувачі Libre WebUI й типово отримують роль user (OIDC може додатково зіставляти ролі та групи із тверджень).
GitHub OAuth
Створіть програму OAuth у GitHub Developer Settings.
Локальна адреса зворотного виклику:
http://localhost:3001/api/auth/oauth/github/callback
Виробнича адреса зворотного виклику:
https://your-domain.example/api/auth/oauth/github/callback
Файл .env серверної частини:
GITHUB_CLIENT_ID=...
GITHUB_CLIENT_SECRET=...
GITHUB_CALLBACK_URL=https://your-domain.example/api/auth/oauth/github/callback
GitHub OAuth запитує область user:email. Імена нових користувачів отримують префікс gh_.
Hugging Face OAuth
Створіть програму OAuth у налаштуваннях Hugging Face.
Локальна адреса зворотного виклику:
http://localhost:3001/api/auth/oauth/huggingface/callback
Виробнича адреса зворотного виклику:
https://your-domain.example/api/auth/oauth/huggingface/callback
Файл .env серверної частини:
HUGGINGFACE_CLIENT_ID=...
HUGGINGFACE_CLIENT_SECRET=...
HUGGINGFACE_CALLBACK_URL=https://your-domain.example/api/auth/oauth/huggingface/callback
Імена нових користувачів отримують префікс hf_.
Універсальний OIDC
Підходить будь-який постачальник із документом виявлення OpenID Connect: Keycloak, Authentik, Authelia, Okta, Entra ID, Google Workspace та інші. Потік використовує PKCE (S256), стан CSRF і nonce, який перевіряється всередині ID-токена з перевіреним підписом; ключі підпису беруться з JWKS постачальника.
Зареєструйте конфіденційного клієнта з такою адресою зворотного виклику:
https://your-domain.example/api/auth/oauth/oidc/callback
Файл .env серверної частини:
OIDC_ISSUER_URL=https://id.example.com/realms/main
OIDC_CLIENT_ID=libre-webui
OIDC_CLIENT_SECRET=...
OIDC_DISPLAY_NAME=Example SSO
Необов’язкові політики:
# 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
Ідентичності зв’язуються за стабільним твердженням sub, тому перейменований обліковий запис постачальника зберігає обліковий запис Libre. Нові користувачі отримують префікс oidc_, якщо реєстрацію дозволено. Адреса електронної пошти, що вже належить незв’язаному локальному обліковому запису, відхиляється, а не мовчки об’єднується. За OIDC_SYNC_GROUPS=true членство користувача OIDC у всіх групах Libre, назва яких відповідає значенню твердження, керується твердженнями — спочатку створіть відповідні групи на вкладці Керування користувачами в Налаштуваннях.
Спільні налаштування
Задайте публічну адресу серверної частини:
BASE_URL=https://your-domain.example
CORS_ORIGIN=https://your-domain.example
Якщо адреси зворотного виклику не задано явно, Libre WebUI створює типові значення з BASE_URL.
Обмеження
Libre WebUI поки не надає SAML або автоматичне створення облікових записів через SCIM. Списки дозволених доменів і зіставлення ролей/груп доступні лише універсальному OIDC; користувачі GitHub і Hugging Face завжди створюються з роллю user і керуються через інтерфейс адміністратора.
Усунення неполадок
Кнопка OAuth нічого не робить
Переконайтеся, що ID клієнта й секрет задано, а серверну частину перезапущено.
Постачальник відхиляє зворотний виклик
Адреса зворотного виклику в панелі постачальника має точно збігатися з адресою Libre WebUI.
Користувач отримує звичайні права
Користувачі OAuth типово створюються як user. За потреби підвищте роль в інтерфейсі адміністратора.