# Обзор единого входа (SSO)

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

В этом обзоре описано, как создаются учетные записи пользователей в dbt при использовании единого входа (SSO). dbt поддерживает создание учетных записей при первом входе (JIT, Just-in-Time) и вход, инициированный поставщиком удостоверений (IdP).

* Рекомендуем использовать URL <https://login.dbt.com> для входа в dbt platform. После ввода адреса электронной почты dbt отправит на него код подтверждения. Подтвердив адрес электронной почты, вы сможете просмотреть доступные вам аккаунты в разных экземплярах платформы и выбрать аккаунт для открытия. Подробное описание процесса входа см. в разделе [Вход в платформу dbt](https://docs.getdbt.tech/docs/platform/about-platform/login.md).
* Вы также можете открыть свой аккаунт, используя его **Access URL** из раздела **Account settings**, если этот URL вам уже известен. Подробнее см. в разделе [Доступ, регионы и IP-адреса](https://docs.getdbt.tech/docs/platform/about-platform/access-regions-ip-addresses.md).
* Администраторы аккаунта могут включать и отключать обнаружение аккаунта с помощью параметра **Enable global account discovery** в разделе [Настройки аккаунта](https://docs.getdbt.tech/docs/platform/account-settings.md#enable-global-account-discovery). Если обнаружение аккаунта отключено, пользователи входят с помощью **Access URL** аккаунта и существующей конфигурации [SSO](https://docs.getdbt.tech/docs/platform/manage-access/sso-overview.md), если она настроена.

Для входа через SSO пользователи также используют **Access URL** или **dbt Enterprise Login URL** вашего аккаунта, как описано на этой странице.

В dbt platform dbt назначает конфигурации SSO идентификатор slug (идентификатор, используемый в URL для входа через SSO). Этот идентификатор генерируется системой и доступен только для чтения. Существующие конфигурации SSO остаются действительными, но изменить идентификатор slug нельзя. Если удалить и заново создать конфигурацию SSO, новой конфигурации будет назначен новый идентификатор slug, сгенерированный системой.

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

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

* У вас есть тарифный план dbt Enterprise или Enterprise+. [Свяжитесь с нами](mailto:sales@getdbt.com), чтобы узнать больше, записаться на демонстрацию или подключить тарифный план. Подробности о тарифных планах см. на странице [Цены](https://www.getdbt.com/pricing/).

## 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) не нужно.

## Процесс SSO

На приведенной ниже схеме показан основной процесс создания учетных записей пользователей в dbt при входе через SSO.

[![Схема SSO](/img/sso_overview.png?v=2 "Схема SSO")](#)Схема SSO

#### Пояснение к схеме

* **Страница входа**: пользователь открывает страницу входа в dbt (например, <https://login.dbt.com>), **Access URL** своего аккаунта или **dbt Enterprise Login URL** и запускает процесс SSO.

* **Вход, инициированный IdP**: пользователь открывает страницу входа в dbt через поставщика удостоверений, выбрав приложение dbt. Это запускает процесс входа через IdP.

* **Страница входа IdP**: пользователю предлагается войти в систему поставщика удостоверений. Это предоставляет приложению dbt доступ к сведениям об учетной записи пользователя.

* **Войти?**: пользователь может продолжить или прервать процесс входа.

  * **Да**: пользователь входит в систему, предоставляет разрешения приложению dbt и продолжает.
  * **Нет**: пользователь не входит в систему и возвращается на страницу входа IdP.

* **Пользователь существует?**: на этом этапе проверяется, существует ли пользователь в базе данных пользователей dbt.

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

* **Создание пользователя dbt**: для нового пользователя создается запись в базе данных dbt. Эта запись содержит адрес электронной почты, имя и фамилию пользователя, а также все атрибуты IdP (например, группы), переданные поставщиком удостоверений. dbt отправит письмо для подтверждения адреса электронной почты, и пользователю потребуется выполнить действия из раздела [Процесс для пользователя](https://docs.getdbt.tech/docs/platform/manage-access/invite-users.md#user-experience), чтобы использовать SSO в dbt.

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

* **Назначение соответствующих разрешений (групп)**: dbt перебирает группы в соответствующих аккаунтах и находит все группы, которые относятся к одной из следующих категорий:

  * Сопоставлены с группой SSO, в которую входит пользователь.
  * Имеют выбранный параметр **Assign by Default**. Затем все эти группы (и только они) назначаются лицензии пользователя. На этом этапе также удаляются все разрешения, которые не должны быть у пользователя согласно текущим сопоставлениям групп SSO.

* **Приложение dbt**: после выполнения этих действий пользователь перенаправляется в приложение dbt и может начать работу в обычном режиме.

Сопоставления лицензий и разрешений используют группы IdP

Сопоставления типов лицензий и групп SSO основаны на членстве в **группах IdP** (группах вашего поставщика удостоверений), а не на названиях групп dbt platform. При настройке [сопоставлений лицензий](https://docs.getdbt.tech/docs/platform/manage-access/seats-and-users.md#mapped-configuration) или назначении групп используйте названия групп и сведения о членстве из вашего IdP.

## Обязательное использование SSO

* **Обязательное использование SSO:** если в вашей организации включен SSO, dbt разрешает всем пользователям без прав администратора входить только через SSO. По умолчанию, если у пользователя с ролью Account Admin или Security Admin уже есть пароль, он может продолжать входить с паролем. Чтобы запретить администраторам использовать пароли, отключите параметр **Allow password logins for account administrators** в разделе **SSO & SCIM** настроек аккаунта вашей организации (**Account settings**).
* **Повторная аутентификация через SSO:** dbt будет запрашивать повторную аутентификацию через вашего поставщика SSO каждые 24 часа для обеспечения высокого уровня безопасности.

### Как должны входить пользователи без прав администратора?

Пользователи без прав администратора, которые сейчас входят с паролем, больше не смогут этого делать. Им необходимо входить через <https://login.dbt.com>, dbt Enterprise Login URL вашего аккаунта или поставщика удостоверений (IdP), например Okta или Microsoft Entra ID.

### Рекомендации по безопасности

В некоторых ситуациях может потребоваться вход с паролем. Мы рекомендуем следующие меры безопасности для наиболее распространенных сценариев:

* **Предоставление доступа партнерам и подрядчикам** — настоятельно рекомендуем добавлять партнеров и подрядчиков в систему вашего поставщика удостоверений. Такие IdP, как Okta и Microsoft Entra ID, предлагают специальные возможности для временных сотрудников. Настоятельно рекомендуем обратиться в вашу ИТ-команду для предоставления лицензии SSO в таких ситуациях. Использование IdP обеспечивает высокий уровень безопасности, снижает риск взлома и значительно повышает защищенность вашей среды dbt.
* **Поставщик удостоверений недоступен** — администраторы аккаунта по-прежнему смогут входить с паролем, что позволит им совместно с поставщиком удостоверений устранить проблему.
* **Отзыв доступа у администраторов** — при прекращении работы с администраторами отзовите их доступ к dbt, удалив пользователей из вашей среды; иначе они смогут продолжать входить с именем пользователя и паролем.

### Дальнейшие действия для пользователей без прав администратора, которые сейчас входят с паролем

Если у вас есть пользователи без прав администратора, которые сейчас входят в dbt с паролем:

1. Убедитесь, что у всех пользователей есть учетная запись у вашего поставщика удостоверений и им назначен доступ к приложению dbt, чтобы они не потеряли доступ.
2. Предупредите всех пользователей dbt, что они больше не смогут входить с паролем, если только у них уже нет прав администратора и пароля.
3. Мы **НЕ рекомендуем** предоставлять пользователям права администратора только для сохранения возможности входа с паролем, поскольку это снизит безопасность вашей среды dbt.

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

Ответы на распространенные вопросы и рекомендации по устранению неполадок см. в разделе [Часто задаваемые вопросы о SSO и устранение неполадок](https://docs.getdbt.tech/docs/platform/manage-access/sso-faq.md).
