Інтеграція Okta SSO та SCIM для корпоративної платформи здоров'я та благополуччя
Корпоративна SaaS-платформа для здоров'я та благополуччя потребувала підтримки великих організаційних клієнтів, яким потрібен був Single Sign-On (SSO) для безперешкодного доступу співробітників та автоматизованого створення/деактивації облікових записів користувачів через SCIM — обов'язкова вимога для корпоративних продажів.
Обговоріть Ваш Проєкт
Виклик
Корпоративні клієнти відмовлялися впроваджувати платформу без федерації ідентифікаторів та автоматизованого керування життєвим циклом:
- Вимога щодо SSO — IT-відділи вимагали, щоб співробітники входили через свого корпоративного identity provider, а не за допомогою окремих облікових даних
- Навантаження через ручне підключення — Додавання сотень співробітників вручну при реєстрації нової організації займало дні адміністративної роботи
- Ризик відключення — Коли співробітники залишали організацію, їхні облікові записи на платформі залишалися активними протягом тижнів, що створювало проблеми з дотриманням нормативних вимог та доступом до даних
- Доступ на основі груп — Різні групи співробітників потребували різних рівнів функціоналу та доступу до програм
- Складність багатоорендної архітектури — Кожен корпоративний клієнт мав власного identity provider tenant з різними конфігураціями, відображеннями атрибутів та груповими структурами
- Співіснування наявної автентифікації — Платформа вже мала автентифікацію на основі email/password та OAuth; SSO мала співіснувати, не порушуючи наявні потоки
Наше Рішення
Ми впровадили Okta SSO через SAML 2.0/OIDC для автентифікації та SCIM 2.0 для автоматизованого створення, деактивації облікових записів користувачів та синхронізації груп — інтегроване в існуючий багатоорендний backend.
Архітектура
- Identity Provider: Okta (орендарі, керовані клієнтом)
- SSO Protocol: SAML 2.0 (основний) + OIDC (альтернативний)
- Provisioning: SCIM 2.0 сервер, вбудований у backend платформи
- Backend: NestJS з PostgreSQL та Redis
- Auth Layer: Сесії на основі JWT з видачею токенів з урахуванням SSO
- Панель адміністратора: Конфігурація орендаря на основі React для налаштування SSO
- Наявна автентифікація: Email/password + Google OAuth збережено поряд з SSO
---
Реалізація SSO (SAML 2.0 / OIDC)
Потік SAML 2.0
Потік SAML, ініційований SP, працює наступним чином: користувач відвідує сторінку входу та вибирає SSO, вводить домен електронної пошти своєї компанії, платформа ідентифікує конфігурацію Okta орендаря за доменом, надсилає AuthnRequest до Okta, користувач автентифікується, Okta повертає підписане SAML assertion, платформа перевіряє assertion та створює сесію за допомогою JWT токенів.
Конфігурація для кожного орендаря
SSO кожного орендаря налаштовується за допомогою SSO URL їхнього identity provider, entity ID, X.509 сертифіката для перевірки підпису, а також SP entity ID платформи, assertion consumer service URL та відображень атрибутів з полів профілю identity provider до полів користувача платформи.
Альтернатива OIDC
Для клієнтів, які віддають перевагу OIDC над SAML, платформа підтримує Authorization Code flow з PKCE, використовуючи те ж відображення атрибутів через OIDC claims та валідацію ID token за допомогою JWKS.
Маршрутизація SSO для багатоорендної архітектури
Платформа маршрутизує користувачів до правильного identity provider на основі їхнього email домену. Коли користувач вводить свою електронну пошту, платформа шукає домен у конфігураціях SSO орендаря. Якщо SSO налаштовано, користувач перенаправляється до Okta tenant своєї організації. Якщо ні, він повертається до email/password або Google OAuth. Vanity URLs також підтримуються для прямого доступу через SSO. ---
Реалізація SCIM 2.0
SCIM сервер
Платформа надає SCIM 2.0 сумісний API, який Okta викликає для керування користувачами та групами. API підтримує повні операції життєвого циклу користувачів (створення, читання, оновлення, деактивація, видалення), CRUD для груп з керуванням членством та стандартні SCIM discovery endpoints для можливостей, схем та типів ресурсів.
Життєвий цикл користувачів через SCIM
Провиження:Коли адміністратор призначає користувача до додатку платформи в Okta, Okta надсилає запит на створення до SCIM API. Платформа створює обліковий запис користувача з асоціацією орендаря, позначає його як активного та SSO-provisioned, і користувач може негайно увійти через SSO.
Оновлення профілю:Коли адміністратор оновлює профіль користувача в Okta, зміни передаються на платформу через SCIM. У разі зміни відділу, членство в групі автоматично переоцінюється.
Деактивація:Коли користувача видаляють з додатку в Okta, платформа деактивує обліковий запис — негайно відкликає всі активні сесії, запобігаючи подальшому входу, зберігаючи дані відповідно до політики зберігання та звільняючи ліцензійне місце.
Реактивація:Повторне призначення користувача в Okta реактивує його обліковий запис з усіма історичними даними без змін.
Синхронізація груп
Групи Okta відображаються на ролі платформи та рівні програм — контролюючи доступ до різних рівнів функцій, можливостей адміністратора, спеціалізованих дашбордів та ексклюзивних програм. Зміни членства в групах в Okta передаються через SCIM та відображаються в реальному часі без необхідності повторного входу. ---
Безпека та автентифікація
Видача токенів після SSO
Після валідації SAML assertion, платформа видає JWT-токени з обсягом дії для орендаря, що містять claims щодо ідентифікатора користувача, організації, ролей (отриманих з членства в SCIM групі), методу автентифікації та identity provider — що дозволяє розрізняти SSO та інші методи автентифікації для аудиту.
Управління сесіями
- Сесії SSO дотримуються терміну дії сесії Okta
- Single Logout (SLO) підтримується для завершення сесії, коли користувач виходить з Okta
- Webhook для back-channel logout для негайного відкликання сесії
- Деактивація SCIM відкликає всі активні сесії протягом 60 секунд
Контроль безпеки
- Перевірка підпису відповіді SAML за X.509 сертифікатом орендаря
- Запобігання повторному відтворенню assertion за допомогою відстеження одноразового використання
- Толерантність до зсуву годинника для перевірки часової мітки assertion
- Перевірка обмежень аудиторії
- Зашифровані assertions підтримуються для чутливих розгортань
- Автентифікація SCIM endpoint через Bearer tokens для кожного орендаря
- Обмеження частоти запитів на SCIM endpoint
---
Панель конфігурації адміністратора
Налаштування SSO орендаря
Панель адміністратора надає потік самостійного налаштування:
- Вибір протоколу — Оберіть SAML 2.0 або OIDC
- Завантаження метаданих — Завантажте XML метаданих IdP (автоматично заповнює конфігурацію)
- Відображення атрибутів — Зіставте поля профілю identity provider з полями користувача платформи
- Перевірка домену — Підтвердьте право власності на email домен(и) для маршрутизації SSO
- Тестове підключення — Ініціюйте тестовий вхід через SSO перед увімкненням для всіх користувачів
- Налаштування SCIM — Створіть Bearer token для конфігурації SCIM provisioning
- Відображення груп — Зіставте групи identity provider з ролями та рівнями платформи
Панель також надає метадані SP, які можна завантажити, для легкої конфігурації додатку identity provider. ---
Ключові особливості
- Підтримка SAML 2.0 + OIDC — Гнучкий вибір протоколу для кожного орендаря
- Провиження SCIM 2.0 — Автоматизоване створення, оновлення та деактивація користувачів
- Відображення груп на ролі — Групи identity provider контролюють рівні доступу та програми платформи
- Миттєва деактивація — Деактивація SCIM відкликає доступ протягом 60 секунд
- Маршрутизація SSO для багатоорендної архітектури — Виявлення IdP на основі email домену для всіх орендарів
- Співіснування методів автентифікації — SSO поряд з email/password та Google OAuth
- Самостійне налаштування — Панель адміністратора для конфігурації SSO без інженерної підтримки
- Single Logout — Сесія платформи завершується, коли користувач виходить з identity provider
- Аудиторський слід — Кожна операція SCIM та подія SSO реєструються для дотримання вимог
- Синхронізація груп SCIM — Зміни ролей та програм у реальному часі від членства в групах identity provider
Результати
Технологічний Стек
caseStudyDetail.more Кейси
Ознайомтесь з іншими нашими технічними впровадженнями
Обробка рахунків-фактур за допомогою AI, OCR та інтеграції з QuickBooks
Середній бізнес, який щомісяця обробляє сотні рахунків-фактур від постачальників, потребував усунення ручного введення даних шляхом автоматичного вилучення даних рахунків-фактур за допомогою AI/OCR та їх прямої синхронізації з QuickBooks для ведення бухгалтерського обліку та відстеження платежів.
Вставка реклами на стороні клієнта (CSAI) з парсингом маркерів SCTE-35 та інтеграцією багатоплатформного плеєра
Платформа потокового відео потребувала впровадження вставки реклами на стороні клієнта (CSAI) для веб-, мобільних програм та програм для підключених телевізорів — що забезпечує персоналізований рекламний досвід на рівні пристрою з повною підтримкою взаємодії з рекламою (натискні оверлеї, супутні банери, кнопки пропуску), який не може забезпечити вставка на стороні сервера.
Готові Трансформувати Свій Бізнес?
Давайте обговоримо, як ми можемо застосувати подібні рішення для ваших завдань.