# تهيئة SSO

تغطي هذه الصفحة الموضوعات العامة التي تنطبق على طرق المصادقة بشكل عام.

## عدة مزودين

يمكنك تفعيل عدة طرق مصادقة في وقت واحد. سيتم عرض كل مزود مفعّل كزر خاص بجانب نموذج اسم المستخدم/كلمة المرور القياسي في صفحة تسجيل الدخول. يمكن للمستخدمين اختيار الطريقة المفضلة لديهم.

حتى في حالة إعداد مزود خارجي بشكل خاطئ، يجب الحفاظ على تفعيل النموذج القياسي ليتمكن مدير المنصة دائمًا من تسجيل الدخول.

## أولوية المصادقة

عند تفعيل عدة طرق، يتحقق النظام من معلومات المصادقة بالترتيب التالي:

1. LDAP (في حال تعيين `force_as_login_method`)
2. مزودي OAuth2 (بالترتيب الموضح في `authentication.yaml`)
3. قاعدة بيانات Chamilo الداخلية

## رموز JWT للوصول إلى API

يستخدم Chamilo رموز JWT (JSON Web Tokens) لـ REST API. يتم تعيين مدة صلاحية الرموز وسلوك التجديد في `config/packages/lexik_jwt_authentication.yaml`. هذا منفصل عن تدفق تسجيل الدخول SSO وينطبق فقط على عملاء API.

## استكشاف الأخطاء وحل المشكلات

### عدم ظهور أزرار تسجيل الدخول بعد الإعداد

يجب مسح الذاكرة المؤقتة في كل مرة تقوم فيها بتغيير `authentication.yaml`:

```bash
php bin/console cache:clear && php bin/console cache:warmup
```

### عدم قدرة المستخدمين على تسجيل الدخول عبر SSO

* **عدم تطابق URI إعادة التوجيه** — يجب أن تتطابق URI المسجلة في مزود الهوية تمامًا مع `https://your-chamilo-url/connect/<provider>/check`.
* **انحراف الساعة** — رموز SSO حساسة للوقت. تأكد من مزامنة ساعة الخادم (NTP).
* **شهادة SSL** — يجب أن يثق Chamilo بشهادة مزود الهوية. تحقق من عدم وجود مشكلات في الشهادات الذاتية التوقيع.
* **السجلات** — تحقق من `var/log/` وسجلات مزود الهوية للحصول على رسائل الخطأ المحددة.

### إنشاء المستخدمين بدور خاطئ

تحقق من إعدادات تعيين الأدوار للمزود. سيحصل المستخدمون الجدد على دور الطالب افتراضيًا ما لم يتم ترقيتهم عبر تعيين المجموعات أو السمات.

### وجود المستخدم في المزود لكن عدم الوصول إلى Chamilo

* إذا كان `allow_create_new_users` خاطئًا، يجب أن يكون لدى المستخدم حساب Chamilo موجود مسبقًا بعنوان بريد إلكتروني أو اسم مستخدم مطابق لبيانات المزود.
* تأكد من أن المستخدم لم يُعطل في Chamilo.
* في حالة Azure، تحقق من `existing_user_verification_order` لفهم كيفية مطابقة Chamilo للمستخدمين المستلمين مع الحسابات الموجودة.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.chamilo.org/2.x-ar/dlyl-alidarh/admin-guide/authentication/sso-configuration.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
