# Настройка SCIM с Entra ID

Платформа dbt | Enterprise, Enterprise+

dbt platform поддерживает System for Cross-Domain Identity Management (SCIM) с Microsoft Entra ID для подготовки пользователей и групп и обновления профилей.

Сопоставление лицензий с помощью SCIM

dbt platform поддерживает автоматическое назначение лицензий с помощью SCIM со следующими вариантами для разных поставщиков удостоверений:

 Показать варианты для каждого поставщика удостоверений

* **Okta:** Включите переключатель **Ignore dbt license mapping** в разделе **Account settings > SSO & SCIM** и следуйте [документации по управлению лицензиями через Okta](https://docs.getdbt.tech/docs/platform/manage-access/scim-manage-user-licenses.md).
* **Entra ID:** Используйте [сопоставление групп Active Directory с лицензиями на основе SSO](https://docs.getdbt.tech/docs/platform/manage-access/seats-and-users.md#mapped-configuration). Оно работает совместно с активной конфигурацией SCIM для Entra ID. Оставьте переключатель **Ignore dbt license mapping** *выключенным*, поскольку его включение удаляет сопоставление лицензий для пользователей Entra ID. Сопоставление лицензий через SCIM с использованием [пользовательских атрибутов](https://learn.microsoft.com/en-us/entra/fundamentals/custom-security-attributes-overview) может быть возможно в зависимости от вашей конфигурации Entra ID, но такая настройка не поддерживается — **используйте её на свой страх и риск**.

Дополнительные сведения см. в ответе на вопрос [Поддерживает ли SCIM автоматическое назначение лицензий?](https://docs.getdbt.tech/docs/platform/manage-access/scim-faq.md#does-scim-support-automatic-license-assignment) в разделе часто задаваемых вопросов.

## Предварительные требования

* Доступно на [тарифных планах Enterprise или Enterprise+](https://www.getdbt.com/pricing).

* Необходимо использовать Entra ID в качестве поставщика единого входа (SSO) и подключить его в dbt platform.

* У вас должны быть [разрешения](https://docs.getdbt.tech/docs/platform/manage-access/enterprise-permissions.md) на изменение настроек аккаунта в dbt platform.

* Прежде чем настраивать SCIM, выполните [настройку SSO с Entra ID](https://docs.getdbt.tech/docs/platform/manage-access/set-up-sso-microsoft-entra-id.md).

* Выполните [настройку SCIM](https://docs.getdbt.tech/docs/platform/manage-access/scim.md#set-up-dbt), чтобы получить базовый URL и токен SCIM.

* **Требуется группа Account Admin:** Перед включением SCIM для вашей учетной записи dbt необходимо создать группу администраторов учетной записи dbt в вашем IdP и группу с таким же именем в вашей учетной записи dbt. Назначьте группе dbt набор разрешений [Account Admin](https://docs.getdbt.tech/docs/platform/manage-access/enterprise-permissions.md#account-admin).

  Без этой группы после включения выделения ресурсов через SCIM ваши пользователи могут быть удалены из группы dbt 'Owner', созданной по умолчанию, и потерять административный доступ к вашей учетной записи dbt. Имена этих двух групп могут соответствовать принятой в вашем IdP схеме именования групп, но имя группы в dbt должно полностью совпадать с именем группы в IdP.

## Настройка Entra ID

1. Войдите в свой аккаунт Azure и откройте настройки **Entra ID**.

2. На боковой панели в разделе **Manage** нажмите **Enterprise Applications**.

3. Нажмите **New Application** и выберите **Create your own application**.

   [![Создание собственного приложения.](/img/docs/dbt-platform/access-control/create-your-own.png?v=2 "Создание собственного приложения.")](#)Создание собственного приложения.

4. Задайте уникальное имя приложения и убедитесь, что выбран вариант **Integrate any other application you don't find in the gallery (Non-gallery)**. Игнорируйте любые предложения использовать существующие приложения. Нажмите **Create**.

   [![Задайте уникальное имя приложения.](/img/docs/dbt-platform/access-control/create-application.png?v=2 "Задайте уникальное имя приложения.")](#)Задайте уникальное имя приложения.

5. На странице **Overview** приложения нажмите **Provision User Accounts**.

   [![Пункт «Provision user accounts».](/img/docs/dbt-platform/access-control/provision-user-accounts.png?v=2 "Пункт «Provision user accounts».")](#)Пункт «Provision user accounts».

6. В разделе **Create configuration** нажмите **Connect your application**.

7. Заполните форму данными из вашего аккаунта dbt:

   * **Tenant URL** в Entra ID — это ваш **SCIM base URL** из dbt.
   * **Secret token** в Entra ID — это ваш **SCIM token** из dbt.

8. Нажмите **Test connection**, а после завершения проверки — **Create**.

   [![Настройте приложение и проверьте подключение.](/img/docs/dbt-platform/access-control/provisioning-config.png?v=2 "Настройте приложение и проверьте подключение.")](#)Настройте приложение и проверьте подключение.

## Сопоставление атрибутов

Чтобы сопоставить атрибуты, которые будут синхронизироваться с dbt:

1. В меню на боковой панели страницы **Overview** корпоративного приложения нажмите **Provisioning**.

   [![Пункт Provisioning на боковой панели.](/img/docs/dbt-platform/access-control/provisioning.png?v=2 "Пункт Provisioning на боковой панели.")](#)Пункт Provisioning на боковой панели.

2. В разделе **Manage** снова нажмите **Provisioning**.

3. Разверните раздел **Mappings** и нажмите **Provision Microsoft Entra ID users**.

   [![Подготовка пользователей Entra ID.](/img/docs/dbt-platform/access-control/provision-entra-users.png?v=2 "Подготовка пользователей Entra ID.")](#)Подготовка пользователей Entra ID.

4. Установите флажок **Show advanced options**, а затем нажмите **Edit attribute list for customappsso**.

   [![Нажмите, чтобы изменить атрибуты customappsso.](/img/docs/dbt-platform/access-control/customappsso-attributes.png?v=2 "Нажмите, чтобы изменить атрибуты customappsso.")](#)Нажмите, чтобы изменить атрибуты customappsso.

5. Прокрутите окно **Edit Attribute List** до конца и найдите пустую строку, в которой можно добавить новую запись со следующими полями:

   * **Name:** `emails[type eq "work"].primary`
   * **Type:** `Boolean`
   * **Required:** True

   [![Добавьте новое поле в список записей.](/img/docs/dbt-platform/access-control/customappsso-entry.png?v=2 "Добавьте новое поле в список записей.")](#)Добавьте новое поле в список записей.

6. Отметьте все поля, перечисленные в шаге 10 ниже, как `Required`.

   [![Отметьте поля как обязательные.](/img/docs/dbt-platform/access-control/mark-as-required.png?v=2 "Отметьте поля как обязательные.")](#)Отметьте поля как обязательные.

7. Нажмите **Save**.

8. Вернитесь в окно **Attribute mapping**, нажмите **Add new mapping** и заполните поля следующим образом:

   * **Mapping type:** `none`
   * **Default value if null (optional):** `True`
   * **Target attribute:** `emails[type eq "work"].primary`
   * **Match objects using this attribute:** `No`
   * **Matching precedence:** *Оставьте пустым*
   * **Apply this mapping:** `Always`

   [![Заполните поля, как показано на изображении.](/img/docs/dbt-platform/access-control/edit-attribute.png?v=2 "Заполните поля, как показано на изображении.")](#)Заполните поля, как показано на изображении.

9. Нажмите **Ok**.

10. Убедитесь, что настроены следующие сопоставления, и удалите все остальные:

    * **UserName:** `userPrincipalName` или значение, которое пользователи должны использовать для входа в dbt.
    * **active:** `Switch([IsSoftDeleted], , "False", "True", "True", "False")`
    * **emails\[type eq "work"].value:** чаще всего используется `userPrincipalName`, но это значение должно совпадать со значением, заданным для **UserName**.
    * **name.givenName:** `givenName`
    * **name.familyName:** `surname`
    * **externalid:** `mailNickname`
    * **emails\[type eq "work"].primary**

    [![Измените атрибуты так, чтобы они соответствовали показанному списку.](/img/docs/dbt-platform/access-control/attribute-list.png?v=2 "Измените атрибуты так, чтобы они соответствовали показанному списку.")](#)Измените атрибуты так, чтобы они соответствовали показанному списку.

    Имя пользователя для SSO и SCIM

    Если вы используете и SSO, и SCIM с Entra ID, сопоставьте **UserName** в SCIM с **userPrincipalName** (или с тем же атрибутом Entra, который пользователи используют для входа в dbt platform). Для **emails\[type eq "work"].value** укажите тот же источник.

    Для SCIM необходимо, чтобы значения совпадали: это обеспечивает согласованность подготовки пользователей с SSO. Если **UserName** и **emails\[type eq "work"].value** не совпадают, пользователи могут синхронизироваться или сопоставляться некорректно.

11. Нажмите **Save**.

Теперь можно назначать пользователей вашему приложению SCIM в Entra ID!

## Назначение пользователей приложению SCIM

Ниже описано, как назначить пользователей и группы приложению SCIM. Дополнительные сведения см. в [официальной инструкции Microsoft по назначению пользователей или групп корпоративному приложению в Entra ID](https://learn.microsoft.com/en-us/azure/databricks/admin/users-groups/scim/aad#step-3-assign-users-and-groups-to-the-application). Хотя статья написана для Databricks, шаги полностью совпадают.

1. Перейдите в Enterprise applications и выберите приложение SCIM.

2. Перейдите в **Manage** > **Provisioning**.

3. Чтобы синхронизировать пользователей и группы Microsoft Entra ID с dbt, нажмите **Start provisioning**.

   [![Запустите подготовку для синхронизации пользователей и групп.](/img/docs/dbt-platform/dbt-platform-enterprise/access-control/scim-entraid-start-provision.png?v=2 "Запустите подготовку для синхронизации пользователей и групп.")](#)Запустите подготовку для синхронизации пользователей и групп.

4. Вернитесь на страницу обзора приложения SCIM и перейдите в **Manage** > **Users and groups**.

5. Нажмите **Add user/group** и выберите пользователей и группы.

   [![Добавление пользователя или группы.](/img/docs/dbt-platform/dbt-platform-enterprise/access-control/scim-entraid-add-users.png?v=2 "Добавление пользователя или группы.")](#)Добавление пользователя или группы.

6. Нажмите кнопку **Assign**.

7. Подождите несколько минут. В dbt platform убедитесь, что пользователи и группы появились в вашем аккаунте dbt.

   * Пользователи и группы, которых вы добавляете и назначаете, будут автоматически созданы в вашем аккаунте dbt во время следующей запланированной синхронизации Microsoft Entra ID.
   * При включении подготовки сразу запускается первоначальная синхронизация Microsoft Entra ID. Последующие синхронизации запускаются каждые 20–40 минут в зависимости от количества пользователей и групп в приложении. Дополнительные сведения см. в документации Microsoft Entra ID [Советы по подготовке](https://learn.microsoft.com/en-us/azure/databricks/admin/users-groups/scim/aad#provisioning-tips).
   * Вы также можете запустить подготовку вручную вне расписания, нажав **Restart provisioning**.

   [![Запуск подготовки вручную.](/img/docs/dbt-platform/dbt-platform-enterprise/access-control/scim-entraid-manual.png?v=2 "Запуск подготовки вручную.")](#)Запуск подготовки вручную.

## Назначение наборов разрешений группам SCIM

SCIM синхронизирует группы и состав их участников с dbt platform, но не назначает [наборы разрешений](https://docs.getdbt.tech/docs/platform/manage-access/enterprise-permissions.md). Без набора разрешений участники группы не получат доступа к функциям за пределами своего профиля пользователя.

1. После синхронизации перейдите в **Account settings** → **Groups & Licenses**, где автоматически появится группа SCIM.
2. Откройте группу, синхронизированную через SCIM. Не создавайте ещё одну группу для той же группы IdP, поскольку это приведёт к появлению дубликата.
3. В разделе **Access & permissions** нажмите **Add permission**.
4. Выберите [набор разрешений](https://docs.getdbt.tech/docs/platform/manage-access/enterprise-permissions.md), проекты, к которым он должен применяться, и, если применимо, [доступ на уровне окружения](https://docs.getdbt.tech/docs/platform/manage-access/environment-permissions.md).
5. Нажмите **Save**.

Повторите эти действия для каждой группы, синхронизированной через SCIM, которой требуется доступ.

## Часто задаваемые вопросы и устранение неполадок

Ответы на распространённые вопросы о подготовке через SCIM с Entra ID, включая процессы подключения пользователей, сопоставление атрибутов, проблемы со списками разрешённых IP-адресов и устранение неполадок, см. в разделе [Часто задаваемые вопросы о SCIM и устранение неполадок](https://docs.getdbt.tech/docs/platform/manage-access/scim-faq.md).
