تسجيل الدخول الموحّد
يدعم Libre WebUI تسجيل الدخول عبر OAuth باستخدام GitHub وHugging Face، إلى جانب أي موفّر OpenID Connect من خلال تكامل OIDC العام. يظل مستخدمو OAuth محفوظين كمستخدمين محليين في Libre WebUI ويحصلون افتراضيًا على دور user (ويمكن لـ OIDC اختياريًا مطابقة الأدوار والمجموعات من المطالبات).
OAuth لـ GitHub
أنشئ تطبيق OAuth في إعدادات المطورين في GitHub.
عنوان callback المحلي:
http://localhost:3001/api/auth/oauth/github/callback
عنوان 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
يطلب OAuth لـ GitHub النطاق user:email. تُنشأ أسماء المستخدمين الجدد بالبادئة gh_.
OAuth لـ Hugging Face
أنشئ تطبيق OAuth في إعدادات Hugging Face.
عنوان callback المحلي:
http://localhost:3001/api/auth/oauth/huggingface/callback
عنوان 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 الخاص بالموفّر.
سجّل عميلًا سريًا بعنوان callback التالي:
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، تتحكم المطالبة في عضوية
كل مجموعة Libre يطابق اسمها قيمة مطالبة لمستخدمي OIDC؛ أنشئ المجموعات
المطابقة من تبويب إدارة المستخدمين في الإعدادات أولًا.
الإعدادات المشتركة
اضبط عنوان الخادم الخلفي العام:
BASE_URL=https://your-domain.example
CORS_ORIGIN=https://your-domain.example
إذا لم تُضبط عناوين callback صراحةً، يبني Libre WebUI القيم الافتراضية من BASE_URL.
الحدود
لا يوفّر Libre WebUI حاليًا SAML أو تزويد SCIM. لا تتوفر قوائم السماح بالنطاقات ومطابقة الأدوار والمجموعات إلا لموفّر OIDC العام؛ ويُنشأ مستخدمو GitHub وHugging Face دائمًا بدور user وتُدار حساباتهم من واجهة المسؤول.
استكشاف الأخطاء وإصلاحها
زر OAuth لا يفعل شيئًا
تأكد من ضبط معرّف العميل وسره لدى الموفّر ومن إعادة تشغيل الخادم الخلفي.
الموفّر يرفض callback
يجب أن يطابق عنوان callback في لوحة الموفّر تمامًا العنوان الذي يستخدمه Libre WebUI.
يحصل المستخدم على صلاحيات عادية
يُنشأ مستخدمو OAuth بدور user افتراضيًا. رقِّ المستخدمين من واجهة المسؤول عند الحاجة.