Перейти к основному содержимому

Единый вход

Libre WebUI поддерживает вход OAuth через GitHub и Hugging Face, а также любого поставщика OpenID Connect через универсальную интеграцию OIDC. Пользователи OAuth всё равно хранятся как локальные пользователи Libre WebUI и по умолчанию получают роль user (OIDC может дополнительно сопоставлять роли и группы из claims).

GitHub OAuth

Создайте приложение OAuth в GitHub Developer Settings.

Локальный callback URL:

http://localhost:3001/api/auth/oauth/github/callback

Продакшен callback URL:

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.

Локальный callback URL:

http://localhost:3001/api/auth/oauth/huggingface/callback

Продакшен callback URL:

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 поставщика.

Зарегистрируйте конфиденциального клиента с таким callback URL:

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

Идентичности связываются по стабильному claim sub, поэтому переименованная учётная запись поставщика сохраняет аккаунт Libre. Новые пользователи получают префикс oidc_, если регистрация разрешена. Адрес электронной почты, уже принадлежащий несвязанному локальному аккаунту, отклоняется, а не объединяется молча. При OIDC_SYNC_GROUPS=true членство пользователя OIDC во всех группах Libre, название которых совпадает со значением claim, управляется claims — сначала создайте соответствующие группы на вкладке «Управление пользователями» в Settings.

Общие настройки

Задайте публичный URL бэкенда:

BASE_URL=https://your-domain.example
CORS_ORIGIN=https://your-domain.example

Если callback URL не заданы явно, Libre WebUI строит значения по умолчанию из BASE_URL.

Ограничения

Libre WebUI пока не предоставляет SAML или provisioning SCIM. Списки разрешённых доменов и сопоставление ролей/групп доступны только универсальному OIDC; пользователи GitHub и Hugging Face всегда создаются с ролью user и управляются через интерфейс администратора.

Устранение неполадок

Кнопка OAuth ничего не делает

Убедитесь, что ID клиента и секрет заданы, а бэкенд перезапущен.

Поставщик отклоняет callback

Callback URL в панели поставщика должен точно совпадать с URL Libre WebUI.

Пользователь получает обычные права

Пользователи OAuth по умолчанию создаются как user. При необходимости повысьте роль в интерфейсе администратора.

Связанная документация