إعداد تسجيل الدخول الموحد (SSO)
إعداد تسجيل الدخول الموحد (SSO)
هذا الدليل مخصص لمسؤول تكنولوجيا المعلومات الذي يقوم بربط مزود هوية الشركة (IdP) بـ InterMIND. بعد الإعداد، يقوم الأعضاء بتسجيل الدخول من صفحة تسجيل الدخول العادية: تسجيل الدخول عبر SSO ← البريد الإلكتروني للعمل ← مزود الهوية الخاص بك ← العودة إلى InterMIND.
متوفر في: خطط Business و Enterprise تم تكوينه بواسطة: مالك الفريق أو المسؤول البروتوكول: OpenID Connect (OIDC). تسجيل الدخول عبر SAML 2.0 قيد التطوير — يتم حفظ تكوين SAML ولكن لا يمكن استخدامه لتسجيل الدخول بعد.
المتطلبات الأساسية
- نطاق تم التحقق منه — تحقق من نطاق بريدك الإلكتروني عبر سجل DNS TXT أولاً (راجع إدارة النطاقات). لا يقبل تسجيل الدخول عبر SSO إلا الحسابات التي تم التحقق من نطاق بريدها الإلكتروني بواسطة فريقك؛ وهذا هو حدود المستأجر.
- مزود هوية (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 type | Authorization Code (يتم استخدام PKCE S256 تلقائياً) |
| Scopes | openid email profile |
يجب أن يتضمن رمز المعرّف (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) في حالة السكون (at rest) ولا يتم إرجاعه إلى المتصفح أبداً بعد الحفظ.
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، عنوان URL لإعادة التوجيه
https://intermind.com/api/auth/sso/callback - Certificates & secrets ← New client secret — انسخ Value السر فوراً
- Client ID = Application (client) 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 إذا كنت تفضل استخدام بيانات اعتماد العميل الصريحة.)
اختبار الاتصال
- افتح صفحة تسجيل الدخول في نافذة خاصة/تصفح خفي
- انقر فوق تسجيل الدخول عبر 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 | التكوين المخزن هو SAML — تسجيل الدخول عبر SAML غير متاح بعد |
SSO IdP discovery failed | Issuer 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).