# Настройка SSO с помощью SAML 2.0

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

Тарифные планы dbt уровня Enterprise поддерживают единый вход (SSO) через любого поставщика удостоверений (IdP), совместимого с SAML 2.0. В настоящее время поддерживаются следующие возможности:

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

В этом документе подробно описаны шаги интеграции dbt с поставщиком удостоверений для настройки единого входа и [управления доступом на основе ролей](https://docs.getdbt.tech/docs/platform/manage-access/about-user-access.md#role-based-access-control-).

## URI Auth0

URI для SSO зависит от региона размещения dbt. Чтобы найти URI Auth0 для вашего окружения (в интерфейсе он может называться **Single sign-on URL**, **Authorization URL** или **Callback URI**), выполните следующие шаги:

1. Перейдите в **Account settings** и нажмите **SSO & SCIM** в меню слева.

2. На панели **Single sign-on** нажмите **Get started** (если SSO ещё не настроен) или **Edit** (если он уже настроен).

3. Выберите подходящего поставщика удостоверений (**Identity provider**) в раскрывающемся списке **Provider type**.

4. URI Auth0 отображается в разделе **Identity provider values**. Название поля зависит от выбранного поставщика:

   | Поставщик удостоверений | Название поля               | Пример URI                                                      |
   | ----------------------- | --------------------------- | --------------------------------------------------------------- |
   | SAML 2.0                | **Single sign-on URL**      | `https://YOUR_AUTH0_URI/login/callback`                         |
   | Okta                    | **Single sign-on URL**      | `https://YOUR_AUTH0_URI/login/callback?connection=ACCOUNT_NAME` |
   | Google Workspace        | **Authorized Redirect URI** | `https://YOUR_AUTH0_URI/login/callback`                         |
   | Microsoft Entra ID      | **Callback URI**            | `https://YOUR_AUTH0_URI/login/callback`                         |

   *Замените `YOUR_AUTH0_URI` и `ACCOUNT_NAME` значениями вашей учётной записи.*

[![Пример значений поставщика удостоверений для SAML 2.0](/img/docs/dbt-platform/access-control/sso-uri.png?v=2 "Пример значений поставщика удостоверений для SAML 2.0")](#)Пример значений поставщика удостоверений для SAML 2.0

URI Auth0

URI Auth0 всегда содержит YOUR\_AUTH0\_URI (например, auth.cloud.getdbt.com), а не URL с префиксом вашей учётной записи (например, ks123.us1.dbt.com). Это связано с тем, что dbt использует Auth0 как централизованный сервис аутентификации для всех регионов и учётных записей. Заменять это значение URL-адресом вашей ячейки (cell) не нужно.

## Универсальные интеграции SAML 2.0

Если ваш SAML‑провайдер идентификации — Okta, Google, Azure или OneLogin, перейдите к соответствующему разделу ниже на этой странице. Для всех остальных SAML‑совместимых провайдеров идентификации вы можете использовать инструкции из этого раздела для их настройки.

### Настройка провайдера идентификации

Для настройки провайдера идентификации вам потребуется доступ администратора к вашему SAML 2.0‑совместимому IdP. Эти инструкции можно использовать с любым провайдером идентификации, поддерживающим SAML 2.0.

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

1. Войдите в ваш SAML 2.0 провайдер идентификации и создайте новое приложение.

2. При появлении запроса настройте приложение со следующими параметрами:

   * **Platform:** Web
   * **Sign on method:** SAML 2.0

* **Название приложения:** dbt
  * **Логотип приложения (необязательно):** При желании вы можете [скачать логотип dbt](https://drive.google.com/file/d/1fnsWHRu2a_UkJBJgkZtqt99x5bSyf3Aw/view?usp=sharing) и использовать его в качестве логотипа этого приложения.

#### Настройка приложения

В следующих шагах используются `YOUR_AUTH0_URI` и `YOUR_AUTH0_ENTITYID`. Замените эти заполнители на [соответствующие Auth0 URI и Auth0 Entity ID](https://docs.getdbt.tech/docs/platform/manage-access/sso-overview.md#auth0-uris) для вашего региона. Эти значения можно найти в разделе **Account settings** > **SSO & SCIM** > **Edit** или **Get started** после выбора поставщика удостоверений.

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

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

Когда система запросит параметры конфигурации приложения SAML 2.0, укажите следующие значения:

* Single sign on URL: `https://YOUR_AUTH0_URI/login/callback?connection=<login URL slug>`
* Audience URI (SP Entity ID): `urn:auth0:<YOUR_AUTH0_ENTITYID>:{login URL slug}`

- Relay State: `<login URL slug>` (Примечание: в настройках IdP параметр Relay State может быть указан как необязательный; для настройки SSO в dbt он *обязателен*.)

Кроме того, вы можете настроить атрибуты IdP, передаваемые от вашего поставщика удостоверений в dbt. Для [настройки SCIM](https://docs.getdbt.tech/docs/platform/manage-access/scim.md) требуются `NameID` и `email`, чтобы связывать входы в систему с нужным пользователем. Если вы используете сопоставление лицензий для групп, необходимо дополнительно настроить атрибут `groups`. Рекомендуем использовать следующие значения:

Дополнительно вы можете настроить атрибуты IdP, которые будут передаваться из вашего провайдера идентификации в . Для [настройки SCIM](https://docs.getdbt.tech/docs/platform/manage-access/scim.md) требуются атрибуты `NameID` и `email`, чтобы связать входы с корректным пользователем. Если вы используете сопоставление лицензий для групп, необходимо дополнительно настроить атрибут `groups`. Мы рекомендуем использовать следующие значения:

| name        | name format | value            | description                             |
| ----------- | ----------- | ---------------- | --------------------------------------- |
| email       | Unspecified | user.email       | Адрес электронной почты пользователя    |
| first\_name | Unspecified | user.first\_name | Имя пользователя                        |
| last\_name  | Unspecified | user.last\_name  | Фамилия пользователя                    |
| NameID      | Unspecified | ID               | Неизменяемый идентификатор пользователя |

Значения `NameID` могут быть постоянными (`urn:oasis:names:tc:SAML:2.0:nameid-format:persistent`), а не неопределёнными, если ваш IdP поддерживает такие значения. Использование адреса электронной почты в качестве `NameID` допустимо, но при изменении этого адреса dbt создаёт совершенно нового пользователя. Рекомендуется настроить значение, которое не будет меняться даже при изменении адреса электронной почты пользователя.

[Управление доступом на основе ролей](https://docs.getdbt.tech/docs/platform/manage-access/about-user-access.md#role-based-access-control-) в dbt использует сопоставления групп из IdP для назначения пользователей dbt группам dbt. Чтобы использовать управление доступом на основе ролей в dbt, также настройте своего поставщика удостоверений так, чтобы он передавал сведения о членстве в группах в атрибуте пользователя с именем `groups`:

| name   | name format | value            | description                                      |
| ------ | ----------- | ---------------- | ------------------------------------------------ |
| groups | Unspecified | `<IdP-specific>` | Группы, к которым принадлежит пользователь в IdP |

Примечание

Вы можете использовать атрибут групп с ограничением (group attribute statement), чтобы ограничить набор групп, передаваемых в dbt для каждого аутентифицированного пользователя. Например, если названия всех ваших групп dbt начинаются с `DBT_CLOUD_...`, вы можете при необходимости применить фильтр вида `Starts With: DBT_CLOUD_`.

### Сбор секретов интеграции

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

* Identity Provider Issuer

* Identity Provider SSO Url

* X.509 Certificate (требуется формат PEM)

  *  Пример формата PEM

    ```text
    -----BEGIN CERTIFICATE-----
    MIIC8DCCAdigAwIBAgIQSANTIKwxA1221kqhkiG9w0dbtLabsBAQsFADA0MTIwMAYDVQQD
    EylNaWNyb3NvZnQgQXp1cmUgRmVkZXJhdGVkIFNTTyBDZXJ0aWZpY2F0ZTAeFw0yMzEyMjIwMDU1
    MDNaFw0yNjEyMjIwMDU1MDNaMDQxMjAwBgNVBAMTKU1pY3Jvc29mdCBBenVyZSBGZWRlcmF0ZWQg
    U1NPIENlcnRpZmljYXRlMIIBIjANBgkqhkiG9w0BAEFAAFRANKIEMIIBCgKCAQEAqfXQGc/D8ofK
    aXbPXftPotqYLEQtvqMymgvhFuUm+bQ9YSpS1zwNQ9D9hWVmcqis6gO/VFw61e0lFnsOuyx+XMKL
    rJjAIsuWORavFqzKFnAz7hsPrDw5lkNZaO4T7tKs+E8N/Qm4kUp5omZv/UjRxN0XaD+o5iJJKPSZ
    PBUDo22m+306DE6ZE8wqxT4jTq4g0uXEitD2ZyKaD6WoPRETZELSl5oiCB47Pgn/mpqae9o0Q2aQ
    LP9zosNZ07IjKkIfyFKMP7xHwzrl5a60y0rSIYS/edqwEhkpzaz0f8QW5pws668CpZ1AVgfP9TtD
    Y1EuxBSDQoY5TLR8++2eH4te0QIDAQABMA0GCSqGSIb3DmAKINgAA4IBAQCEts9ujwaokRGfdtgH
    76kGrRHiFVWTyWdcpl1dNDvGhUtCRsTC76qwvCcPnDEFBebVimE0ik4oSwwQJALExriSvxtcNW1b
    qvnY52duXeZ1CSfwHkHkQLyWBANv8ZCkgtcSWnoHELLOWORLD4aSrAAY2s5hP3ukWdV9zQscUw2b
    GwN0/bTxxQgA2NLZzFuHSnkuRX5dbtrun21USPTHMGmFFYBqZqwePZXTcyxp64f3Mtj3g327r/qZ
    squyPSq5BrF4ivguYoTcGg4SCP7qfiNRFyBUTTERFLYU0n46MuPmVC7vXTsPRQtNRTpJj/b2gGLk
    1RcPb1JosS1ct5Mtjs41
    -----END CERTIFICATE-----
    ```

### Завершение настройки

После создания приложения следуйте инструкциям в разделе [Настройка dbt](#dbt-setup), чтобы завершить интеграцию.

## Интеграция с Okta

Используйте инструкции из этого раздела для настройки Okta в качестве провайдера идентификации.

1. Войдите в свою учетную запись Okta. В административной панели создайте новое приложение.

[![Создать новое приложение](/img/docs/dbt-platform/dbt-platform-enterprise/okta/okta-1-new-app.png?v=2 "Создать новое приложение")](#)Создать новое приложение

2. Выберите следующие параметры:

   * **Platform**: Web
   * **Sign on method**: SAML 2.0

3. Нажмите **Create**, чтобы продолжить процесс настройки.

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

### Настройка приложения Okta

В следующих шагах используются `YOUR_AUTH0_URI` и `YOUR_AUTH0_ENTITYID`. Замените эти заполнители на [соответствующие Auth0 URI и Auth0 Entity ID](https://docs.getdbt.tech/docs/platform/manage-access/sso-overview.md#auth0-uris) для вашего региона. Эти значения можно найти в разделе **Account settings** > **SSO & SCIM** > **Edit** или **Get started** после выбора поставщика удостоверений.

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

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

1. На странице **General Settings** введите следующие данные:

* **Название приложения**: dbt
  * **Логотип приложения** (необязательно): При желании вы можете [скачать логотип dbt](https://drive.google.com/file/d/1fnsWHRu2a_UkJBJgkZtqt99x5bSyf3Aw/view?usp=sharing), и загрузить его в Okta, чтобы использовать в качестве логотипа этого приложения.

2. Нажмите **Next**, чтобы продолжить.

[![Настройте общие параметры приложения](/img/docs/dbt-platform/dbt-platform-enterprise/okta/okta-2-general-settings.png?v=2 "Настройте общие параметры приложения")](#)Настройте общие параметры приложения

### Настройка параметров SAML

1. На странице **SAML Settings** укажите следующие значения:

   * **Single sign on URL**: `https://YOUR_AUTH0_URI/login/callback?connection=<login URL slug>`
   * **Audience URI (SP Entity ID)**: `urn:auth0:<YOUR_AUTH0_ENTITYID>:<login URL slug>`
   * **Relay State**: `<login URL slug>`
   * **Name ID format**: `Unspecified`
   * **Application username**: `Custom` / `user.getInternalProperty("id")`
   * **Update Application username on**: `Create and update`

[![Настройка параметров SAML приложения](/img/docs/dbt-platform/dbt-platform-enterprise/okta/okta-3-saml-settings-top.png?v=2 "Настройка параметров SAML приложения")](#)Настройка параметров SAML приложения

2. Сопоставьте атрибуты пользователей и групп вашей организации в Okta с форматом, который ожидает dbt, с помощью форм Attribute Statements и Group Attribute Statements. Для [настройки SCIM](https://docs.getdbt.tech/docs/platform/manage-access/scim.md) требуется атрибут `email`, чтобы связывать входы в систему с соответствующим пользователем. Если вы используете сопоставление лицензий для групп, необходимо дополнительно настроить атрибут `groups`.

3. Следующая таблица иллюстрирует ожидаемые **User Attribute Statements**:

   | Name         | Name format | Value            | Description                            |
   | ------------ | ----------- | ---------------- | -------------------------------------- |
   | `email`      | Unspecified | `user.email`     | *Адрес электронной почты пользователя* |
   | `first_name` | Unspecified | `user.firstName` | *Имя пользователя*                     |
   | `last_name`  | Unspecified | `user.lastName`  | *Фамилия пользователя*                 |

4. Следующая таблица иллюстрирует ожидаемые **Group Attribute Statements**:

   | Name     | Name format | Filter        | Value | Description                                  |
   | -------- | ----------- | ------------- | ----- | -------------------------------------------- |
   | `groups` | Unspecified | Matches regex | `.*`  | *Группы, к которым принадлежит пользователь* |

Вместо этого можно использовать более строгое правило передачи атрибутов групп (Group Attribute Statement), чем в примере из предыдущих шагов. Например, если названия всех ваших групп dbt начинаются с `DBT_CLOUD_`, можно использовать фильтр вида `Starts With: DBT_CLOUD_`. **Okta возвращает не более 100 групп для каждого пользователя, поэтому, если ваши пользователи входят более чем в 100 групп IdP, необходимо использовать более строгий фильтр**. Обратитесь в службу поддержки, если у вас возникнут вопросы.

[![Настройка правил передачи атрибутов пользователей и групп для приложения](/img/docs/dbt-platform/dbt-platform-enterprise/okta/okta-3-saml-settings-bottom.png?v=2 "Настройка правил передачи атрибутов пользователей и групп для приложения")](#)Настройка правил передачи атрибутов пользователей и групп для приложения

5. Нажмите **Next**, чтобы продолжить.

### Завершение настройки Okta

1. Выберите *I'm an Okta customer adding an internal app*.
2. Выберите *This is an internal app that we have created*.
3. Нажмите **Finish**, чтобы завершить настройку приложения.

[![Завершение настройки в Okta](/img/docs/dbt-platform/dbt-platform-enterprise/okta/okta-4-feedback.png?v=2 "Завершение настройки в Okta")](#)Завершение настройки в Okta

### Просмотр инструкций по настройке

1. На следующей странице нажмите **View Setup Instructions**.
2. На следующих шагах вы укажете эти значения в настройках аккаунта dbt, чтобы завершить интеграцию между Okta и dbt.

[![Просмотр настроенного приложения](/img/docs/dbt-platform/dbt-platform-enterprise/okta/okta-5-view-instructions.png?v=2 "Просмотр настроенного приложения")](#)Просмотр настроенного приложения

[![Инструкции по настройке приложения](/img/docs/dbt-platform/dbt-platform-enterprise/okta/okta-5-instructions.png?v=2 "Инструкции по настройке приложения")](#)Инструкции по настройке приложения

3. После создания приложения Okta следуйте инструкциям в разделе [Настройка dbt](#dbt-setup), чтобы завершить интеграцию.

## Интеграция с Google

Используйте этот раздел, если вы настраиваете Google в качестве провайдера идентификации.

### Настройка приложения Google

В следующих шагах используются `YOUR_AUTH0_URI` и `YOUR_AUTH0_ENTITYID`. Замените эти заполнители на [соответствующие Auth0 URI и Auth0 Entity ID](https://docs.getdbt.tech/docs/platform/manage-access/sso-overview.md#auth0-uris) для вашего региона. Эти значения можно найти в разделе **Account settings** > **SSO & SCIM** > **Edit** или **Get started** после выбора поставщика удостоверений.

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

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

1. Войдите в **Google Admin Console** под учетной записью с правами суперадминистратора.

2. На главной странице консоли администратора перейдите в **Apps**, затем нажмите **Web and mobile apps**.

3. Нажмите **Add**, затем выберите **Add custom SAML app**.

4. Нажмите **Next**, чтобы продолжить.

5. На странице App Details выполните следующие действия:

   * Задайте имя пользовательского приложения
   * Загрузите логотип приложения (optional)
   * Нажмите **Continue**.

### Настройка параметров SAML

1. Перейдите на страницу **Google Identity Provider details**.

2. Загрузите **IDP metadata**.

3. Скопируйте **SSO URL** и **Entity ID**, а также загрузите **Certificate** (или **SHA-256 fingerprint**, если требуется).

4. В окне **Service Provider Details** укажите следующие значения:

   * **ACS URL**: `https://YOUR_AUTH0_URI/login/callback?connection=<login URL slug>`
   * **Audience URI (SP Entity ID)**: `urn:auth0:<YOUR_AUTH0_ENTITYID>:<login URL slug>`

   - **Start URL**: `<login URL slug>`

5. Установите флажок **Signed response**.

6. По умолчанию в качестве **Name ID** используется основной адрес электронной почты. Ввод нескольких значений не поддерживается. Если в профиле пользователя есть уникальное, неизменное значение, которое сохранится при смене адреса электронной почты, лучше использовать его; в противном случае подойдет адрес электронной почты.

7. На странице **Attribute mapping** настройте сопоставление атрибутов Google Directory вашей организации с форматом, который ожидает dbt.

8. Нажмите **Add another mapping**, чтобы сопоставить дополнительные атрибуты.

Ожидаемые **Attributes**:

| Name            | Name format | Value        | Description                           |
| --------------- | ----------- | ------------ | ------------------------------------- |
| `First name`    | Unspecified | `first_name` | Имя пользователя.                     |
| `Last name`     | Unspecified | `last_name`  | Фамилия пользователя.                 |
| `Primary email` | Unspecified | `email`      | Адрес электронной почты пользователя. |

9. Чтобы использовать [управление доступом на основе ролей](https://docs.getdbt.tech/docs/platform/manage-access/about-user-access.md#role-based-access-control-) в dbt, укажите группы в поле **Group membership** при настройке:

| Google groups  | App attributes |
| -------------- | -------------- |
| Name of groups | `groups`       |

10. Нажмите **Finish**, чтобы продолжить.

### Завершение настройки Google

1. На главной странице консоли администратора перейдите в **Apps**, затем нажмите **Web and mobile apps**.
2. Выберите ваше SAML‑приложение.
3. Нажмите **User access**.
4. Чтобы включить или отключить сервис для всех пользователей организации, выберите **On for everyone** или **Off for everyone**, затем нажмите **Save**.
5. Убедитесь, что адреса электронной почты, которые пользователи используют для входа в SAML‑приложение, совпадают с адресами, используемыми для входа в домен Google.

**Примечание:** изменения обычно вступают в силу в течение нескольких минут, но в некоторых случаях могут занять до 24 часов.

### Завершение настройки

После создания приложения Google следуйте инструкциям в разделе [Настройка](#dbt-setup)

После создания приложения Google следуйте инструкциям в разделе [настройка dbt](#dbt-setup)

Если вы используете Microsoft Entra ID (ранее Azure AD), приведенные ниже инструкции помогут настроить его в качестве провайдера идентификации.

### Создание корпоративного приложения Microsoft Entra ID

В следующих шагах используются `YOUR_AUTH0_URI` и `YOUR_AUTH0_ENTITYID`. Замените эти заполнители на [соответствующие Auth0 URI и Auth0 Entity ID](https://docs.getdbt.tech/docs/platform/manage-access/sso-overview.md#auth0-uris) для вашего региона. Эти значения можно найти в разделе **Account settings** > **SSO & SCIM** > **Edit** или **Get started** после выбора поставщика удостоверений.

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

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

Выполните следующие действия, чтобы настроить единый вход (SSO) в dbt:

1. Войдите в свою учетную запись Azure.
2. На портале Entra ID выберите **Enterprise applications** и нажмите **+ New application**.
3. Выберите **Create your own application**.
4. Назовите приложение «dbt» или укажите другое понятное имя.
5. Выберите **Integrate any other application you don't find in the gallery (Non-gallery)** в качестве типа приложения.
6. Нажмите **Create**.
7. Чтобы найти новое приложение, нажмите **Enterprise applications** и выберите **All applications**.
8. Нажмите на только что созданное приложение.
9. В левом меню навигации в разделе Manage выберите **Single sign-on**.
10. Нажмите **Set up single sign on** в разделе Getting Started.

[![На странице обзора выберите «Set up single sign on»](/img/docs/dbt-platform/access-control/single-sign-on-overview.jpg?v=2 "На странице обзора выберите «Set up single sign on»")](#)На странице обзора выберите «Set up single sign on»

11. Нажмите **SAML** в разделе «Select a single sign-on method».

[![Выберите карточку «SAML» в разделе «Select a single sign-on method».](/img/docs/dbt-platform/access-control/saml.jpg?v=2 "Выберите карточку «SAML» в разделе «Select a single sign-on method».")](#)Выберите карточку «SAML» в разделе «Select a single sign-on method».

12. Нажмите **Edit** в разделе Basic SAML Configuration.

[![На странице «Настройка единого входа с помощью SAML» нажмите «Изменить» в карточке «Базовая конфигурация SAML»](/img/docs/dbt-platform/access-control/basic-saml.jpg?v=2 "На странице «Настройка единого входа с помощью SAML» нажмите «Изменить» в карточке «Базовая конфигурация SAML»")](#)На странице «Настройка единого входа с помощью SAML» нажмите «Изменить» в карточке «Базовая конфигурация SAML»

13. Используйте следующую таблицу для заполнения обязательных полей и подключения к dbt:

| Field                                          | Value                                                                            |
| ---------------------------------------------- | -------------------------------------------------------------------------------- |
| **Identifier (Entity ID)**                     | Используйте `urn:auth0:<YOUR_AUTH0_ENTITYID>:<login URL slug>`.                  |
| **Reply URL (Assertion Consumer Service URL)** | Используйте `https://YOUR_AUTH0_URI/login/callback?connection=<login URL slug>`. |
| **Relay State**                                | `<login URL slug>`                                                               |

14. Нажмите **Save** в верхней части формы.

### Создание параметров SAML

На странице Set up Single Sign-On with SAML:

1. Нажмите **Edit** в разделе User Attributes & Claims.

2. Выберите **Unique User Identifier (Name ID)** в разделе **Required claim.**

3. Установите **Name identifier format** в значение **Unspecified**.

4. Установите **Source attribute** в значение **user.objectid**.

5. Удалите все значения в разделе **Additional claims.**

6. Нажмите **Add new claim** и добавьте следующие утверждения:

   | Name            | Source attribute |
   | --------------- | ---------------- |
   | **email**       | user.mail        |
   | **first\_name** | user.givenname   |
   | **last\_name**  | user.surname     |

7. В разделе **User Attributes and Claims** нажмите **Add a group claim**.

8. Если вы назначаете пользователей напрямую корпоративному приложению, выберите **Security Groups**. В противном случае выберите **Groups assigned to the application**.

9. Установите **Source attribute** в значение **Group ID**.

10. В разделе **Advanced options** отметьте **Customize the name of the group claim** и задайте **Name** равным **groups**.

**Примечание:** имейте в виду, что Group ID в Entra ID сопоставляется с GUID группы. Для корректной работы сопоставлений он должен быть указан в нижнем регистре. Поле Source Attribute также может быть установлено в другое значение по вашему усмотрению.

### Завершение настройки

9. После создания приложения Azure следуйте инструкциям в разделе [Настройка dbt](#dbt-setup), чтобы завершить интеграцию. Названия полей в dbt отличаются от названий в приложении Entra ID. Они сопоставляются следующим образом:

   | Поле dbt                      | Соответствующее поле Entra ID |
   | ----------------------------- | ----------------------------- |
   | **Identity Provider SSO URL** | Login URL                     |
   | **Identity Provider Issuer**  | Microsoft Entra Identifier    |

## Интеграция с OneLogin

Используйте этот раздел, если вы настраиваете OneLogin в качестве провайдера идентификации.

Для настройки OneLogin вам потребуется доступ **Administrator**.

### Настройка приложения OneLogin

В следующих шагах используются `YOUR_AUTH0_URI` и `YOUR_AUTH0_ENTITYID`. Замените эти заполнители на [соответствующие Auth0 URI и Auth0 Entity ID](https://docs.getdbt.tech/docs/platform/manage-access/sso-overview.md#auth0-uris) для вашего региона. Эти значения можно найти в разделе **Account settings** > **SSO & SCIM** > **Edit** или **Get started** после выбора поставщика удостоверений.

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

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

1. Войдите в OneLogin и добавьте новое приложение SAML 2.0.

2. Настройте приложение со следующими параметрами:

   * **Platform:** Web
   * **Sign on method:** SAML 2.0

* **Название приложения:** dbt
  * **Логотип приложения (необязательно):** При желании вы можете [скачать логотип dbt](https://drive.google.com/file/d/1fnsWHRu2a_UkJBJgkZtqt99x5bSyf3Aw/view?usp=sharing) и использовать его в качестве логотипа этого приложения.

### Настройка параметров SAML

3. На вкладке **Configuration** укажите следующие значения:

   * **RelayState:** `<login URL slug>`
   * **Audience (EntityID):** `urn:auth0:<YOUR_AUTH0_ENTITYID>:<login URL slug>`
   * **ACS (Consumer) URL Validator:** `https://YOUR_AUTH0_URI/login/callback?connection=<login URL slug>`
   * **ACS (Consumer) URL:** `https://YOUR_AUTH0_URI/login/callback?connection=<login URL slug>`

4. Затем перейдите на вкладку **Parameters**. Необходимо создать параметры для атрибутов Email, First Name и Last Name и включить все параметры в утверждения SAML. При добавлении пользовательских параметров обязательно установите флажок **Include in SAML assertion** и убедитесь, что регистр символов и формат в точности соответствуют приведённым в следующей таблице.

Мы рекомендуем использовать следующие значения:

| имя         | формат имени | значение    |
| ----------- | ------------ | ----------- |
| NameID      | Unspecified  | OneLogin ID |
| email       | Unspecified  | Email       |
| first\_name | Unspecified  | First Name  |
| last\_name  | Unspecified  | Last Name   |

[Управление доступом на основе ролей](https://docs.getdbt.tech/docs/platform/manage-access/about-user-access.md#role-based-access-control-) в dbt использует сопоставления групп из IdP для назначения пользователей dbt в группы dbt. Чтобы использовать управление доступом на основе ролей в dbt, также настройте OneLogin для передачи сведений о членстве в группах в атрибуте пользователя с именем `groups`:

| имя | формат имени | значение | описание   |
| --- | ------------ | -------- | ---------- |
| 421 |              | groups   | Не указано |

### Сбор секретов интеграции

### Получите секреты интеграции

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

* Issuer URL

* SAML 2.0 Endpoint (HTTP)

* X.509 Certificate (требуется формат PEM)

  *  Пример формата PEM

    ```text
    -----BEGIN CERTIFICATE-----
    MIIC8DCCAdigAwIBAgIQSANTIKwxA1221kqhkiG9w0dbtLabsBAQsFADA0MTIwMAYDVQQD
    EylNaWNyb3NvZnQgQXp1cmUgRmVkZXJhdGVkIFNTTyBDZXJ0aWZpY2F0ZTAeFw0yMzEyMjIwMDU1
    MDNaFw0yNjEyMjIwMDU1MDNaMDQxMjAwBgNVBAMTKU1pY3Jvc29mdCBBenVyZSBGZWRlcmF0ZWQg
    U1NPIENlcnRpZmljYXRlMIIBIjANBgkqhkiG9w0BAEFAAFRANKIEMIIBCgKCAQEAqfXQGc/D8ofK
    aXbPXftPotqYLEQtvqMymgvhFuUm+bQ9YSpS1zwNQ9D9hWVmcqis6gO/VFw61e0lFnsOuyx+XMKL
    rJjAIsuWORavFqzKFnAz7hsPrDw5lkNZaO4T7tKs+E8N/Qm4kUp5omZv/UjRxN0XaD+o5iJJKPSZ
    PBUDo22m+306DE6ZE8wqxT4jTq4g0uXEitD2ZyKaD6WoPRETZELSl5oiCB47Pgn/mpqae9o0Q2aQ
    LP9zosNZ07IjKkIfyFKMP7xHwzrl5a60y0rSIYS/edqwEhkpzaz0f8QW5pws668CpZ1AVgfP9TtD
    Y1EuxBSDQoY5TLR8++2eH4te0QIDAQABMA0GCSqGSIb3DmAKINgAA4IBAQCEts9ujwaokRGfdtgH
    76kGrRHiFVWTyWdcpl1dNDvGhUtCRsTC76qwvCcPnDEFBebVimE0ik4oSwwQJALExriSvxtcNW1b
    qvnY52duXeZ1CSfwHkHkQLyWBANv8ZCkgtcSWnoHELLOWORLD4aSrAAY2s5hP3ukWdV9zQscUw2b
    GwN0/bTxxQgA2NLZzFuHSnkuRX5dbtrun21USPTHMGmFFYBqZqwePZXTcyxp64f3Mtj3g327r/qZ
    squyPSq5BrF4ivguYoTcGg4SCP7qfiNRFyBUTTERFLYU0n46MuPmVC7vXTsPRQtNRTpJj/b2gGLk
    1RcPb1JosS1ct5Mtjs41
    -----END CERTIFICATE-----
    ```

### Завершение настройки

6. После создания приложения OneLogin следуйте инструкциям в разделе [Настройка dbt](#dbt-setup), чтобы завершить интеграцию.

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

### Передача значений IdP в dbt

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

1. Перейдите в **Account settings** > **SSO & SCIM**.

2. Нажмите **Get started**, если SSO ещё не настроен, или **Edit**, если он уже настроен.

3. Укажите следующие сведения для SSO:

   | Field       | Value    |
   | ----------- | -------- |
   | Log in with | SAML 2.0 |

\| Identity Provider SSO Url | Вставьте **Identity Provider Single Sign-On URL**, указанный в инструкциях по настройке IdP | | Identity Provider Issuer | Вставьте **Identity Provider Issuer**, указанный в инструкциях по настройке IdP | | X.509 Certificate | Вставьте **X.509 Certificate**, указанный в инструкциях по настройке IdP;<br />**Примечание:** Когда срок действия сертификата истечёт, администратору IdP потребуется создать новый сертификат и вставить его в dbt, чтобы обеспечить бесперебойный доступ к приложению. |

[![Настройка приложения в dbt](/img/docs/dbt-platform/dbt-platform-enterprise/okta/okta-6-setup-integration.png?v=2 "Настройка приложения в dbt")](#)Настройка приложения в dbt

4. Нажмите **Save**, чтобы завершить настройку интеграции SAML 2.0.
5. После завершения настройки вы можете перейти по URL-адресу, сформированному на основе *slug* вашей учётной записи, чтобы проверить вход через вашего поставщика удостоверений. Кроме того, пользователи, добавленные в приложение SAML 2.0, смогут входить в dbt непосредственно из IdP.

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

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

* **Подписывать запросы аутентификации SAML:** dbt будет подписывать SAML-запросы, отправляемые вашему поставщику удостоверений при попытке пользователей войти в систему. Метаданные для настройки этой функции у поставщика удостоверений можно скачать по адресу, указанному в поле **SAML Metadata URL**. В большинстве случаев мы рекомендуем оставлять эту функцию отключённой.

* **Сопоставления атрибутов:** Сопоставьте атрибуты SAML, необходимые dbt, с атрибутами, которые ваш поставщик удостоверений включает в утверждения SAML. Значение должно быть корректным JSON-объектом с ключами `email`, `first_name`, `last_name` или `groups` и значениями в виде строк или списков строк. Например, если ваш поставщик удостоверений не может включить атрибут `email` в утверждения, но включает атрибут с именем `EmailAddress`, то для параметра **Сопоставления атрибутов** следует задать значение `{ "email": "EmailAddress" }`. Сопоставления нужны только в том случае, если вы не можете настроить атрибуты в соответствии с инструкциями на этой странице. Если можете, допустимо оставить значение по умолчанию — `{}`.

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

Пользователи могут войти в систему по адресу <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).

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

После настройки поставщика удостоверений вы сможете настроить [управление доступом на основе ролей](https://docs.getdbt.tech/docs/platform/manage-access/enterprise-permissions.md) для своей учетной записи.

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