إعداد تسجيل الدخول الموحد (SSO)

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

إعداد تسجيل الدخول الموحد (SSO)

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

متوفر في: خطط Business و Enterprise تم تكوينه بواسطة: مالك الفريق أو المسؤول البروتوكول: OpenID Connect (OIDC). تسجيل الدخول عبر SAML 2.0 قيد التطوير — يتم حفظ تكوين SAML ولكن لا يمكن استخدامه لتسجيل الدخول بعد.

المتطلبات الأساسية

  1. نطاق تم التحقق منه — تحقق من نطاق بريدك الإلكتروني عبر سجل DNS TXT أولاً (راجع إدارة النطاقات). لا يقبل تسجيل الدخول عبر SSO إلا الحسابات التي تم التحقق من نطاق بريدها الإلكتروني بواسطة فريقك؛ وهذا هو حدود المستأجر.
  2. مزود هوية (IdP) يدعم OIDC مع الاكتشاف — يجب أن يقدم /.well-known/openid-configuration ضمن عنوان URL للمُصدر. تقوم Okta و Microsoft Entra ID و Google بذلك.

ما يجب تسجيله في مزود الهوية (IdP) الخاص بك

قم بإنشاء OIDC Web Application في مزود الهوية (IdP) الخاص بك باستخدام:

الإعدادالقيمة
Redirect URI (callback)https://intermind.com/api/auth/sso/callback — يظهر أيضاً في بطاقة SSO بعد تحديد OIDC
Grant typeAuthorization Code (يتم استخدام PKCE S256 تلقائياً)
Scopesopenid email profile

يجب أن يتضمن رمز المعرّف (ID token) الذي يصدره مزود الهوية (IdP) الخاص بك البريد الإلكتروني email للمستخدم، ويجب أن يكون نطاق البريد الإلكتروني أحد نطاقاتك التي تم التحقق منها — وإلا سيتم رفض تسجيل الدخول.

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

الحقلما يجب لصقه
Display Nameأي تسمية سيتعرف عليها أعضاؤك
Issuer URLمُصدر مزود الهوية (IdP) الخاص بك — عنوان URL الذي يقدم /.well-known/openid-configuration
Authorization URLauthorization_endpoint من وثيقة الاكتشاف تلك
Client ID / Client Secretمن التطبيق الذي قمت بتسجيله

يتم تشفير سر العميل (Client Secret) في حالة السكون (at rest) ولا يتم إرجاعه إلى المتصفح أبداً بعد الحفظ.

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، عنوان URL لإعادة التوجيه https://intermind.com/api/auth/sso/callback
  3. Certificates & secrets ← New client secret — انسخ Value السر فوراً
  4. Client ID = Application (client) ID في صفحة النظرة العامة
  5. تأكد من أن رمز المعرّف (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. افتح صفحة تسجيل الدخول في نافذة خاصة/تصفح خفي
  2. انقر فوق تسجيل الدخول عبر 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التكوين المخزن هو SAML — تسجيل الدخول عبر SAML غير متاح بعد
SSO IdP discovery failedIssuer URL خاطئ أو لا يقدم /.well-known/openid-configuration
"login session expired, start again"مرت أكثر من 5 دقائق بين بدء تسجيل الدخول واستدعاء مزود الهوية (IdP)
رفض تسجيل الدخول بعد إعادة توجيه مزود الهوية (IdP) للرجوعأعاد مزود الهوية (IdP) بريداً إلكترونياً خارج نطاقاتك التي تم التحقق منها، أو لا يوجد مطالبة email على الإطلاق (Entra: أضف مطالبة البريد الإلكتروني الاختيارية)

خصائص الأمان

لاستبيانات الأمان: تدفق SSO هو Authorization Code مع PKCE (S256) و state و nonce؛ ويتم التحقق من توقيع ID token مقابل JWKS الخاصة بمزود الهوية (IdP)، إلى جانب المُصدر والجمهور؛ ومزود الهوية (IdP) معتمد فقط للـ نطاقات التي تم التحقق منها عبر DNS — التأكيد لأي بريد إلكتروني آخر لا ينتج عنه جلسة عمل أبداً؛ ويتم تشفير OIDC client secret في حالة السكون (at rest)؛ وكل عملية تسجيل دخول عبر SSO تُسجّل في سجل التدقيق (audit log) للفريق. يتم فرض بوابات (gates) الخطة والنطاق والتكوين من جانب الخادم في كل من بدء تسجيل الدخول واستدعاء الرد (callback).