שילוב Okta SSO ו-SCIM עבור פלטפורמת בריאות ואיכות חיים ארגונית
פלטפורמת SaaS ארגונית לבריאות ואיכות חיים נזקקה לתמוך בלקוחות ארגוניים גדולים שדרשו Single Sign-On (SSO) לגישת עובדים חלקה ו-provisioning/deprovisioning אוטומטי של משתמשים באמצעות SCIM — דרישה בלתי ניתנת למשא ומתן עבור מכירות ארגוניות.
דון בפרויקט שלך
האתגר
לקוחות ארגוניים סירבו לאמץ את הפלטפורמה ללא איחוד זהויות (identity federation) וניהול מחזור חיים אוטומטי:
- דרישת SSO — מחלקות ה-IT דרשו שהעובדים יתחברו דרך ספק הזהויות הארגוני שלהם, ולא עם אישורים נפרדים
- עומס עבודה ידני בקליטה (Onboarding) — הוספת מאות עובדים באופן ידני כאשר ארגון חדש נרשם ארכה ימים של עבודת אדמיניסטרציה
- סיכון בניתוק (Offboarding) — כאשר עובדים עזבו את הארגון, חשבונות הפלטפורמה שלהם נותרו פעילים במשך שבועות, מה שיצר חששות בנוגע לציות (compliance) ולגישה לנתונים
- גישה מבוססת קבוצות — קבוצות עובדים שונות נזקקו לרמות תכונות שונות (feature tiers) ולגישה לתוכניות
- מורכבות Multi-Tenant — לכל לקוח ארגוני היה tenant משלו אצל ספק הזהויות (identity provider) עם תצורות שונות, מיפויי מאפיינים (attribute mappings) ומבני קבוצות
- דו-קיום עם אימות קיים — הפלטפורמה כבר כללה אימות מבוסס אימייל/סיסמה ו-OAuth; SSO היה צריך להתקיים במקביל מבלי לשבור תהליכים קיימים
הפתרון שלנו
יישמנו Okta SSO באמצעות SAML 2.0/OIDC לאימות ו-SCIM 2.0 ל-provisioning, deprovisioning וסנכרון קבוצות אוטומטיים של משתמשים — משולבים ב-backend הקיים מרובה ה-tenants.
ארכיטקטורה
- Identity Provider: Okta (tenants מנוהלים על ידי הלקוח)
- פרוטוקול SSO: SAML 2.0 (ראשי) + OIDC (חלופי)
- Provisioning: שרת SCIM 2.0 מובנה ב-backend של הפלטפורמה
- Backend: NestJS עם PostgreSQL ו-Redis
- שכבת אימות (Auth Layer): סשנים מבוססי JWT עם הנפקת אסימונים מודעת ל-SSO
- לוח מחוונים למנהל מערכת: תצורת tenant מבוססת React עבור הגדרת SSO
- אימות קיים: אימייל/סיסמה + Google OAuth נשמרו לצד SSO
---
יישום SSO (SAML 2.0 / OIDC)
זרימת SAML 2.0
זרימת ה-SAML ביוזמת SP (SP-initiated) עובדת כדלקמן: המשתמש מבקר בדף ההתחברות ובוחר SSO, מזין את דומיין האימייל של החברה שלו, הפלטפורמה מזהה את תצורת ה-Okta של ה-tenant מהדומיין, שולחת AuthnRequest ל-Okta, המשתמש מאמת את עצמו, Okta מחזירה SAML assertion חתום, הפלטפורמה מאמתת את ה-assertion ויוצרת סשן עם אסימוני JWT.
תצורה פר-Tenant
ה-SSO של כל tenant מוגדר עם SSO URL של ספק הזהויות שלו, entity ID, תעודת X.509 לאימות חתימה, יחד עם SP entity ID של הפלטפורמה, assertion consumer service URL, ומיפויי מאפיינים משדות פרופיל ספק הזהויות לשדות משתמשי הפלטפורמה.
חלופת OIDC
עבור לקוחות המעדיפים OIDC על פני SAML, הפלטפורמה תומכת ב-Authorization Code flow עם PKCE, תוך שימוש באותו מיפוי מאפיינים באמצעות OIDC claims ואימות ID token עם JWKS.
ניתוב SSO מרובה Tenants
הפלטפורמה מנתבת משתמשים לספק הזהויות הנכון בהתבסס על דומיין האימייל שלהם. כאשר משתמש מזין את האימייל שלו, הפלטפורמה מחפשת את הדומיין מול תצורות SSO של ה-tenant. אם SSO מוגדר, המשתמש מופנה מחדש ל-tenant ה-Okta של הארגון שלו. אם לא, הוא חוזר לאימייל/סיסמה או Google OAuth. גם Vanity URLs נתמכים לגישת SSO ישירה. ---
יישום SCIM 2.0
שרת SCIM
הפלטפורמה חושפת API תואם SCIM 2.0 ש-Okta קוראת לו לניהול משתמשים וקבוצות. ה-API תומך בפעולות מחזור חיים מלאות של משתמשים (יצירה, קריאה, עדכון, השבתה, מחיקה), CRUD קבוצות עם ניהול חברות, ונקודות קצה (endpoints) סטנדרטיות לגילוי SCIM עבור יכולות, סכמות וסוגי משאבים.
מחזור חיי משתמש באמצעות SCIM
Provisioning:כאשר מנהל מערכת מקצה משתמש לאפליקציית הפלטפורמה ב-Okta, Okta שולחת בקשת יצירה ל-SCIM API. הפלטפורמה יוצרת את חשבון המשתמש עם שיוך ל-tenant, מסמנת אותו כפעיל וכ-SSO-provisioned, והמשתמש יכול להתחבר מיד באמצעות SSO.
עדכוני פרופיל:כאשר מנהל מערכת מעדכן פרופיל משתמש ב-Okta, השינויים נדחפים לפלטפורמה באמצעות SCIM. אם יש שינויים במחלקה, חברות בקבוצה מוערכת מחדש באופן אוטומטי.
Deprovisioning:כאשר משתמש מוסר מהאפליקציה ב-Okta, הפלטפורמה משביתה את החשבון — מבטלת את כל הסשנים הפעילים באופן מיידי, מונעת התחברות נוספת, שומרת נתונים לפי מדיניות שמירת נתונים, ומשחררת את מקום הרישיון.
הפעלה מחדש:הקצאה מחדש של משתמש ב-Okta מפעילה מחדש את חשבונו עם כל הנתונים ההיסטוריים שלמים.
סנכרון קבוצות
קבוצות Okta ממופות לתפקידי פלטפורמה ולרמות תוכנית — שולטות בגישה לרמות תכונות שונות, יכולות ניהול, לוחות מחוונים מיוחדים, והרשמות לתוכניות בלעדיות. שינויים בחברות בקבוצה ב-Okta נדחפים באמצעות SCIM ומשתקפים בזמן אמת מבלי לדרוש התחברות מחדש. ---
אבטחה ואימות
הנפקת אסימונים לאחר SSO
לאחר אימות SAML assertion, הפלטפורמה מנפיקה JWTs מותאמים ל-tenant עם claims לזהות המשתמש, ארגון, תפקידים (שנגזרים מחברות בקבוצות SCIM), שיטת אימות, וספק זהויות — מה שמאפשר הבחנה בביקורת בין SSO לבין שיטות אימות אחרות.
ניהול סשנים
- סשני SSO מכבדים את משך חיי הסשן של Okta
- Single Logout (SLO) נתמך לסיום סשן כאשר המשתמש מתנתק מ-Okta
- webhook לניתוק ב-back-channel לביטול סשן מיידי
- השבתת SCIM מבטלת את כל הסשנים הפעילים תוך 60 שניות
בקרות אבטחה
- אימות חתימת תגובת SAML מול תעודת X.509 של ה-tenant
- מניעת שידור חוזר של assertion באמצעות מעקב שימוש חד-פעמי
- סבילות להטיית שעון (clock skew) לאימות חותמת זמן של assertion
- אימות הגבלת קהל (audience restriction)
- assertions מוצפנים נתמכים עבור פריסות רגישות
- אימות SCIM endpoint באמצעות Bearer tokens פר-tenant
- הגבלת קצב (Rate limiting) על SCIM endpoints
---
לוח מחוונים לתצורת מנהל מערכת
הגדרת SSO ל-Tenant
לוח המחוונים למנהל מערכת מספק זרימת הגדרה בשירות עצמי:
- בחירת פרוטוקול — בחר SAML 2.0 או OIDC
- העלאת מטא נתונים — העלה קובץ IdP metadata XML (מאכלס תצורה אוטומטית)
- מיפוי מאפיינים — מפה שדות פרופיל של ספק הזהויות לשדות משתמשי הפלטפורמה
- אימות דומיין — ודא בעלות על דומיין/ים אימייל עבור ניתוב SSO
- בדיקת חיבור — יזום התחברות SSO לבדיקה לפני הפעלה לכל המשתמשים
- הגדרת SCIM — צור Bearer token עבור תצורת provisioning של SCIM
- מיפוי קבוצות — מפה קבוצות ספק זהויות לתפקידים ורמות פלטפורמה
לוח המחוונים מספק גם SP metadata הניתנים להורדה לתצורת אפליקציית ספק זהויות קלה. ---
תכונות עיקריות
- תמיכה ב-SAML 2.0 + OIDC — בחירת פרוטוקול גמישה לכל tenant
- SCIM 2.0 Provisioning — יצירת משתמשים, עדכונים והשבתה אוטומטיים
- מיפוי קבוצה לתפקיד — קבוצות ספק זהויות שולטות ברמות גישה ותוכניות בפלטפורמה
- Deprovisioning מיידי — השבתת SCIM מבטלת גישה תוך 60 שניות
- ניתוב SSO מרובה Tenants — גילוי IdP מבוסס דומיין אימייל על פני tenants
- שיטות אימות דו-קיום — 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 כדי לאפשר אספקת משתמשים אוטומטית (provisioning) וביטול אספקה (deprovisioning) בין Okta לפלטפורמת הבריאות והרווחה, כך שכאשר מנהלי IT מוסיפים, משנים או מסירים משתמשים ב-directory של Okta, שינויים אלה מתפשטים ליישום בתוך שניות. זה מבטל את יצירת החשבונות הידנית, עדכוני ההרשאות ומשימות ה-offboarding שצוותי IT טיפלו בהם בעבר באמצעות קריאות תמיכה, ומפחית את תקורה ניהול הגישה בכ-90%.
MicrocosmWorks בנתה שכבת מיפוי תפקידים ניתנת להגדרה המתרגמת חברויות בקבוצות Okta לתפקידים והרשאות ברמת היישום, התומכת גם במיפויי קבוצה-לתפקיד ישירים וגם בכללים מורכבים המשלבים חברויות מרובות בקבוצות. כאשר חברות של משתמש בקבוצה משתנה ב-Okta, אינטגרציית ה-SCIM מעדכנת את הרשאות היישום שלו בזמן אמת, והמערכת רושמת כל שינוי הרשאה לצורך עמידה בדרישות ביקורת.
MicrocosmWorks יישמה ביטול סשנים בזמן אמת (real-time session revocation) שמנטרת אירועי SCIM deprovisioning ומבטלת מידית את כל הסשנים הפעילים עבור המשתמש המושבת בכל המכשירים והדפדפנים. המערכת אינה ממתינה לפקיעת תוקף אסימון (token expiration); היא דוחפת באופן אקטיבי את הביטול למאגר הסשנים (session store) תוך שניות מאירוע ה-Okta, דבר קריטי לציות אבטחתי כאשר עובדים מפוטרים וזקוקים להסרת גישה מיידית.
כן, MicrocosmWorks תכננה את שכבת האימות כדי לתמוך במספר ספקי זהויות (IdPs) במקביל באמצעות כללי הניתוב של Okta, ומאפשרת למשתמשים ממדריכי תאגיד שונים לאמת את זהותם דרך ה-IdPs המתאימים להם תוך כדי גישה לאותו מופע יישום. זה חיוני במעברי M&A שבהם ארגונים ממוזגים שומרים על דומייני Active Directory נפרדים, והמערכת מטפלת באופן שקוף בהבדלים במיפוי תכונות (attribute mapping) בין ה-IdPs.
MicrocosmWorks מיישמת אינטגרציות Okta SSO ו-SCIM במחירים של 25-45 דולר לשעה, כאשר אינטגרציה טיפוסית אורכת 3-6 שבועות תלוי במורכבות מיפוי התפקידים ומספר תכונות המשתמש הקיימות שיש לסנכרן. השקעה זו היא שבריר מהעלות המתמשכת של ניהול משתמשים ידני ומהסיכון הביטחוני של ביטול גישה מעוכב, ולעתים קרובות זו דרישה לסגירת חוזי מכירה ארגוניים.
מוכן לשנות את העסק שלך?
בואו נדון כיצד נוכל ליישם פתרונות דומים לאתגרים שלך.