إعداد SSO

اربط Okta أو Microsoft Entra ID أو Google Workspace ليتمكن فريقك من تسجيل الدخول من خلال مزود الهوية الخاص بك.

إعداد SSO

هذا الدليل موجّه لمسؤول تكنولوجيا المعلومات الذي يربط مزوّد هوية المؤسسة (IdP) بـ InterMIND. بعد الإعداد، يسجّل الأعضاء دخولهم من صفحة تسجيل الدخول العادية: تسجيل الدخول عبر SSO ← البريد الإلكتروني للعمل ← مزوّد الهوية (IdP) الخاص بك ← العودة إلى InterMIND. للاطلاع على النظرة العامة غير التقنية، راجع صفحة ميزة تسجيل الدخول الموحّد.

متاحٌ في: خطط Business و Enterprise يُعرَّف بواسطة: مالك الفريق أو المسؤول البروتوكول: OpenID Connect (OIDC) فقط. لا يُقدَّم SAML 2.0 — فكلّ من Okta و Microsoft Entra ID و Google Workspace يدعم OIDC.

بطاقة SSO في صفحة التكاملات

المتطلّبات المسبقة

  1. نطاق مُوثَّق — تحقّق من نطاق بريدك الإلكتروني عبر تسجيل DNS TXT أولاً (راجِع إدارة النطاقات). لا يقبل تسجيل الدخول عبر SSO سوى الحسابات التي يطابق نطاق بريدها الإلكتروني نطاقًا موثَّقًا من قِبل فريقك؛ وهذا هو حدّ المستأجر.
  2. مزوّد هوية (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 تلقائيًا)
Scopesopenid 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

  1. لوحة تحكّم المسؤول ← Applications ← Create App Integration ← طريقة تسجيل الدخول OIDC، نوع التطبيق Web Application
  2. Sign-in redirect URI: https://intermind.com/api/auth/sso/callback
  3. عيّن المستخدمين أو المجموعات التي ينبغي أن يكون لها وصول
  4. انسخ Client ID و Client Secret
  5. في 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)

  1. مركز إدارة Entra ← App registrations ← New registration
  2. المنصّة Web، redirect URI هو https://intermind.com/api/auth/sso/callback
  3. Certificates & secrets ← New client secret — انسخ Value فورًا
  4. Client ID = Application (client) ID في صفحة Overview
  5. تأكّد من أن رمز ID (ID token) يحمل البريد الإلكتروني للمستخدم: Token configuration ← Add optional claim ← ID ← email
  6. في 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 إن كنت تفضّل بيانات اعتماد عميل صريحة.)

اختبار الاتصال

  1. افتح صفحة تسجيل الدخول في نافذة خاصة/تخفّي (incognito)
  2. انقر على Sign in with SSO وأدخل بريدًا إلكترونيًا للعمل على نطاقك الموثّق
  3. تتم إعادة توجيهك إلى مزوّد الهوية (IdP) الخاص بك؛ وبعد المصادقة، تعود إلى InterMIND وقد سُجّل دخولك
  4. يُسجَّل تسجيل الدخول في سجل تدقيق الفريق (قابل للتصدير من صفحة 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-incompleteClient ID أو Client Secret مفقود — أعد حفظ بطاقة SSO
SSO login is not available: type-unsupportedنوع المزوّد المُخزَّن ليس من الأنواع التي ينفّذها تدفّق تسجيل الدخول — احذف إعداد SSO وأنشئه مجدّدًا بصيغة OIDC أو Google Workspace
SSO IdP discovery failedIssuer 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).