シングルサインオン
Libre WebUI は GitHub と Hugging Face の OAuth ログインに加え、汎用 OIDC 統合を通じて任意の OpenID Connect プロバイダーに対応します。OAuth ユーザーも Libre WebUI のローカルユーザーとして保存され、既定では user ロールが付与されます(OIDC では、クレームからロールとグループを任意でマッピングできます)。
GitHub OAuth
GitHub Developer Settings で OAuth アプリを作成します。
ローカルのコールバック URL:
http://localhost:3001/api/auth/oauth/github/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
Hugging Face の設定で OAuth アプリを作成します。
ローカルのコールバック URL:
http://localhost:3001/api/auth/oauth/huggingface/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 state、および署名検証済み ID トークン内で検証される nonce を使用します。 署名鍵はプロバイダーの JWKS から取得します。
次のコールバック URL で confidential client を登録します。
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
ID は安定した sub クレームに紐付けられるため、プロバイダー側のアカウント名が変わっても Libre のアカウントは維持されます。登録が許可されている場合、新しいユーザー名には oidc_ プレフィックスが付きます。リンクされていないローカルアカウントがすでに所有するメールアドレスは、暗黙に統合せず拒否されます。
OIDC_SYNC_GROUPS=true の場合、OIDC ユーザーについて、名前がクレーム値と一致するすべての Libre グループのメンバーシップがクレームによって管理されます。先に設定のユーザー管理タブで同名のグループを作成してください。
共通設定
公開バックエンド URL を設定します。
BASE_URL=https://your-domain.example
CORS_ORIGIN=https://your-domain.example
コールバック URL を明示的に設定しない場合、Libre WebUI は BASE_URL から既定値を生成します。
制限
Libre WebUI は現在、SAML または SCIM プロビジョニングを提供していません。ドメイン許可リストとロール/グループのマッピングを利用できるのは汎用 OIDC プロバイダーだけです。GitHub と Hugging Face のユーザーは常に user ロールで作成され、管理 UI から管理します。
トラブルシューティング
OAuth ボタンを押しても反応しない
プロバイダーのクライアント ID とシークレットが設定され、バックエンドが再起動されていることを確認してください。
プロバイダーがコールバックを拒否する
プロバイダーのダッシュボードに登録したコールバック URL は、Libre WebUI が使用する URL と完全に一致する必要があります。
ユーザーに通常の権限しか付与されない
OAuth ユーザーは既定で user として作成されます。必要に応じて管理 UI から昇格してください。