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

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

Тарифные планы уровня Enterprise в dbt поддерживают единый вход через Microsoft Entra ID (ранее Azure AD).

SCIM доступен для Entra ID

После настройки единого входа (SSO) вы можете [настроить System for Cross-Domain Identity Management (SCIM)](https://docs.getdbt.tech/docs/platform/manage-access/scim-entra-id.md) с Entra ID, чтобы автоматизировать создание и управление пользователями и группами.

В настоящее время поддерживаются следующие возможности SSO:

* SSO, инициируемый поставщиком удостоверений (IdP)
* SSO, инициируемый поставщиком услуг (SP)
* Создание пользователей при первом входе (Just-in-time provisioning)

## Конфигурация

dbt поддерживает как однотенантные, так и мультитенантные подключения SSO Microsoft Entra ID (ранее Azure AD). Для большинства корпоративных сценариев при создании приложения Microsoft Entra ID рекомендуется использовать однотенантный вариант.

### Создание приложения

Войдите на портал Azure вашей организации. На странице [**Microsoft Entra ID**](https://portal.azure.com/#home) выберите нужный каталог, а затем зарегистрируйте новое приложение.

1. В разделе **Manage** выберите **App registrations**.
2. Нажмите **+ New Registration**, чтобы начать регистрацию нового приложения.

[![Создание новой регистрации приложения](/img/docs/dbt-platform/dbt-platform-enterprise/azure/azure-app-registration-empty.png?v=2 "Создание новой регистрации приложения")](#)Создание новой регистрации приложения

3. Задайте настройки для полей **Name** и **Supported account types**. Выберите значение **Supported account types** в зависимости от того, каким тенантам вы хотите разрешить доступ, и запишите соответствующее значение **Microsoft Entra ID Domain**, которое понадобится позже при [указании учетных данных](#supplying-credentials) в dbt:

| Потребность клиента                                                                        | Supported account types (Azure)                                          | Значение для поля Microsoft Entra ID Domain в dbt |
| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------- |
| Только один тенант *(по умолчанию, рекомендуется для большинства корпоративных сценариев)* | Accounts in this organizational directory only                           | Основное доменное имя вашего каталога Azure       |
| Несколько определенных тенантов Entra ID                                                   | Accounts in organizational directories set by Entra admin                | `organizations`                                   |
| Любой тенант организации и личные учетные записи Microsoft                                 | Accounts in any organizational directory and personal Microsoft accounts | `common`                                          |
| Только личные учетные записи Microsoft                                                     | Personal Microsoft accounts only                                         | `consumers`                                       |

4. (Необязательно) Чтобы обеспечить корректную работу мультитенантной конфигурации, помимо выбора «Multi-tenant» в настройках учетной записи Azure, необходимо внести два важных изменения:

   * Обновите Microsoft Entra ID Domain: в поле «Microsoft Entra ID Domain:» в dbt введите соответствующую строку центра авторизации (`organizations`, `common` или `consumers`), а не доменное имя вашего каталога Azure. Подробнее см. в разделе [Указание учетных данных](#supplying-credentials).
   * Предоставьте согласие администратора для каждого тенанта: поскольку это требование Entra (ранее Azure AD), администратор каждого отдельного тенанта должен предоставить согласие. Если пользователи из других тенантов попытаются войти до выполнения этого действия, они увидят экран «admin approval required». Администратор может решить эту проблему, перейдя по специальному URL-адресу согласия, предоставленному Microsoft для его тенанта (например, `https://login.microsoftonline.com/{TENANT_ID}/adminconsent?client_id={CLIENT_ID}`).

5. Настройте **Redirect URI**. Установите тип **Web** и используйте таблицу ниже, чтобы выбрать подходящие значения Redirect URI для однотенантных и мультитенантных развертываний приложения Entra ID. Для большинства корпоративных сценариев рекомендуется использовать однотенантный Redirect URI. Замените `YOUR_AUTH0_URI` на [соответствующий URI Auth0](https://docs.getdbt.tech/docs/platform/manage-access/sso-overview.md#auth0-uris) для вашего региона и тарифного плана.

**Примечание:** Тип тенантности вашей платформы dbt не влияет на эту настройку. Эта настройка приложения Entra ID определяет доступ к приложению:

* **Однотенантное:** доступ к приложению могут получить только пользователи вашего тенанта Entra ID.
* **Мультитенантное:** доступ к приложению могут получить пользователи *любого* тенанта Entra ID.

| Тип приложения                  | Redirect URI                            |
| ------------------------------- | --------------------------------------- |
| Однотенантное *(рекомендуется)* | `https://YOUR_AUTH0_URI/login/callback` |
| Мультитенантное                 | `https://YOUR_AUTH0_URI/login/callback` |

[![Настройка новой регистрации приложения](/img/docs/dbt-platform/dbt-platform-enterprise/azure/azure-new-application-alternative.png?v=2 "Настройка новой регистрации приложения")](#)Настройка новой регистрации приложения

6. Сохраните регистрацию приложения, чтобы продолжить настройку SSO Microsoft Entra ID.

Настройка в новом интерфейсе Microsoft Entra ID (необязательно)

В зависимости от настроек Microsoft Entra ID страница регистрации приложения может отличаться от приведенных выше снимков экрана. Если на странице **New Registration** вам *не* предлагается настроить Redirect URI, выполните шаги 7–8 ниже после создания регистрации приложения. Если вы уже настроили Redirect URI на предыдущих шагах, перейдите к [шагу 8](#adding-users-to-an-enterprise-application).

7. После регистрации нового приложения без указания Redirect URI нажмите **App registration**, а затем перейдите на вкладку **Authentication** нового приложения.

8. Нажмите **+ Add platform** и введите Redirect URI для вашего приложения. Дополнительные сведения о правильном значении Redirect URI для приложения dbt см. в шаге 4 выше.

   Тип платформы

   При выборе типа платформы укажите **Web**, а не **Single-page application (SPA)**. Интеграция SSO dbt обменивает код авторизации на токен с сервера, используя секрет клиента. Поэтому, если добавить **Redirect URI** в разделе **SPA**, Entra ID потребует PKCE и отклонит обмен кода на токен на стороне сервера, что приведет к сбою входа с ошибкой `AADSTS9002325: Proof Key for Code Exchange is required for cross-origin authorization code redemption.`

[![Настройка Redirect URI](/img/docs/dbt-platform/dbt-platform-enterprise/azure/azure-redirect-uri.png?v=2 "Настройка Redirect URI")](#)Настройка Redirect URI

### Сопоставление пользователей и групп Azure <-> dbt

к сведению

Существует [ограничение](https://learn.microsoft.com/en-us/entra/identity/hybrid/connect/how-to-connect-fed-group-claims#important-caveats-for-this-functionality) на количество групп, передаваемых Azure через токен SSO (не более 150). Это означает, что если пользователь состоит более чем в 150 группах, будет казаться, что он не состоит ни в одной. Чтобы избежать этого, настройте [назначения групп](https://learn.microsoft.com/en-us/entra/identity/enterprise-apps/assign-user-or-group-access-portal?pivots=portal) для приложения dbt в Azure и задайте [утверждение о группах](https://learn.microsoft.com/en-us/entra/identity/hybrid/connect/how-to-connect-fed-group-claims#add-group-claims-to-tokens-for-saml-applications-using-sso-configuration), чтобы Azure передавал только соответствующие группы.

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

dbt platform использует **User principal name** (UPN) в Microsoft Entra ID для идентификации и сопоставления пользователей, входящих в dbt через SSO. UPN обычно имеет формат адреса электронной почты.

### Добавление пользователей в корпоративное приложение

После регистрации приложения необходимо назначить ему пользователей. Добавьте пользователей, которые должны быть доступны в dbt, выполнив следующие шаги:

8. Вернитесь в [**Default Directory**](https://portal.azure.com/#home) (или **Home**) и нажмите **Enterprise Applications**.
9. Нажмите имя приложения, созданного ранее.
10. Нажмите **Assign Users and Groups**.
11. Нажмите **Add User/Group**.
12. При необходимости назначьте дополнительных пользователей и группы.

[![Добавление пользователей в корпоративное приложение и настройка Redirect URI](/img/docs/dbt-platform/dbt-platform-enterprise/azure/azure-enterprise-app-users.png?v=2 "Добавление пользователей в корпоративное приложение и настройка Redirect URI")](#)Добавление пользователей в корпоративное приложение и настройка Redirect URI

Требуется назначение пользователей?

В разделе **Properties** проверьте положение переключателя **User assignment required?** и убедитесь, что оно соответствует вашим требованиям. Большинству клиентов рекомендуется установить значение **Yes**, чтобы входить могли только пользователи и группы, явно назначенные приложению dbt. Если установлено значение **No**, любой пользователь сможет получить доступ к приложению по прямой ссылке, как указано в [документации Microsoft Entra ID](https://docs.microsoft.com/en-us/azure/active-directory/manage-apps/assign-user-or-group-access-portal#configure-an-application-to-require-user-assignment).

### Настройка разрешений

13. Вернитесь в [**Default Directory**](https://portal.azure.com/#home) (или **Home**), а затем в **App registration**.
14. Выберите свое приложение, затем выберите **API permissions**.
15. Нажмите **+Add a permission** и добавьте разрешения, указанные в следующей таблице:

| Имя API         | Тип       | Разрешение             | Обязательно?                                                                           |
| --------------- | --------- | ---------------------- | -------------------------------------------------------------------------------------- |
| Microsoft Graph | Delegated | `User.Read`            | Да                                                                                     |
| Microsoft Graph | Delegated | `GroupMember.Read.All` | Да                                                                                     |
| Microsoft Graph | Delegated | `Directory.Read.All`   | Необязательно — может потребоваться, если пользователи назначены более чем 200 группам |

Для области доступа по умолчанию требуются только `User.Read` и `GroupMember.Read.All`. Если вы назначаете пользователя более чем 200 группам, может потребоваться предоставить дополнительные разрешения, например `Directory.Read.All`.

SSO, настроенный до декабря 2025 года

Если вы настроили SSO до декабря 2025 года, существующая конфигурация может запрашивать `Directory.Read.All` вместо `GroupMember.Read.All`. Чтобы использовать обновленные области доступа, удалите и заново создайте [конфигурацию](#configuring-permissions) SSO.

16. Сохраните эти разрешения, затем нажмите **Grant admin consent**, чтобы предоставить согласие администратора для этого каталога от имени всех ваших пользователей.

[![Настройка разрешений приложения](/img/docs/dbt-platform/dbt-platform-enterprise/azure/azure-permissions-overview.png?v=2 "Настройка разрешений приложения")](#)Настройка разрешений приложения

### Создание секрета клиента

17. В разделе **Manage** нажмите **Certificates & secrets**.
18. Нажмите **+New client secret**.
19. Назовите секрет клиента "dbt" (или аналогичным образом), чтобы его можно было идентифицировать.
20. Выберите **730 days (24 months)** в качестве срока действия этого секрета (рекомендуется).
21. Нажмите **Add**, чтобы завершить создание значения секрета клиента (не идентификатора секрета клиента).
22. Сохраните сгенерированный секрет клиента в надежном месте. Позже в процессе настройки мы используем этот секрет клиента в dbt, чтобы завершить настройку интеграции.

[![Настройка сертификатов и секретов](/img/docs/dbt-platform/dbt-platform-enterprise/azure/azure-secret-config.png?v=2 "Настройка сертификатов и секретов")](#)Настройка сертификатов и секретов

[![Сохранение секрета клиента](/img/docs/dbt-platform/dbt-platform-enterprise/azure/azure-secret-saved.png?v=2 "Сохранение секрета клиента")](#)Сохранение секрета клиента

### Получение учетных данных клиента

23. Перейдите на страницу **Overview** регистрации приложения.
24. Найдите **Application (client) ID** и **Directory (tenant) ID**, показанные в этой форме, и сохраните их вместе с секретом клиента. Мы используем эти ключи на следующих шагах, чтобы завершить настройку интеграции в dbt.

[![Получение учетных данных. Сохраните их в надежном месте](/img/docs/dbt-platform/dbt-platform-enterprise/azure/azure-overview.png?v=2 "Получение учетных данных. Сохраните их в надежном месте")](#)Получение учетных данных. Сохраните их в надежном месте

## Настройка dbt

Чтобы завершить настройку, выполните следующие шаги в приложении dbt.

### Указание учетных данных

Чтобы заполнить этот раздел, вам понадобится слаг URL для входа. Этот слаг определяет URL-адрес, по которому пользователи вашей учетной записи могут входить в приложение. dbt автоматически генерирует слаги URL для входа, и изменить их нельзя. Слаг содержит только буквы, цифры и дефисы. Например, слаг URL для входа для dbt Labs может выглядеть так: `dbt-labs-afk123`. Слаги URL для входа уникальны среди всех учетных записей dbt.

Пользователи также могут войти через <https://login.dbt.com>, чтобы увидеть учетные записи, к которым у них есть доступ в разных экземплярах. Корпоративный URL для входа, содержащий ваш слаг, по-прежнему используется для сценариев единого входа (SSO), инициируемых вашим поставщиком удостоверений (IdP).

25. В dbt нажмите имя своего аккаунта в меню слева и выберите **Account settings**.
26. Выберите **SSO & SCIM** в меню.
27. Нажмите **Get started**, если SSO еще не настроен, или **Edit**, если он уже настроен.
28. Укажите следующие данные SSO:

| Поле                          | Значение                                                                                                                                                                                                                                                                                                                                                                                                      |
| ----------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Log in with**               | Microsoft Entra ID Single Tenant или Microsoft Entra ID Multi Tenant, если вы выбрали мультитенантное значение **Supported account types**                                                                                                                                                                                                                                                                    |
| **Client ID**                 | Вставьте **Application (client) ID**, сохраненный на предыдущих шагах                                                                                                                                                                                                                                                                                                                                         |
| **Client Secret**             | Вставьте **Client Secret** из предыдущих шагов (не забудьте использовать Secret Value, а не Secret ID);<br />**Примечание:** Когда срок действия секрета клиента истечет, администратору Entra ID потребуется сгенерировать новый секрет и вставить его в dbt, чтобы обеспечить непрерывный доступ к приложению.                                                                                              |
| **Tenant ID**                 | Вставьте **Directory (tenant) ID**, сохраненный на предыдущих шагах. (Это поле отображается только при выборе **Microsoft Entra ID Single Tenant**; для мультитенантной конфигурации оно не требуется.)                                                                                                                                                                                                       |
| **Microsoft Entra ID Domain** | Для однотенантной конфигурации введите доменное имя вашего каталога Azure (например, `fishtownanalytics.com`). Используйте только основной домен; это не заблокирует доступ для других доменов. Для мультитенантной конфигурации вместо этого введите соответствующую строку центра авторизации (`organizations`, `common` или `consumers`). См. [таблицу Supported account types](#creating-an-application). |

[![Настройка SSO Entra ID AD в dbt](/img/docs/dbt-platform/dbt-platform-enterprise/azure/azure-cloud-sso.png?v=2 "Настройка SSO Entra ID AD в dbt")](#)Настройка SSO Entra ID AD в dbt

29. Нажмите **Save**, чтобы завершить настройку интеграции SSO Microsoft Entra ID. После этого вы можете перейти по URL-адресу входа, сгенерированному для *slug* вашего аккаунта, и проверить вход через Entra ID.

Вход в систему

Пользователи могут войти в систему по адресу <https://login.dbt.com>, чтобы просмотреть аккаунты, к которым у них есть доступ в разных экземплярах, и выбрать, где открыть dbt platform. Это рекомендуемая точка входа для большинства пользователей.

Для единого входа (SSO) через вашего поставщика удостоверений также можно использовать следующий формат URL со слагом URL входа в ваш аккаунт. Замените `LOGIN_SLUG` значением из предыдущих шагов, а `YOUR_ACCESS_URL` — [соответствующим URL доступа](https://docs.getdbt.tech/docs/platform/about-platform/access-regions-ip-addresses.md) для вашего региона и тарифного плана:

`https://YOUR_ACCESS_URL/enterprise-login/LOGIN-SLUG`

Администраторы аккаунта могут включать и отключать обнаружение аккаунта с помощью параметра **Enable global account discovery** в разделе [настроек аккаунта](https://docs.getdbt.tech/docs/platform/account-settings.md#enable-global-account-discovery).

### Дополнительные параметры конфигурации

Раздел **Single sign-on** также содержит дополнительные параметры конфигурации, расположенные после полей учетных данных.

* **Include all groups:** Получать от поставщика удостоверений все группы, в которые входит пользователь. Если пользователь является участником вложенных групп, будут также включены родительские группы. Когда этот параметр отключен, передаются только группы, непосредственным участником которых является пользователь. По умолчанию этот параметр включен.

* **Maximum number of groups to retrieve:** Позволяет настроить ограничение на количество групп, получаемых для пользователей. По умолчанию установлено значение 250 групп, но его можно увеличить, если пользователи состоят в большем количестве групп.

## Настройка RBAC

Теперь, когда настройка SSO с Entra ID завершена, следующим шагом будет настройка [групп RBAC](https://docs.getdbt.tech/docs/platform/manage-access/enterprise-permissions.md) для завершения конфигурации управления доступом.

Настройте SCIM

Теперь, когда вы настроили SSO с Entra ID, вы можете [настроить SCIM](https://docs.getdbt.tech/docs/platform/manage-access/scim-entra-id.md), чтобы автоматизировать создание и управление пользователями и группами.

## Советы по устранению неполадок

 Возникает ошибка 'AADSTS90094: Admin consent is required'

Если вы настроили SSO до декабря 2025 года, существующая конфигурация может запрашивать `Directory.Read.All` вместо `GroupMember.Read.All`. Чтобы использовать обновленные области доступа, удалите и заново создайте [конфигурацию](#configuring-permissions) SSO.

 Несоответствие доменного имени

Убедитесь, что доменное имя, к которому относятся учетные записи пользователей в Azure, совпадает с доменом, указанным в разделе [Указание учетных данных](#supplying-credentials) при настройке SSO.

[![Получение домена пользователя из Azure](/img/docs/dbt-platform/dbt-platform-enterprise/azure/azure-get-domain.png?v=2 "Получение домена пользователя из Azure")](#)Получение домена пользователя из Azure

 После входа появляется сообщение 'Server error'

После завершения процедуры входа в Entra ID вы перенаправляетесь обратно на страницу входа dbt platform и видите следующее сообщение:

```text
Server error! There was a server error. Please try again, or contact support@getdbt.com if this persists.
```

Обычно это происходит, когда Microsoft Entra ID не может найти сертификат подписи SAML, настроенный для приложения. Исходная ошибка (`AADSTS500031: Cannot find signing certificate configured`) пользователю не отображается.

Чтобы убедиться, что причина именно в этом:

1. Откройте в Entra ID **Enterprise Applications → YOUR\_APP → Sign-in logs**.
2. Отфильтруйте записи по статусу **Failure**.
3. Если вы видите там ошибку `AADSTS500031`, устраните ее, перейдя в **Enterprise Applications → YOUR\_APP → Single sign-on → SAML Signing Certificate**, и добавьте отсутствующий сертификат.
4. Если сертификат существует, но поврежден, создайте новый сертификат, задайте срок действия, отметьте его как **Active**, чтобы заменить существующий, а затем удалите неиспользуемый сертификат.

Дополнительные сведения об устранении неполадок — включая запросы «Admin consent required» для новых пользователей, сообщение «Access Denied» после аутентификации SAML и проблемы при изменении Entity ID или ACS URL — см. в разделе [Часто задаваемые вопросы о SSO и устранение неполадок](https://docs.getdbt.tech/docs/platform/manage-access/sso-faq.md).

## Узнайте больше из видео

В следующем видео объясняется, как настроить SSO с Microsoft Entra ID:

[](/img/docs/dbt-platform/dbt-platform-enterprise/access-control/sso-dbt-entra-id.mp4)
