دمج Okta SSO و SCIM لمنصة الصحة والعافية للمؤسسات
احتاجت منصة SaaS للصحة والعافية للمؤسسات إلى دعم العملاء التنظيميين الكبار الذين طلبوا تسجيل الدخول الموحد (SSO) للوصول السلس للموظفين، وتزويد/إلغاء تزويد المستخدمين تلقائيًا عبر SCIM — وهو شرط غير قابل للتفاوض للمبيعات المؤسسية.
ناقش مشروعك
التحدي
رفض عملاء المؤسسات اعتماد المنصة بدون اتحاد الهوية وإدارة دورة الحياة التلقائية:
- متطلب SSO — فرضت أقسام تكنولوجيا المعلومات على الموظفين تسجيل الدخول عبر موفر الهوية الخاص بشركتهم، وليس ببيانات اعتماد منفصلة
- العبء اليدوي للإعداد — استغرق إضافة مئات الموظفين يدويًا عند تسجيل منظمة جديدة أيامًا من العمل الإداري
- مخاطر إنهاء الخدمة — عندما غادر الموظفون المنظمة، ظلت حساباتهم على المنصة نشطة لأسابيع، مما أثار مخاوف تتعلق بالامتثال والوصول إلى البيانات
- الوصول المستند إلى المجموعات — احتاجت مجموعات الموظفين المختلفة إلى مستويات ميزات ووصول إلى برامج مختلفة
- تعقيد البيئة متعددة المستأجرين — كان لكل عميل مؤسسي مستأجره الخاص لموفر الهوية مع تكوينات مختلفة، وتعيينات سمات، وهياكل مجموعات
- تعايش طرق المصادقة الحالية — كانت المنصة تحتوي بالفعل على مصادقة قائمة على البريد الإلكتروني/كلمة المرور و OAuth؛ كان لا بد من تعايش SSO دون تعطيل التدفقات الحالية
حلنا
لقد قمنا بتطبيق Okta SSO عبر SAML 2.0/OIDC للمصادقة و SCIM 2.0 لتزويد المستخدمين وإلغاء تزويدهم ومزامنة المجموعات تلقائيًا — مع دمجها في الواجهة الخلفية الحالية متعددة المستأجرين.
البنية
- موفر الهوية (Identity Provider): Okta (مستأجرون يدارون من قبل العملاء)
- بروتوكول SSO: SAML 2.0 (أساسي) + OIDC (بديل)
- التزويد (Provisioning): خادم SCIM 2.0 مدمج في الواجهة الخلفية للمنصة
- الواجهة الخلفية (Backend): NestJS مع PostgreSQL و Redis
- طبقة المصادقة (Auth Layer): جلسات قائمة على JWT مع إصدار رمز مميز (token) مدرك لـ SSO
- لوحة تحكم المسؤول (Admin Dashboard): تكوين المستأجر المستند إلى React لإعداد SSO
- المصادقة الحالية (Existing Auth): تم الاحتفاظ بالبريد الإلكتروني/كلمة المرور + Google OAuth جنبًا إلى جنب مع SSO
---
تطبيق SSO (SAML 2.0 / OIDC)
تدفق SAML 2.0
يعمل تدفق SAML الذي يبدأه موفر الخدمة (SP-initiated SAML flow) على النحو التالي: يزور المستخدم صفحة تسجيل الدخول ويختار SSO، ويدخل نطاق بريد شركته الإلكتروني، وتحدد المنصة تكوين Okta الخاص بالمستأجر من النطاق، وترسل AuthnRequest إلى Okta، ويصادق المستخدم، وتعيد Okta SAML assertion موقّعة، وتتحقق المنصة من Assertion وتنشئ جلسة باستخدام JWT tokens.
التكوين لكل مستأجر
يتم تكوين SSO لكل مستأجر باستخدام SSO URL الخاص بموفر الهوية الخاص به، و entity ID، و X.509 certificate للتحقق من التوقيع، بالإضافة إلى SP entity ID الخاص بالمنصة، و assertion consumer service URL، وتعيينات السمات من حقول ملف تعريف موفر الهوية إلى حقول مستخدم المنصة.
بديل OIDC
للعملاء الذين يفضلون OIDC على SAML، تدعم المنصة تدفق Authorization Code مع PKCE، باستخدام نفس تعيين السمات عبر OIDC claims والتحقق من ID token باستخدام JWKS.
توجيه SSO متعدد المستأجرين
توجه المنصة المستخدمين إلى موفر الهوية الصحيح بناءً على نطاق بريدهم الإلكتروني. عندما يدخل المستخدم بريده الإلكتروني، تبحث المنصة عن النطاق مقابل تكوينات SSO للمستأجر. إذا تم تكوين SSO، يتم توجيه المستخدم إلى مستأجر Okta الخاص بمؤسسته. إذا لم يكن كذلك، فإنهم يعودون إلى البريد الإلكتروني/كلمة المرور أو Google OAuth. يتم دعم Vanity URLs أيضًا للوصول المباشر إلى SSO. ---
تطبيق SCIM 2.0
خادم SCIM
تكشف المنصة عن API متوافق مع SCIM 2.0 يستدعيه Okta لإدارة المستخدمين والمجموعات. يدعم API عمليات دورة حياة المستخدم الكاملة (إنشاء، قراءة، تحديث، إلغاء تنشيط، حذف)، و CRUD للمجموعات مع إدارة العضوية، ونقاط نهاية اكتشاف SCIM القياسية للقدرات، والمخططات، وأنواع الموارد.
دورة حياة المستخدم عبر SCIM
التزويد (Provisioning):عندما يقوم مسؤول بتعيين مستخدم لتطبيق المنصة في Okta، يرسل Okta طلب إنشاء إلى SCIM API. تنشئ المنصة حساب المستخدم مع ربط المستأجر، وتضع علامة عليه كنشط و SSO-provisioned، ويمكن للمستخدم تسجيل الدخول فورًا عبر SSO.
تحديثات الملف الشخصي:عندما يقوم مسؤول بتحديث ملف تعريف المستخدم في Okta، يتم دفع التغييرات إلى المنصة عبر SCIM. إذا تغيرت الأقسام، يتم إعادة تقييم عضوية المجموعة تلقائيًا.
إلغاء التزويد (Deprovisioning):عندما يتم إزالة مستخدم من التطبيق في Okta، تقوم المنصة بإلغاء تنشيط الحساب — وإلغاء جميع الجلسات النشطة فورًا، ومنع المزيد من تسجيل الدخول، والاحتفاظ بالبيانات وفقًا لسياسة الاحتفاظ، وتحرير مقعد الترخيص.
إعادة التنشيط:إعادة تعيين مستخدم في Okta يعيد تنشيط حسابه مع الحفاظ على جميع البيانات التاريخية سليمة.
مزامنة المجموعات
تُعيّن مجموعات Okta إلى أدوار المنصة ومستويات البرامج — مما يتحكم في الوصول إلى مستويات ميزات مختلفة، وقدرات المسؤول، ولوحات المعلومات المتخصصة، والتسجيل في البرامج الحصرية. يتم دفع تغييرات عضوية المجموعة في Okta عبر SCIM وتنعكس في الوقت الفعلي دون الحاجة إلى إعادة تسجيل الدخول. ---
الأمان والمصادقة
إصدار الرمز المميز بعد SSO
بعد التحقق من SAML assertion، تصدر المنصة JWTs محدودة المستأجر مع مطالبات لهوية المستخدم، والمؤسسة، والأدوار (المستمدة من عضوية مجموعة SCIM)، وطريقة المصادقة، وموفر الهوية — مما يمكن من التمييز في التدقيق بين SSO وطرق المصادقة الأخرى.
إدارة الجلسات
- تحترم جلسات SSO عمر جلسة Okta
- يتم دعم Single Logout (SLO) لإنهاء الجلسة عندما يقوم المستخدم بتسجيل الخروج من Okta
- خطاف الويب (webhook) لتسجيل الخروج عبر القناة الخلفية (back-channel) لإلغاء الجلسة فورًا
- يلغي إلغاء تنشيط SCIM جميع الجلسات النشطة في غضون 60 ثانية
ضوابط الأمان
- التحقق من توقيع استجابة SAML مقابل شهادة X.509 للمستأجر
- منع إعادة تشغيل Assertion عبر تتبع الاستخدام لمرة واحدة
- تسامح انحراف الساعة للتحقق من طابع وقت Assertion
- التحقق من قيود الجمهور
- يتم دعم assertions المشفرة للعمليات الحساسة
- مصادقة نقطة نهاية SCIM عبر Bearer tokens لكل مستأجر
- تحديد معدل الطلبات (Rate limiting) على نقاط نهاية SCIM
---
لوحة تحكم إعدادات المسؤول
إعداد SSO للمستأجر
توفر لوحة تحكم المسؤول تدفق إعداد الخدمة الذاتية:
- اختيار البروتوكول — اختر SAML 2.0 أو OIDC
- تحميل البيانات الوصفية (Metadata Upload) — قم بتحميل ملف IdP metadata XML (يقوم بملء التكوين تلقائيًا)
- تعيين السمات (Attribute Mapping) — قم بتعيين حقول ملف تعريف موفر الهوية إلى حقول مستخدم المنصة
- التحقق من النطاق (Domain Verification) — تحقق من ملكية نطاق(ات) البريد الإلكتروني لتوجيه SSO
- اختبار الاتصال (Test Connection) — ابدأ اختبار تسجيل الدخول عبر SSO قبل التمكين لجميع المستخدمين
- إعداد SCIM — قم بإنشاء Bearer token لتكوين تزويد SCIM
- تعيين المجموعات (Group Mapping) — قم بتعيين مجموعات موفر الهوية إلى أدوار ومستويات المنصة
توفر لوحة التحكم أيضًا SP metadata قابلة للتنزيل لسهولة تكوين تطبيق موفر الهوية. ---
الميزات الرئيسية
- دعم SAML 2.0 + OIDC — خيار بروتوكول مرن لكل مستأجر
- تزويد SCIM 2.0 — إنشاء المستخدمين وتحديثهم وإلغاء تنشيطهم تلقائيًا
- تعيين المجموعات إلى الأدوار — تتحكم مجموعات موفر الهوية في مستويات الوصول والبرامج للمنصة
- إلغاء التزويد الفوري — إلغاء تنشيط SCIM يلغي الوصول في غضون 60 ثانية
- توجيه SSO متعدد المستأجرين — اكتشاف IdP القائم على نطاق البريد الإلكتروني عبر المستأجرين
- طرق مصادقة متعايشة — SSO جنبًا إلى جنب مع البريد الإلكتروني/كلمة المرور و Google OAuth
- إعداد الخدمة الذاتية — لوحة تحكم المسؤول لتكوين SSO بدون دعم هندسي
- تسجيل الخروج الموحد (Single Logout) — يتم إنهاء جلسة المنصة عندما يقوم المستخدم بتسجيل الخروج من موفر الهوية
- مسار التدقيق (Audit Trail) — يتم تسجيل كل عملية SCIM وحدث SSO للامتثال
- مزامنة مجموعات SCIM — تغييرات الأدوار والبرامج في الوقت الفعلي من عضوية مجموعات موفر الهوية
النتائج
المكدس التقني
caseStudyDetail.more دراسات الحالة
استكشف المزيد من تطبيقاتنا التقنية
معالجة الفواتير المدعومة بـ AI باستخدام OCR ودمج QuickBooks
كانت شركة متوسطة الحجم تعالج مئات فواتير الموردين شهريًا بحاجة إلى التخلص من إدخال البيانات يدويًا عن طريق استخلاص بيانات الفاتورة تلقائيًا باستخدام AI/OCR ومزامنتها مباشرةً مع QuickBooks للمسك الدفتري وتتبع المدفوعات.
إدراج الإعلانات من جانب العميل (CSAI) مع تحليل علامات SCTE-35 وتكامل مشغلات متعددة المنصات
احتاجت منصة بث الفيديو إلى تطبيق إدراج الإعلانات من جانب العميل (CSAI) عبر تطبيقات الويب والجوال والتلفزيون الذكي المتصل – مما يتيح تجارب إعلانية مخصصة على مستوى الجهاز مع دعم كامل لتفاعل الإعلانات (تراكبات قابلة للنقر، إعلانات مصاحبة، أزرار تخطي) التي لا يمكن لتضمين الإعلانات من جانب الخادم توفيرها.
الأسئلة الشائعة
نفذت MicrocosmWorks بروتوكول SCIM 2.0 لتمكين التزويد التلقائي للمستخدمين وإلغاء تزويدهم بين Okta ومنصة الصحة والعافية، بحيث عندما يضيف مسؤولو IT أو يعدّلون أو يزيلون المستخدمين في دليل Okta، تنتشر هذه التغييرات إلى التطبيق في غضون ثوانٍ. هذا يزيل إنشاء الحسابات اليدوي وتحديثات الأذونات ومهام إنهاء الخدمة التي كانت فرق IT تتعامل معها سابقًا عبر تذاكر الدعم، مما يقلل التكاليف العامة لإدارة الوصول بنسبة 90% تقريبًا.
قامت MicrocosmWorks ببناء طبقة قابلة للتكوين لتعيين الأدوار تترجم عضويات مجموعات Okta إلى أدوار وصلاحيات على مستوى التطبيق، وتدعم كلاً من تعيينات المجموعة إلى الدور المباشرة والقواعد المعقدة التي تجمع بين عضويات مجموعات متعددة. عندما تتغير عضوية مجموعة المستخدم في Okta، يقوم تكامل SCIM بتحديث صلاحياتهم في التطبيق في الوقت الفعلي، ويسجل النظام كل تغيير في الصلاحيات للامتثال للمراجعة.
نفذت MicrocosmWorks إلغاء جلسات العمل في الوقت الفعلي الذي يراقب أحداث إلغاء توفير SCIM ويقوم فورًا بإبطال جميع الجلسات النشطة للمستخدم الذي تم إلغاء تنشيطه عبر جميع الأجهزة والمتصفحات. النظام لا ينتظر انتهاء صلاحية الـ token؛ بل يدفع الإلغاء بنشاط إلى مخزن الجلسات في غضون ثوانٍ من حدث Okta، وهو أمر بالغ الأهمية للامتثال الأمني عند إنهاء خدمة الموظفين ويحتاجون إلى إزالة الوصول الفوري.
نعم، قامت MicrocosmWorks بتصميم طبقة الـ authentication لدعم موفري الهوية المتعددين والمتزامنين من خلال قواعد التوجيه (routing rules) الخاصة بـ Okta، مما يسمح للمستخدمين من دلائل الشركات (corporate directories) المختلفة بالمصادقة (authenticate) عبر موفري الهوية (IdPs) الخاصين بهم أثناء الوصول إلى نفس مثيل التطبيق (application instance). هذا أمر ضروري خلال مراحل التحول لعمليات الاندماج والاستحواذ (M&A) حيث تحافظ المؤسسات المدمجة على نطاقات Active Directory منفصلة، ويتعامل النظام مع اختلافات تعيين السمات (attribute mapping) بين موفري الهوية (IdPs) بشفافية.
تقوم MicrocosmWorks بتنفيذ تكاملات Okta SSO و SCIM بأسعار تتراوح من 25 إلى 45 دولارًا أمريكيًا في الساعة، مع استغراق التكامل النموذجي من 3 إلى 6 أسابيع اعتمادًا على مدى تعقيد تعيين الأدوار وعدد سمات المستخدمين الحالية التي تحتاج إلى مزامنة. يمثل هذا الاستثمار جزءًا صغيرًا من التكلفة المستمرة للإدارة اليدوية للمستخدمين والمخاطر الأمنية المترتبة على تأخير سحب الوصول، وغالبًا ما يكون شرطًا لإبرام عقود مبيعات المؤسسات.
مستعد لتحويل عملك؟
دعنا نناقش كيف يمكننا تطبيق حلول مشابهة لتحدياتك.