إعداد SSO
إعداد SSO
هذا الدليل موجّه لمسؤول تكنولوجيا المعلومات الذي يربط مزوّد هوية المؤسسة (IdP) بـ InterMIND. بعد الإعداد، يسجّل الأعضاء دخولهم من صفحة تسجيل الدخول العادية: تسجيل الدخول عبر SSO ← البريد الإلكتروني للعمل ← مزوّد الهوية (IdP) الخاص بك ← العودة إلى InterMIND. للاطلاع على النظرة العامة غير التقنية، راجع صفحة ميزة تسجيل الدخول الموحّد.
متاحٌ في: خطط Business و Enterprise يُعرَّف بواسطة: مالك الفريق أو المسؤول البروتوكول: OpenID Connect (OIDC) فقط. لا يُقدَّم SAML 2.0 — فكلّ من Okta و Microsoft Entra ID و Google Workspace يدعم OIDC.

المتطلّبات المسبقة
- نطاق مُوثَّق — تحقّق من نطاق بريدك الإلكتروني عبر تسجيل DNS TXT أولاً (راجِع إدارة النطاقات). لا يقبل تسجيل الدخول عبر SSO سوى الحسابات التي يطابق نطاق بريدها الإلكتروني نطاقًا موثَّقًا من قِبل فريقك؛ وهذا هو حدّ المستأجر.
- مزوّد هوية (IdP) يدعم OIDC مع الاكتشاف (discovery) — يجب أن يخدم
/.well-known/openid-configurationتحت عنوان URL الخاص بالمُصدِر. تدعم Okta و Microsoft Entra ID و Google ذلك.
ما الذي تسجّله في مزوّد الهوية (IdP) الخاص بك
أنشئ تطبيق ويب OIDC في مزوّد الهوية (IdP) الخاص بك مع ما يلي:
| الإعداد | القيمة |
|---|---|
| Redirect URI (callback) | https://intermind.com/api/auth/sso/callback — يظهر أيضًا في بطاقة SSO بعد اختيار OIDC |
| نوع المنح (Grant type) | Authorization Code (يُستخدم PKCE S256 تلقائيًا) |
| Scopes | openid email profile |
يجب أن يتضمّن رمز ID (ID token) الذي يُصدِره مزوّد الهوية (IdP) عنوان البريد الإلكتروني email للمستخدم، ويجب أن يكون نطاق البريد الإلكتروني أحد نطاقاتك الموثّقة — وإلا رُفض تسجيل الدخول.
ثم املأ بطاقة SSO في صفحة التكاملات:
| الحقل | ما الذي تُلصقه |
|---|---|
| Display Name | أيّ تسمية يتعرّف عليها أعضاؤك |
| Issuer URL | مُصدِر مزوّد الهوية (IdP) — عنوان URL الذي يخدم /.well-known/openid-configuration |
| Authorization URL | قيمة authorization_endpoint من مستند الاكتشاف ذلك |
| Client ID / Client Secret | من التطبيق الذي سجّلته |
يُشفَّر سرّ العميل (Client Secret) عند التخزين ولا يُعاد إلى المتصفّح أبدًا بعد الحفظ.
Okta
- لوحة تحكّم المسؤول ← Applications ← Create App Integration ← طريقة تسجيل الدخول OIDC، نوع التطبيق Web Application
- Sign-in redirect URI:
https://intermind.com/api/auth/sso/callback - عيّن المستخدمين أو المجموعات التي ينبغي أن يكون لها وصول
- انسخ Client ID و Client Secret
- في InterMIND: Issuer URL = عنوان URL لمؤسسة Okta لديك (مثال:
https://acme.okta.com، أو مُصدِر خادم التفويض خاصّتك مثلhttps://acme.okta.com/oauth2/defaultإن كنت تستخدم واحدًا)؛ Authorization URL =authorization_endpointمن<issuer>/.well-known/openid-configuration
Microsoft Entra ID (Azure AD)
- مركز إدارة Entra ← App registrations ← New registration
- المنصّة Web، redirect URI هو
https://intermind.com/api/auth/sso/callback - Certificates & secrets ← New client secret — انسخ Value فورًا
- Client ID = Application (client) ID في صفحة Overview
- تأكّد من أن رمز ID (ID token) يحمل البريد الإلكتروني للمستخدم: Token configuration ← Add optional claim ← ID ← email
- في InterMIND: Issuer URL =
https://login.microsoftonline.com/<tenant-id>/v2.0؛ Authorization URL =https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/authorize
Google Workspace
لا حاجة إلى تسجيل تطبيق. في بطاقة SSO اختر نوع المزوّد Google Workspace واحفظ — يسجّل الأعضاء المتواجدون على نطاقاتك الموثّقة الدخول بحساب Google خاصّتهم وينضمّون إلى فريقك تلقائيًا. (يمكن أيضًا ربط Google كمزوّد OIDC عامّ بمُصدِر https://accounts.google.com إن كنت تفضّل بيانات اعتماد عميل صريحة.)
اختبار الاتصال
- افتح صفحة تسجيل الدخول في نافذة خاصة/تخفّي (incognito)
- انقر على Sign in with SSO وأدخل بريدًا إلكترونيًا للعمل على نطاقك الموثّق
- تتم إعادة توجيهك إلى مزوّد الهوية (IdP) الخاص بك؛ وبعد المصادقة، تعود إلى InterMIND وقد سُجّل دخولك
- يُسجَّل تسجيل الدخول في سجل تدقيق الفريق (قابل للتصدير من صفحة Users) بصيغة
auth.loginبالأسلوبsso
استكشاف الأخطاء وإصلاحها
| العَرَض | السبب |
|---|---|
| ظهور الرسالة "SSO is not configured" بعد إدخال البريد الإلكتروني | لا يوجد إعداد SSO مُفعَّل يطابق نطاق البريد الإلكتروني هذا — تحقّق من أن النطاق موثَّق وأن بطاقة SSO محفوظة |
SSO login is not available: plan | لم تعد خطة الفريق تتضمّن SSO |
SSO login is not available: domain-not-verified | لا يزال النطاق بانتظار التحقّق عبر DNS |
SSO login is not available: config-incomplete | Client ID أو Client Secret مفقود — أعد حفظ بطاقة SSO |
SSO login is not available: type-unsupported | نوع المزوّد المُخزَّن ليس من الأنواع التي ينفّذها تدفّق تسجيل الدخول — احذف إعداد SSO وأنشئه مجدّدًا بصيغة OIDC أو Google Workspace |
SSO IdP discovery failed | Issuer URL خاطئ أو لا يخدم /.well-known/openid-configuration |
| ظهور الرسالة "login session expired, start again" | مرّت أكثر من 5 دقائق بين بدء تسجيل الدخول واستدعاء مزوّد الهوية (callback) |
| رفض تسجيل الدخول بعد إعادة توجيه مزوّد الهوية (IdP) للعودة | أعاد مزوّد الهوية (IdP) بريدًا إلكترونيًا خارج نطاقاتك الموثّقة، أو لم يُرجِع أي مطالبة email على الإطلاق (Entra: أضِف المطالبة الاختيارية للبريد الإلكتروني) |
خصائص الأمان
للاستبيانات الأمنية: تدفّق SSO هو Authorization Code مع PKCE (S256) و state و nonce؛ يتم التحقّق من توقيع رمز ID مقابل JWKS الخاص بمزوّد الهوية (IdP)، إلى جانب المُصدِر والجمهور (audience)؛ ويكون مزوّد الهوية (IdP) مرجعيًّا حصرًا لـ النطاقات الموثّقة عبر DNS — فالمطالبة بأي بريد إلكتروني آخر لا تُنتج جلسة أبدًا؛ سرّ عميل OIDC مُشفَّر عند التخزين؛ ويُسجَّل كل تسجيل دخول عبر SSO في سجل تدقيق الفريق. تُطبَّق بوابات الخطة والنطاق والإعداد على جانب الخادم سواء عند بدء تسجيل الدخول أو عند الاستدعاء (callback).