Подготовка через SCIM
Tuist поддерживает подготовку через SCIM 2.0, что позволяет поставщику удостоверений автоматически создавать, обновлять и отзывать доступ членам организации.
SCIM настраивается на вкладке Аутентификация в настройках вашей организации. Токен SCIM — это токен аккаунта, принадлежащий организации, с правами доступа только к SCIM; он отображается только один раз при создании.
SCIM управляет членством и жизненным циклом. Он не заменяет единый вход (SSO). Настройте SSO отдельно, если подготовленным пользователям также нужно входить через ваш поставщик удостоверений.
Подготовленные пользователи уже являются членами организации. Когда они входят с тем же адресом электронной почты, это членство может установить доверие для связывания их идентичности у поставщика. проверенный домен электронной почты для входа и политика регистрации контролируют пользователей, которые еще не были подготовлены или добавлены в организацию.
Okta#
Okta использует два отдельных приложения для Tuist:
- Веб-приложение OIDC для входа в Tuist.
- Приложение SCIM 2.0 Test App (Header Auth) для подготовки пользователей и групп в Tuist.
Сначала настройте SSO Okta, если пользователи должны входить через Okta, а затем настройте подготовку через SCIM, следуя инструкциям ниже.
Шаг 1. Создайте токен Tuist SCIM#
- В Tuist перейдите на вкладку настроек Аутентификация вашей организации.
- В разделе Подготовка через SCIM скопируйте URL-адрес конечной точки SCIM. Он должен заканчиваться на
/scim/v2. - Нажмите Создать токен.
- Назовите токен (например,
Okta). - Скопируйте созданный токен. Tuist показывает токен только один раз.
Шаг 2. Добавьте приложение Okta SCIM#
- В панели администратора Okta перейдите в Applications > Applications > Browse App Catalog.
- Найдите и добавьте SCIM 2.0 Test App (Header Auth).
- Дайте ему узнаваемое имя, например
Tuist SCIM. - Завершите настройку параметров входа для тестового приложения SCIM. Tuist не использует это приложение для входа; вход обрабатывается приложением OIDC из руководства по SSO.
Шаг 3. Настройте интеграцию API#
- Откройте вкладку Provisioning приложения SCIM.
- В разделе Settings > Integration нажмите Configure API Integration или Edit.
- Установите флажок Enable API integration.
- Вставьте URL-адрес конечной точки SCIM Tuist в поле Okta Base URL.
- Вставьте токен Tuist SCIM в поле API Token с префиксом
Bearer. Например,Bearer tuist_scim_.... Okta отправляет это поле в заголовкеAuthorization, а Tuist ожидает токен bearer. - Включите Import Groups, если хотите, чтобы Okta читал группы SCIM Tuist.
- Нажмите Test API Credentials. Okta должна сообщить, что интеграция успешно проверена.
- Нажмите Save.
Шаг 4. Включите действия подготовки#
- На вкладке Provisioning приложения SCIM откройте Settings > To App.
- Нажмите Edit.
- Включите:
- Create Users
- Update User Attributes
- Deactivate Users
- Нажмите Save.
Шаг 5. Назначьте пользователей или группы#
- Откройте вкладку Assignments приложения SCIM.
- Назначьте пользователей или группы, которые должны быть подготовлены в Tuist.
- Назначьте тех же пользователей или группы приложению Okta OIDC, если они также должны иметь возможность входа через SSO.
- Проверьте вкладку Members в Tuist, чтобы убедиться, что назначенные пользователи появились в организации.
Чтобы проверить отмену подготовки, отмените назначение или деактивируйте пользователя в Okta и убедитесь, что он исчез с вкладки Members организации Tuist.
Назначение ролей#
В Tuist есть три роли: admin, user и viewer. Tuist предоставляет одну группу SCIM для каждой роли: Tuist Admins, Tuist Users и Tuist Viewers. Свяжите группы Okta с ними через Group Push:
- Выберите или создайте группу Okta для каждой роли, которую вы хотите назначить, и назначьте эти группы на вкладке Assignments приложения SCIM.
- Убедитесь, что Import Groups включено в интеграции API, затем откройте вкладку Import приложения SCIM и нажмите Import Now, чтобы Okta узнала о группах Tuist.
- Откройте вкладку Push Groups приложения SCIM и нажмите Push Groups > Find groups by name.
- Выберите группу Okta, выберите Link Group в качестве действия push и выберите соответствующую группу Tuist. Tuist не поддерживает создание групп через SCIM, поэтому свяжите существующую группу вместо создания новой.
- Нажмите Save и повторите для остальных ролей.
Добавление пользователя в связанную группу назначает ему эту роль. Удаление пользователя из группы возвращает его к роли, по умолчанию назначаемой участникам единого входа в организации, которой является user, если администратор не изменил её в разделе Settings > Authentication. Пользователи, не входящие ни в одну связанную группу, также получают эту роль. Удаление пользователя из группы не удаляет его из организации; для этого отмените назначение или деактивируйте его в Okta.
Microsoft Entra ID#
Entra ID выполняет подготовку Tuist через корпоративное приложение, отсутствующее в галерее. Сначала настройте SSO Microsoft Entra ID, если пользователи также должны входить через Entra ID.
Приложение, которое вы регистрируете для единого входа, и корпоративное приложение, используемое для подготовки, могут быть одним и тем же. Подготовка настраивается в записи корпоративного приложения.
Шаг 1. Создайте токен Tuist SCIM#
- В Tuist перейдите на вкладку настроек Authentication вашей организации.
- В разделе SCIM provisioning скопируйте URL-адрес конечной точки SCIM. Он должен заканчиваться на
/scim/v2. - Нажмите Создать токен.
- Назовите токен (например,
Entra ID). - Скопируйте созданный токен. Tuist показывает токен только один раз.
Шаг 2. Настройте подготовку#
- В центре администрирования Microsoft Entra перейдите в Identity > Applications > Enterprise applications и откройте приложение Tuist.
- Откройте Provisioning и установите Provisioning Mode в значение Automatic.
- Установите Tenant URL равным URL-адресу конечной точки SCIM Tuist.
- Установите Secret Token равным токену Tuist SCIM. Введите токен отдельно, без префикса
Bearer; Entra ID добавляет схему самостоятельно. - Нажмите Test Connection. Entra ID должна сообщить, что предоставленные учетные данные авторизованы.
- Сохраните конфигурацию.
Шаг 3. Установите атрибут сопоставления#
- В разделе Mappings откройте Provision Microsoft Entra ID Users.
- Убедитесь, что
userPrincipalNameилиmailсопоставляется с атрибутом SCIMuserNameи что этот атрибут используется для Matching precedence 1. - Удалите
externalIdиз атрибутов сопоставления, если он присутствует.
Tuist сопоставляет подготовленных пользователей по userName. Он не хранит идентификатор объекта каталога, который Entra ID отправляет как externalId, поэтому фильтр по этому атрибуту не находит существующего участника, и циклы подготовки могут работать непредсказуемо.
Шаг 4. Отключите подготовку групп#
В разделе Mappings отключите Provision Microsoft Entra ID Groups.
Группы SCIM в Tuist — это фиксированные группы для каждой роли организации, а не группы каталога, которые можно создавать, поэтому попытка подготовить группу каталога завершается ошибкой. Вместо этого назначайте роли, как описано ниже.
Шаг 5. Назначьте пользователей и запустите подготовку#
- Откройте вкладку Users and groups приложения и назначьте пользователей или группы, которые должны быть подготовлены в Tuist.
- Вернитесь в Provisioning и запустите её.
- Проверьте вкладку Members в Tuist, чтобы убедиться, что назначенные пользователи появились в организации.
Entra ID выполняет подготовку по собственному расписанию, обычно каждые 40 минут, поэтому участники не появляются мгновенно. Используйте Provision on demand, чтобы немедленно протестировать одного пользователя.
Чтобы проверить отмену подготовки, отмените назначение или отключите пользователя в Entra ID и убедитесь, что он исчез с вкладки Members организации Tuist.
Если вы позже измените область подготовки, например с Sync all users and groups на Sync only assigned users and groups, нажмите Restart provisioning. Entra ID применит новую область, включая отмену подготовки пользователей, которые больше в неё не входят, только после перезапуска.
Назначение ролей#
В Tuist есть три роли: admin, user и viewer. Чтобы настроить их из Entra ID:
- В разделе App registrations откройте приложение Tuist и добавьте роль приложения для каждой роли Tuist, которую хотите назначить. Установите Allowed member types в Users/Groups, а Value — в
admin,userилиviewer. - На вкладке Users and groups корпоративного приложения назначьте каждому пользователю или группе одну из этих ролей приложения. Пользователь может иметь несколько ролей приложения. Tuist применяет наиболее привилегированную роль, где
adminимеет приоритет надuser, аuser— надviewer, поэтому пользователь, состоящий в группах, сопоставленных с разными ролями, получает самую высокую из них. - В разделе Provisioning > Mappings откройте выпадающий список Advanced Options и выберите Edit target User attributes. Добавьте атрибут с именем
roles, установите Type вStringи отметьте Multi-Value. - В разделе Provisioning > Mappings > Provision Microsoft Entra ID Users нажмите Add New Mapping. Установите Mapping type в Expression, Expression в
AssertiveAppRoleAssignmentsComplex([appRoleAssignments]), а Target attribute — в добавленный вами атрибутroles. - Оставьте область подготовки установленной в Sync only assigned users and groups.
AssertiveAppRoleAssignmentsComplexнесовместим с Sync all users and groups.
AssertiveAppRoleAssignmentsComplex отправляет все роли приложения, которые есть у пользователя, а также отправляет удаления, поэтому удаление роли в Entra ID понижает пользователя до самой привилегированной роли, которая у него остаётся. SingleAppRoleAssignment([appRoleAssignments]), сопоставленный с roles[primary eq "True"].value, также работает, но он отправляет только одну роль, и Entra ID не гарантирует, какую именно выберет, если у пользователя их несколько.
Изменение ролей приложения пользователя в Entra ID обновляет его роль в Tuist при следующем цикле подготовки. Пользователь, подготовленный без роли приложения или со значениями, отличными от admin, user или viewer, получает роль, под которой организация регистрирует участников единого входа, то есть user, если администратор не изменил её в разделе Settings > Authentication.
Поведение жизненного цикла#
Когда ваш поставщик удостоверений назначает пользователя приложению подготовки, Tuist создаёт пользователя, если этот адрес электронной почты ещё не известен Tuist, а затем добавляет его в организацию. Если адрес электронной почты уже принадлежит существующему пользователю Tuist вне организации, Tuist отклоняет запрос, чтобы предотвратить захват поставщиком удостоверений пользователя, которым он ещё не управляет в этой организации.
Когда ваш поставщик удостоверений отменяет назначение или деактивирует пользователя, Tuist удаляет его роль в организации, сохраняя запись пользователя и любые принадлежащие ему работы. Отмена подготовки не отключает пользователя глобально, так как один и тот же пользователь Tuist может принадлежать другим организациям.
Tuist предоставляет три синтетические группы SCIM: Tuist Admins, Tuist Users и Tuist Viewers. Добавление участника в группу устанавливает его роль в организации. Удаление участника из группы, соответствующей его текущей роли, возвращает его к роли регистрации, а само членство заканчивается только тогда, когда пользователь теряет назначение или деактивируется. Поставщики удостоверений также могут устанавливать роль через атрибут SCIM roles у пользователя со значением admin, user или viewer. Поставщик удостоверений, отправляющий несколько значений, применяет наиболее привилегированное из них, где admin имеет приоритет над user, а user — над viewer.
Поддерживаемые возможности SCIM#
Tuist поддерживает конечные точки SCIM 2.0, необходимые поставщикам удостоверений для управления жизненным циклом:
POST,GET,PUT,PATCHиDELETEдля/Users.GETиPATCHдля/Groups.- Конечные точки обнаружения SCIM для
/ServiceProviderConfig,/ResourceTypesи/Schemas.