- تنفيذ نظام مصادقة مرن يدعم الحسابات المحلية والموحدة باستخدام بروتوكولات مثل OAuth2 و OIDC و LDAP.
- التحكم الدقيق في الوصول بناءً على الأدوار والمجموعات وقوائم التحكم في الوصول (ACLs) لإدارة رؤية الموارد.
- إمكانيات تخصيص متقدمة للأذونات والإعدادات المحددة بناءً على ملف تعريف المستخدم أو المجموعة المعينة.
إذا كنت تبحث عن بديل مُستضاف ذاتيًا للتفاعل مع نماذج الذكاء الاصطناعي المختلفة، فإن LibreChat يُعدّ من أكثر الخيارات شمولية. تتيح لك هذه المنصة مركزة الوصول إلى مزودين مثل OpenAI وAnthropic وGoogle، كما أنها توفر ميزة بالغة الأهمية عند استخدامها من قِبل فريق عمل: التحكم في من يمكنه الدخول وما هي الوظائف المتاحة.
تتجاوز هذه الإدارة مجرد إنشاء حساب باستخدام البريد الإلكتروني وكلمة المرور. يجمع LibreChat بين أنظمة المصادقة والأدوار والمجموعات والصلاحيات لوظائف محددة وقوائم التحكم في الوصول للموارد المشتركة. يتيح لك هذا منع مستخدمين معينين من إنشاء وكلاء، أو السماح لفريق بتعديل المطالبات، أو تفويض جزء من الإدارة دون منحهم صلاحية الوصول الكامل إلى الخادم. وإذا كنت لا تزال تفكر في استخدام هذه المنصة، يمكنك الاطلاع على مقارنتنا بين ليبر تشات، تشات جي بي تي، وبدائل أخرى.
كيفية إنشاء مستخدمين في LibreChat

بشكل افتراضي، يسمح برنامج LibreChat للمستخدم بالتسجيل باستخدام بريده الإلكتروني وكلمة المرور. عند تشغيل نسخة جديدة، يحصل الحساب المسجل الأول على دور المسؤوللذلك، يُنصح بإنشائه قبل نشر الخدمة واستخدام بيانات اعتماد آمنة له.
El ستحصل الحسابات المسجلة المتبقية مبدئيًا على دور المستخدم.يستطيع المسؤول التحكم في تسجيل الدخول والتسجيل باستخدام متغيرات مختلفة في الملف. .env:
ALLOW_EMAIL_LOGIN=true
ALLOW_REGISTRATION=true
ALLOW_SOCIAL_LOGIN=false
ALLOW_SOCIAL_REGISTRATION=false
ALLOW_EMAIL_LOGIN يسمح باستخدام الحسابات المحلية، بينما ALLOW_REGISTRATION يتحكم هذا الخيار في إمكانية إرسال التسجيلات الجديدة عبر البريد الإلكتروني. أما المتغيران الآخران فيؤديان الوظيفة نفسها لمزودي الخدمات الاجتماعية المتوافقين.
تتضمن عملية الإعداد النموذجية لنسخة خاصة إنشاء الحسابات اللازمة أولاً ثم إغلاق السجل العام:
ALLOW_EMAIL_LOGIN=true
ALLOW_REGISTRATION=false
حتى مع تعطيل التسجيل، يمكن للمسؤول إضافة حساب محلي باستخدام البرنامج النصي المرفق مع LibreChat. في حالة التثبيت باستخدام ملف Docker Compose الافتراضي، يكون الأمر كالتالي:
docker compose exec api npm run create-user
سيطلب منك المعالج إدخال عنوان البريد الإلكتروني وكلمة المرور للحساب الجديد. في حالة التثبيت المحلي، بدون استخدام Docker، يمكن تشغيله من جذر المشروع.
npm run create-user
يتضمن برنامج LibreChat أيضًا برنامجًا نصيًا لحذف الحسابات. قبل استخدامه، يُنصح بالتحقق من المحادثات والوكلاء والموارد التي تخص المستخدم، حيث يجب عدم الخلط بين حذف الحساب وإزالة الوصول إليه مؤقتًا.
استخدم LDAP أو SAML أو OAuth أو OpenID Connect
بالنسبة لفريق صغير، قد تكفي الحسابات المحلية. أما في المؤسسات، فمن الأنسب ربط LibreChat بنظام الهوية المستخدم بالفعل من قبل الموظفين.
تدعم المنصة طرق مصادقة مختلفة:
- LDAP أو Active Directory، للتحقق من صحة المستخدمين مقابل دليل موجود.
- SAML، ويستخدم عادة لتنفيذ تسجيل الدخول الموحد للمؤسسات.
- OAuth2متوافق مع مزودي الخدمة مثل جوجل، جيت هاب، ديسكورد أو أبل.
- OpenID Connect، يستخدم لربط الخدمات مثل Keycloak و Auth0 و AWS Cognito أو Microsoft Entra ID.
يجب أن تعلم أن SAML و OpenID Connect لا يعملان في وقت واحد. إذا تم تفعيل كليهما، يعطي LibreChat الأولوية لـ OpenID Connect ويعطل SAMLعلاوة على ذلك، لا تسمح هاتان الطريقتان بفصل تسجيل دخول المستخدمين الحاليين وتسجيل المستخدمين الجدد من خلال متغير بسيط، كما هو الحال مع التسجيل المحلي أو الاجتماعي.
يمكنك استخدام Keycloak OPENID_REQUIRED_ROLE لمنع الوصول إلى النظام لمن لا يملكون أحد الأدوار المصرح بها. يُعد هذا مفيدًا إذا كنت لا ترغب في أن يتمكن أي حساب في الدليل من الوصول إلى النظام.
قم بدمج LibreChat مع معرف تسجيل الدخول الخاص بـ Microsoft
يمكن لـ Microsoft Entra ID الاتصال بـ LibreChat كمزود OpenID Connect. يتم ربط كل مستخدم باستخدام هويته الثابتة ويمكنه تسجيل الدخول باستخدام بيانات اعتماد شركته.
يمكن توسيع التكامل باستخدام Microsoft Graph لتمكين أداة اختيار الأشخاص في LibreChat من العثور على المستخدمين والمجموعات داخل المؤسسة. يتطلب ذلك منح الأذونات المناسبة للتطبيق المسجل لدى Entra ID، وتفعيل إعادة استخدام رمز OpenID المميز.
OPENID_REUSE_TOKENS=true
USE_ENTRA_ID_FOR_PEOPLE_SEARCH=true
ENTRA_ID_INCLUDE_OWNERS_AS_MEMBERS=true
OPENID_GRAPH_SCOPES=User.Read,People.Read,GroupMember.Read.All,User.ReadBasic.All
بعض الأذونات، مثل GroupMember.Read.Allقد يحتاجون إلى موافقة مسؤول نظام Entra ID.
لا ينبغي وصف هذا التكامل بأنه مجرد مزامنة تلقائية للأسماء. يتيح لك Microsoft Graph البحث عن الأشخاص، وعرض عضوياتهم، واستخدام المجموعات الخارجية ضمن نظام الأذونات، وذلك دائمًا في حدود النطاق الممنوح للتطبيق.
إدارة المستخدمين من لوحة LibreChat

يحتوي LibreChat على لوحة تحكم منفصلة تتصل بنفس واجهة برمجة التطبيقات وقاعدة البيانات الخاصة بالنسخة الرئيسية. ومن خلالها، يمكنك عرض المستخدمين، وإدارة المجموعات والأدوار، وتطبيق إعدادات محددة، ومنح صلاحيات إدارية.
لكن في الوثائق الحالية، فإن لا تزال لوحة تحكم LibreChat تظهر كمعاينة.على الرغم من أنه يمكن اختباره بالفعل وهو جزء من عمليات النشر الرسمية باستخدام Docker Compose، إلا أنه من المستحسن التحقق من حالته وتوافقه قبل الاعتماد عليه في بيئة إنتاجية.
تتيح اللوحة، من بين عمليات أخرى، ما يلي:
- ابحث عن حسابات المثيلات واعرضها.
- أنشئ مجموعات محلية وعدّل أعضاءها.
- أنشئ أدوارًا مخصصة وقم بتعيينها للمستخدمين.
- قم بتعديل الصلاحيات المرتبطة بكل دور.
- قم بتطبيق إعدادات مختلفة على المجموعات أو الأدوار.
- تفويض الوظائف الإدارية من خلال تنازلات النظام.
تعمل اللوحة كخدمة منفصلة. تتم معالجة العمليات عبر المسارات. /api/admin/* LibreChat، الذي يتحقق مما إذا كان الحساب لديه الأذونات الإدارية اللازمة قبل قبول كل تغيير.
فهم الفرق بين الأدوار والمجموعات
يشتمل برنامج LibreChat على دورين نظاميين موجودين دائمًا:
- مسؤل: لديه صلاحية الوصول الكاملة إلى الإعدادات والموارد والوظائف الإدارية.
- مستخدم: هو الدور الأساسي الذي تحصل عليه الحسابات الجديدة.
ابتداءً من LibreChat 0.8.5، يمكنك أيضًا إنشاء أدوار مخصصةيحتوي كل منها على مصفوفة أذونات لتحديد ما إذا كان بإمكان أعضائها استخدام أو إنشاء أو مشاركة أو نشر الوكلاء والمطالبات وخوادم MCP والوظائف الأخرى.
على سبيل المثال، يمكنك إنشاء دور يسمى "محرر المطالبات" مع إذن لإنشاء المطالبات ومشاركتها، ولكن بدون القدرة على نشر الوكلاء أو تعديل الإعدادات العامة.
يمكن للمستخدم أن يمتلك أدوارًا متعددة. في هذه الحالة، يتم حساب صلاحياته الفعلية باستخدام اتحاد القدرات الممنوحةهذا يعني أن إضافة دور ثانٍ أكثر تساهلاً يمكن أن يعيد وظيفة كنت تحاول تقييدها من الدور الأول.
تُستخدم المجموعات لغرض مختلف، حيث تُصنّف المستخدمين حسب القسم أو المشروع أو احتياجات الوصول. ويمكن إنشاؤها محليًا أو من خلال نظام تكامل متوافق، مثل Entra ID.
تُستخدم المجموعات كمتلقين للموارد المشتركة ويمكنها أيضًا أن تتلقى تجاوزات التكوينوبهذه الطريقة، يمكن لمجموعة من الباحثين استخدام نقاط نهاية إضافية أو تكوين مختلف دون تغيير تجربة بقية المنظمة.
قم بتكوين الأذونات للوكلاء والمطالبات وخوادم MCP

تحدد صلاحيات الأدوار ما يمكن لكل دور القيام به. يتيح لك LibreChat التحكم في الإجراءات بشكل منفصل، مثل:
- يستخدم: استخدم دالة أو نوع مورد.
- يخلق: إنشاء موارد جديدة.
- يشارك: شاركها مع مستخدمين أو مجموعات أو أدوار محددة.
- مشاركة عامة: اجعلها متاحة لجميع المستخدمين المصادق عليهم في النظام.
الفرق بين SHARE y SHARE_PUBLIC هذا أمر بالغ الأهمية. يمكنك السماح لفريق بمشاركة الوكلاء داخليًا دون منحهم القدرة على نشرهم على مستوى المؤسسة بأكملها.
في الإصدارات السابقة، تم تهيئة العديد من هذه الأذونات باستخدام الكتلة interface de librechat.yamlلا تزال هذه الإمكانية قائمة للتحضير لهذا الدور USER أثناء بدء التشغيل، ولكن لم تعد هذه الطريقة هي الطريقة الموصى بها للإعطاء اليومي.
تتيح لك اللوحة تعديل صلاحيات كل دور مباشرةً، بما في ذلك الأدوار المخصصة، دون الحاجة إلى إعادة تشغيل LibreChat. ولا يزال YAML مفيدًا للنشر الأولي وللتثبيتات التي تُدار بالكامل بواسطة الملفات.
مشاركة الموارد باستخدام قوائم التحكم بالوصول (ACL)
لا تحدد الأذونات العامة وحدها من يمكنه فتح كل وكيل أو موجه. كما أن للموارد القابلة للمشاركة أيضًا قائمة التحكم بالوصول أو قائمة التحكم بالوصول الخاصة بك.
ينطبق هذا النظام، من بين أمور أخرى، على الوكلاء، ومجموعات التوجيه، وخوادم MCP، والوكلاء عن بُعد، والملفات، والمشاريع. يمكن للمالك مشاركة كل مورد مع المستخدمين أو المجموعات أو الأدوار، واختيار أحد هذه المستويات:
- مشاهد: يسمح لك بعرض المورد واستخدامه.
- محرر: يسمح لك باستخدامه وتعديل إعداداته.
- مالكيمنح هذا الخيار تحكماً كاملاً في التحرير والحذف وإعادة المشاركة.
على سبيل المثال، قد يمتلك شخص ما إذنًا عامًا لاستخدام الوكلاء، لكنه لن يتمكن من الوصول إلى وكيل خاص إذا لم يكن مدرجًا في قائمة التحكم بالوصول الخاصة به. وبالمثل، فإن الحصول على إذن المشاهدة لوكيل ما لا يمنح تلقائيًا إذنًا لإنشاء وكلاء جدد.
عند مشاركة برامج وسيطة تحتوي على ملفات أو تعليمات داخلية أو أدوات قادرة على تعديل البيانات، يجب مراجعة مستوى صلاحياتها بعناية. يحذر LibreChat من أن البرنامج الوسيط قد يكشف معلومات مرفقة أثناء المحادثة، حتى لو لم يتمكن المستخدم من الوصول المباشر إلى إعداداته.
تفويض المهام الإدارية بصلاحيات النظام
إن منح شخص ما صلاحيات مدير النظام (ADMIN) لأداء مهمة واحدة فقط يُخالف مبدأ أقل الصلاحيات. ولتجنب ذلك، يتضمن LibreChat ما يُسمى... منح النظام.
تتيح هذه التسهيلات منح صلاحيات إدارية محددة لمستخدم أو مجموعة أو دور معين. ومن الأمثلة الموثقة ما يلي:
manage:users، لإدارة المستخدمين.manage:roles، لإدارة الأدوار.manage:mcpservers، لإدارة خوادم MCP.read:usageللاطلاع على معلومات الاستخدام.
بهذه الطريقة، يستطيع مدير الدعم إدارة الحسابات دون امتلاك صلاحية الوصول الكاملة إلى النظام بأكمله. تُجرى عمليات التحقق على واجهة برمجة تطبيقات LibreChat، لذا لا يمكن للوحة التحكم منح نفسها أي صلاحيات.
بما أن لوحة الإدارة لا تزال في مرحلة المعاينة، فمن المستحسن اختبار هذه التفويضات بدقة والاحتفاظ بحساب مسؤول محلي واحد على الأقل للاستعادة.
ما هي الملفات التي تدخل في عملية التهيئة؟
يقوم برنامج LibreChat بتوزيع الإعدادات بين مكونات مختلفة، ولكن لكل منها غرض واضح:
.env: يحتوي على متغيرات البيئة، والأسرار، وخيارات المصادقة، والاتصالات بالخدمات.librechat.yaml: يحدد نقاط النهاية المخصصة، والنماذج، وخيارات الواجهة، والوكلاء، وMCP، وغيرها من الميزات المتقدمة.- قاعدة البيانات: يحفظ المستخدمين، والأدوار المخصصة، والمجموعات، وقوائم التحكم بالوصول، والتنازلات، والإعدادات التي تتم إدارتها من اللوحة.
في تثبيت Docker، لا يكفي إنشاء librechat.yamlيجب تثبيت الملف داخل حاوية واجهة برمجة التطبيقات. بعد تعديله، يلزم إعادة تشغيل الخدمة أيضًا.
تتحقق الإصدارات الحالية من صحة ملف YAML أثناء بدء التشغيل. إذا احتوى الملف على مفتاح غير معروف، أو مسافة بادئة غير صحيحة، أو قيمة غير متوافقة، سيتوقف برنامج LibreChat ويعرض الخطأ في سجلات النظام.يمكنك التحقق منها باستخدام:
docker compose logs api
يوجد متغير يسمى CONFIG_BYPASS_VALIDATION قد يُتيح هذا تجاوز التحقق مؤقتًا، لكن لا ينبغي استخدامه كحل دائم. الأسلوب الأمثل هو تحديد الخطأ وإصلاحه.
يخزن MongoDB البيانات الأساسية لـ LibreChat، بما في ذلك الحسابات والمحادثات. ويُستخدم MeiliSearch لتسريع عمليات البحث عن الرسائل، بينما يُستخدم PostgreSQL مع دعم المتجهات في واجهة برمجة تطبيقات RAG. هذه الخدمات الأخيرة ليست أساسية لنظام المستخدم، وقد تعتمد على الميزات المُفعّلة في كل عملية نشر.
توصيات لحماية الحسابات
يمكن أن تحتوي نسخة LibreChat على محادثات خاصة، ووثائق الشركة، وبيانات اعتماد للوصول إلى خدمات أخرى. لهذا السبب، يجب تصميم نظام إدارة المستخدمين قبل إتاحة الخدمة لجميع أعضاء الفريق.
يُنصح بتطبيق هذه الإجراءات:
- قم بإنشاء وتأمين حساب المسؤول الأول قبل نشر النسخة.
- قم بتعطيل تسجيل الدخول المفتوح عندما لا تكون هناك حاجة إليه.
- استخدم بروتوكول HTTPS وأسرار JWT الآمنة الخاصة بك.
- قم بضبط التحقق من البريد الإلكتروني واستعادة كلمة المرور في حالة استخدام الحسابات المحلية.
- قم بتطبيق مبدأ أقل الامتيازات على الأدوار وقوائم التحكم بالوصول ومنح النظام.
- قم بمراجعة المستخدمين والمجموعات والموارد المشتركة بشكل دوري.
- احتفظ بحساب إداري محلي لاستعادة الوصول في حالة فشل موفر خدمة تسجيل الدخول الموحد (SSO).
- تحقق من السجلات بعد تعديل المصادقة أو الأذونات.
يتطلب إنشاء المستخدمين وإدارتهم في LibreChat التمييز بين المصادقة والتفويض. تتحقق طريقة تسجيل الدخول من هوية كل شخص؛ وتحدد الأدوار الوظائف التي يمكنه استخدامها؛ وتسهل المجموعات الإدارة الجماعية؛ وتحدد قوائم التحكم بالوصول (ACLs) من يمكنه الوصول إلى كل مورد محدد.
باستخدام هذا الهيكل، يمكنك استخدام LibreChat على خادم خاص صغير وفي مؤسسة ذات دليل مؤسسي، دون منح جميع المستخدمين حق الوصول الكامل إلى الوكلاء أو المطالبات أو خوادم MCP أو الوظائف الإدارية.
أنا من عشاق التكنولوجيا وقد حول اهتماماته "المهووسة" إلى مهنة. لقد أمضيت أكثر من 10 سنوات من حياتي في استخدام التكنولوجيا المتطورة والتعديل على جميع أنواع البرامج بدافع الفضول الخالص. الآن تخصصت في تكنولوجيا الكمبيوتر وألعاب الفيديو. وذلك لأنني منذ أكثر من 5 سنوات أكتب لمواقع مختلفة حول التكنولوجيا وألعاب الفيديو، وأقوم بإنشاء مقالات تسعى إلى تزويدك بالمعلومات التي تحتاجها بلغة مفهومة للجميع.
إذا كان لديك أي أسئلة، فإن معرفتي تتراوح بين كل ما يتعلق بنظام التشغيل Windows وكذلك Android للهواتف المحمولة. والتزامي تجاهك هو أنني على استعداد دائمًا لقضاء بضع دقائق ومساعدتك في حل أي أسئلة قد تكون لديكم في عالم الإنترنت هذا.