Just-in-Time поддержка — это процесс, используемый в системах управления идентификацией и доступом для создания пользовательских учетных записей на лету, когда они впервые входят в систему. В этой статье объясняются основы Just-in-Time поддержки и отвечают на распространенные вопросы о его внедрении.
GuamianProduct & Design
Хватит тратить недели на аутентификацию пользователей
Запускайте безопасные приложения быстрее с Logto. Интегрируйте аутентификацию пользователей за считанные минуты и сосредоточьтесь на вашем основном продукте.
Прежде чем мы обсудим Just-in-Time поддержку, представьте, что вы создаете B2B приложение SaaS и хотите поддерживать функции членства, позволяя пользователям легко присоединяться к вашему рабочему пространству (арендатору). Какие функции вы бы предложили? Вот контрольный список для вас:
Сценарий
Поток
Приглашение администратора
Пользователи могут получить приглашение по электронной почте для присоединения к организации.
Создание пользователя или импорт через API управления
Пользователи могут использовать предварительно созданную учетную запись для присоединения к организации.
Just-in-Time поддержка
Пользователи, которые впервые входят в приложение, могут присоединиться к организации.
Синхронизация каталогов (например, SCIM)
Используйте функциональность синхронизации каталогов поставщика удостоверений (IdP), чтобы заранее создавать пользователей в приложении.
Just-in-Time (JIT) поддержка — это процесс, используемый в системах управления идентификацией и доступом для создания учетных записей пользователей на лету, когда они впервые входят в систему. Вместо предварительного создания учетных записей пользователей заранее, JIT поддержка динамически создает и настраивает необходимые учетные записи пользователей при аутентификации.
Just-in-time поддержка является популярной функцией со своими характеристиками, такими как эффективность, отсутствие административного участия и автоматическое членство в организации и т.д.
Теперь, когда вы поняли основы Just-in-Time поддержки, у вас могут возникнуть вопросы, когда вы начнете углубляться в разработку реальных продуктов. Я отвечу на эти вопросы, которые могут быть спорными и сильно зависят от ваших конкретных бизнес-кейсов.
Нужно ли вам внедрять Just-in-Time поддержку для вашего продукта?#
Эти случаи распространены при создании B2B приложений, связанных с многоарендаторной архитектурой, корпоративным SSO, работой с предприятиями или необходимостью функций адаптации команд. Вот несколько примеров, с которыми может столкнуться ваш клиент.
Ваш клиент, который испытывает частые наемы или быстрый рост, может использовать JIT поддержку для быстрого создания учетных записей пользователей для новых сотрудников. Рассмотрим пример:
Сара — новый сотрудник компании «SuperFantasy», которая использует «Okta» в качестве корпоративного поставщика удостоверений. Команда кадров добавляет ее как деловую идентификацию [email protected] в Okta всего один раз. Когда Сара впервые использует этот email для входа в корпоративное производственное приложение под названием «Smartworkspace», система автоматически создает учетную запись и назначает ей нужную роль в рабочем пространстве компании. Таким образом, ни Саре, ни команде кадров в SuperFantasy не нужно проходить через множество шагов для создания учетной записи и назначения роли.
Ваш клиент, который испытывает слияние или поглощение других, может упростить процесс предоставления доступа к системам компании для многих новых пользователей с помощью JIT поддержки. Взглянем на еще один пример,
Питер работает в компании «MagicTech», которая недавно была поглощена «SuperFantasy». MagicTech — это небольшая организация без корпоративного SSO, но также использует «Smartworkspace», где Питер уже имеет деловую учетную запись.
Команда кадров может добавить Питера в «Okta». Когда Питер впервые войдет в Smartworkspace через Okta, система автоматически свяжет его существующую деловую учетную запись и предоставит подходящий доступ к SuperFantasy.
Вышеописанные сценарии идеально подходят для внедрения функции JIT.
Является ли это специфическим для SAML и корпоративного SSO?#
Just-in-time (JIT) поддержка часто ассоциируется с единым входом (SSO) в аутентификации SAML, но она не является исключительно для SAML. JIT поддержка также может использоваться с другими протоколами аутентификации, такими как OAuth 2.0 и OpenID Connect, и она не всегда требует настройки корпоративного SSO.
Например, JIT поддержка на основе email может упростить адаптацию команд, автоматически добавляя пользователей в рабочее пространство на основе их домена электронной почты. Это особенно полезно для организаций, у которых нет бюджета и ресурсов для покупки и управления корпоративным SSO.
Основная идея JIT поддержки заключается в автоматизации создания или обновления учетных записей пользователей, когда пользователь впервые пытается получить доступ к сервису, независимо от используемого протокола.
Применяется ли это к новым или существующим пользователям приложения?#
Это сложный вопрос. Под поддержкой Just-in-time (JIT) обычно подразумевается первая попытка доступа к приложению. Однако различные продукты воспринимают эту функциональность по-разному. Некоторые используют Just-in-time поддержку только для идентификации и создания учетных записей, в то время как другие также включают Just-in-Time обновления учетных записей, такие как повторное создание и синхронизация атрибутов.
В дополнение к автоматическому созданию пользователей, SAML JIT поддержка позволяет предоставлять и отзывать членство в группах в рамках поддержки. Она также может обновлять созданных пользователей, чтобы их атрибуты в хранилище поставщика услуг (SP) оставались синхронизированными с атрибутами хранилища пользователей поставщика идентификационных данных (IDP).
Например, в Oracle Cloud Just-in-Time поддержка может быть настроена различными способами.
Пользователь создается, и заполнен атрибутами утверждения SAML, как это настроено в конфигурации JIT.
Существует, и JIT обновление включено.
Значения атрибутов пользователя обновляются атрибутами утверждения SAML, как это настроено в конфигурации JIT.
Если вы хотите рассмотреть сценарий последующего входа существующего пользователя, убедитесь, что у вас есть надежная система поддержки наряду с вашей системой JIT. Например,
Разрешение конфликтов: Ваша система должна иметь стратегию для управления конфликтами, если учетная запись уже существует и содержит другую информацию, чем та, которая представлена поставщиком удостоверений при процессе JIT. Это может потребовать детального контроля над политиками вашей организации и конфигурации поставщика удостоверений.
Журналы аудита: Важно вести учет как создания новых учетных записей, так и обновлений существующих аккаунтов через процессы JIT для обеспечения безопасности и соблюдения требований.
Производительность: Хотя поддержка JIT происходит быстро, учитывайте потенциальное влияние на время входа в систему, особенно для существующих пользователей, если при каждом входе обновляется их информация.
Согласованность данных: Убедитесь, что ваш процесс поддержки JIT сохраняет согласованность данных, особенно при обновлении существующих учетных записей пользователей.
Помимо Just-in-Time (JIT) поддержки, вы могли слышать о SCIM (System for Cross-domain Identity Management). SCIM — это стандартный протокол, разработанный для упрощения и автоматизации управления идентификацией пользователей между различными системами и доменами. Он часто используется в сценариях синхронизации каталогов.
Основное различие между JIT и SCIM заключается в том, что JIT создает учетные записи во время попытки входа пользователя, в то время как SCIM может автоматически создавать пользователей через оффлайн-процесс, независимо от попыток входа пользователя.
То есть JIT сосредоточен на адаптации новых пользователей, в то время как SCIM сосредоточен на полном жизненном цикле управления пользователями.
Кроме того, JIT часто является расширением SAML и не имеет стандартизированного внедрения на всех системах, тогда как SCIM является четко определенным, стандартизированным протоколом (RFC 7644) для управления идентификацией.
Некоторые крупные организации используют SCIM для поддержки учетных записей, интегрируя его со своими собственными системами. Это может быть очень сложно и варьироваться от случая к случаю. Эти организации часто имеют поддержку, включающую как автоматизированные процессы, так и участие администратора вручную.
SSO Just-in-Time поддержка и Just-in-Time поддержка по email доменам — вот что мы поддерживаем в Logto.
В Logto у нас эта функция установлена на уровне организации, что позволяет пользователям автоматически присоединяться к организации и получать назначение ролей, если они соответствуют определенным критериям.
Мы внедряем функцию JIT на самом масштабируемом и безопасном уровне, чтобы упростить и автоматизировать процесс поддержки для разработчиков, которые адаптируют своих клиентов. Однако, как мы уже обсуждали ранее, так как системы поддержки могут быть сложными и адаптированы к индивидуальным потребностям ваших клиентов, вам следует полагаться как на предварительно созданные функции JIT Logto, так и на ваш тщательный дизайн системы, а также на API управления Logto для создания надежной системы поддержки.
Давайте рассмотрим эту диаграмму, чтобы понять, как это работает в Logto,
Если у вас настроен корпоративный SSO в Logto, вы можете выбрать корпоративный SSO вашей организации для включения Just-in-time поддержки.
Новые или существующие пользователи, которые входят через корпоративное SSO в первый раз, автоматически присоединятся к организации и получат роли по умолчанию в организации.
Следующая таблица перечисляет возможные потоки:
Статус пользователя
Описание потока
Пользователь не существует, и JIT включен.
Пользователь создается и автоматически присоединяется к соответствующей организации с подходящими ролями.
Пользователь существует с тем же подтвержденным email, что и корпоративный SSO, и JIT включен.
Email пользователя автоматически связывается с учетной записью корпоративного SSO, и пользователь присоединяется к соответствующей организации с правильными ролями.
Если у организации нет выделенного корпоративного SSO, вы можете использовать email домены для включения Just-in-Time поддержки. Это обычно происходит в небольших бизнесах, у которых нет бюджета на корпоративный SSO, но которым все равно требуется определенная автоматизация членства и управление безопасностью.
Когда пользователи регистрируются, если их подтвержденные email адреса совпадают с настроенными email доменами на уровне организации, они будут автоматически присоединены к соответствующей организации(-ям) с подходящими ролями.
Поддержка по email доменам работает для:
Аутентификация при регистрации через email
Аутентификация при регистрации через социальные сети
Пользователь не существует, регистрируется через социальную сеть, используя подтвержденный email, и JIT включен.
Пользователь создается и автоматически присоединяется к соответствующей организации с подходящими ролями.
Пользователь не существует, регистрируется через социальную сеть, используя неподтвержденный email или без email, и JIT включен.
Стандартный процесс регистрации через социальную сеть.
Пользователь существует с тем же подтвержденным email, что и прописанные email домены, входит через социальную сеть, и JIT включен.
Стандартный процесс входа через социальную сеть.
Пользователь не существует, регистрируется через социальную сеть, и JIT не включен.
Стандартный процесс регистрации через социальную сеть.
Пользователь существует, входит через социальную сеть, и JIT не включен.
Стандартный процесс входа через социальную сеть.
Управление конфликтами между поддержкой по email доменам и корпоративным SSO#
Если вы изначально настроили поддержку по email доменам, а затем настроили корпоративный SSO с тем же email доменом, вот что произойдет:
Когда пользователь вводит свой email адрес, он будет перенаправлен на поток SSO, обходя аутентификацию через email. Это означает, что процесс JIT не будет запущен.
Чтобы решить эту проблему, мы покажем предупреждающее сообщение при конфигурации. Убедитесь, что вы выбрали правильный SSO для включения Just-in-time поддержки и не полагайтесь на поддержку по email доменам.
При поддержке пользователей, вы можете установить их роли по умолчанию в организации. Список ролей предоставляется из шаблона организации, и вы можете выбрать роль или оставить этот выбор пустым.
К счастью, эта функция уже встроена в корпоративный SSO! Вы можете выбрать, будет ли информация профиля синхронизироваться с Logto при первом входе или при каждом входе. Мы также планируем добавить больше возможностей, таких как сопоставление ролей и организаций и переподготовка в будущем.