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

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

Здесь вы найдете ответы на распространенные вопросы о настройке и использовании подготовки пользователей через SCIM в dbt platform, а также рекомендации по устранению типичных неполадок.

## Часто задаваемые вопросы

 Нужна ли группа Account Admin перед включением 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.

 Должны ли поля userName и email.value иметь одинаковое значение для работы SCIM?

Да. Оба значения должны совпадать с адресом электронной почты, который пользователь использует для входа в dbt platform (значение email в объекте пользователя в вашем IdP, используемое для входа). Если они не совпадают, при подготовке пользователя возникнет ошибка валидации.

 Каков рекомендуемый порядок добавления новых пользователей через SCIM?

#### Entra ID

После настройки подготовки пользователей через SCIM в Entra ID в соответствии с требованиями схемы процесс запускается автоматически. Entra ID синхронизирует пользователей и группы, назначенные приложению Entra, с dbt platform.

**Для пользователей:**

* Сопоставление выполняется по полю `userName` (и `email.value`), в котором должен быть указан адрес электронной почты пользователя — тот же адрес, который используется в dbt platform и ожидается при входе.
* Если пользователь с таким адресом уже существует в dbt platform, он будет связан с учетной записью в IdP и перейдет под управление SCIM.
* Если соответствующий пользователь не найден, будет создан новый пользователь, которому отправят приглашение по электронной почте.

**Для групп:**

* Сопоставление выполняется по имени группы.
* Если группа с таким именем существует в dbt platform, она будет связана с группой в IdP и перейдет под управление SCIM.
* Если соответствующая группа не найдена, через SCIM будет создана новая группа.

**Важные замечания:**

* Entra ID не поддерживает импорт существующих пользователей или групп в приложение для SCIM — пользователи и группы должны уже существовать в Entra ID и быть назначены приложению.
* Чтобы пользователи и группы перешли под управление SCIM, они должны существовать и в Entra, и в dbt platform с совпадающими идентификаторами (адрес электронной почты для пользователей, имя для групп).
* После настройки последующие синхронизации автоматически создают всех новых пользователей и группы, назначенных приложению в Entra, и управляют ими.

#### Okta

В отличие от Entra ID, Okta не выполняет постоянную полную синхронизацию. Первоначальную подготовку пользователей вы запускаете вручную, после чего Okta обрабатывает изменения по мере их внесения.

При включении SCIM в существующем приложении Okta SSO запустите первоначальную синхронизацию (если в приложении Okta уже есть пользователи) с помощью кнопки **Provision Users** на вкладке Assignments в Okta. Это выполнит однократную синхронизацию пользователей с dbt platform. В Okta нет встроенного способа повторно запустить такую полную синхронизацию — поэтому для повторной обработки обычно требуется удалить пользователей и добавить их заново.

**Для пользователей:** Сопоставление пользователей выполняется по полю `userName` (адрес электронной почты), которое должно совпадать с адресом, используемым в dbt platform:

* Если совпадение найдено, Okta связывает пользователя с учетной записью и помечает его как управляемого через SCIM.
* Если совпадение не найдено, Okta создает нового пользователя.
* Если пользователи существуют в dbt platform, но отсутствуют в Okta, их можно импортировать в Okta, чтобы согласовать данные в обеих системах.

**Для групп:**

* После первоначальной синхронизации пользователей назначайте новых пользователей приложению Okta, чтобы автоматически создавать их в dbt platform.
* Управляйте участием в группах с помощью функции Push Groups в Okta, которая передает группы и сведения об их участниках в dbt platform.

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

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

 Продолжают ли действовать сопоставления групп SSO при включенном SCIM?

Нет. Сопоставления групп SSO не применяются к пользователям, управляемым через SCIM. Для таких пользователей участие в группах контролируется вашим IdP.

Сопоставления групп SSO применяются только к пользователям, которые проходят аутентификацию через SSO и не управляются через SCIM.

Это означает, что если у вас есть группа dbt с сопоставлениями SSO, эти сопоставления не будут применяться к пользователям, созданным через SCIM.

 Что означает "Allow manual updates"?

Переключатель **Allow manual updates** определяет, могут ли администраторы вручную изменять пользователей и группы, управляемые через SCIM, в dbt platform, в том числе отправлять приглашения.

* **Выключен (по умолчанию)**: ваш IdP остается источником достоверных данных для пользователей и групп, управляемых через SCIM. Ручные изменения пользователей, управляемых через SCIM, в dbt platform заблокированы. Это рекомендуемая настройка, поскольку любые ручные изменения, внесенные при включенном переключателе, могут быть перезаписаны последующими обновлениями SCIM.
* **Включен:** администраторы могут вручную изменять пользователей в dbt platform параллельно с SCIM. Это может быть полезно при первоначальной настройке и тестировании, но ручные изменения не мешают SCIM перезаписывать их.

 Что происходит с существующими пользователями и группами при включении SCIM?

Включение SCIM не переводит существующих пользователей и группы под управление SCIM автоматически. Ваш IdP управляет только пользователями, которые были явно назначены приложению и подготовлены через SCIM.

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

 Что происходит при изменении адреса электронной почты пользователя в IdP, если SCIM включен?

При обновлении адреса электронной почты пользователя, управляемого через SCIM, в IdP платформа dbt platform получает SCIM-запрос на его обновление. На новый адрес отправляется письмо с подтверждением, и после подтверждения изменение вступает в силу в dbt platform.

 Поддерживает ли SCIM автоматическое назначение лицензий?

Встроенное сопоставление лицензий SCIM (с использованием атрибута SCIM) поддерживается только для Okta. Инструкции по настройке сопоставления лицензий в Okta см. в разделе [Управление лицензиями пользователей с помощью SCIM](https://docs.getdbt.tech/docs/platform/manage-access/scim-manage-user-licenses.md).

Сопоставление лицензий SCIM с Entra ID *может* быть реализовано с помощью [пользовательских атрибутов](https://learn.microsoft.com/en-us/entra/fundamentals/custom-security-attributes-overview) в зависимости от конфигурации Entra ID. Поскольку такая настройка зависит от конкретной среды, мы не предоставляем для нее стандартную конфигурацию или рекомендации по устранению неполадок. **Используйте этот подход на свой страх и риск.**

В качестве более простого и поддерживаемого подхода используйте сопоставление групп Active Directory с лицензиями на основе SSO вместе с настройкой SCIM в Entra ID. Это работает, пока переключатель **Ignore dbt license mapping** (в разделе **Account settings > SSO & SCIM**) остается выключенным.

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

 Можно ли использовать Okta для SSO, а Entra ID для SCIM (или наоборот)?

SSO и SCIM следует настраивать с использованием одного и того же IdP. Использование разных поставщиков — например, Okta для SSO и Entra ID для SCIM — может привести к расхождениям в состоянии пользователей и непредвиденному поведению.

Если ваша организация использует разные IdP для аутентификации и управления каталогом, свяжитесь с командой по работе с вашим аккаунтом, чтобы обсудить возможные варианты.

***

## Устранение неполадок

 Возникает ошибка "All users must have licenses on the account"

Эта ошибка возникает, когда при передаче группы через SCIM в ней оказывается пользователь, которому еще не назначена лицензия в dbt platform — обычно потому, что он еще не принял приглашение.

**Действия для устранения:**

1. Определите пользователей, вызывающих ошибку, по журналам подготовки пользователей в вашем IdP.
2. Проверьте, приняли ли эти пользователи приглашение в dbt platform. Лицензии не назначаются пользователям, пока они не выполнят этот шаг.
3. После того как пользователь примет приглашение и войдет в систему, повторите передачу группы из вашего IdP.
4. Если срок действия приглашения истек, временно удалите пользователя из передаваемой группы, отправьте ему повторное приглашение из dbt platform, попросите его принять приглашение, а затем снова добавьте его в группу.

 Существующие пользователи и группы не переходят под управление SCIM после его включения

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

**Почему это происходит:** подготовка пользователей через SCIM связывает удостоверение в IdP с записью пользователя в dbt platform. У пользователей, созданных до включения SCIM, этой связи нет, если IdP явно не выполнил их подготовку через SCIM.

**Действия для устранения:**

1. В вашем IdP назначьте существующих пользователей приложению SCIM для dbt platform.

2. Запустите синхронизацию для подготовки пользователей. IdP попытается сопоставить пользователей по их `userName` (обычно это адрес электронной почты) и установить связь для управления через SCIM.

   Примечание об Entra ID

   Для Entra ID учитывайте, что синхронизация для подготовки пользователей является односторонней (только отправка) — возможности импортировать существующих пользователей dbt в Entra в качестве управляемых удостоверений нет.

3. Если после синхронизации пользователи сопоставляются некорректно, убедитесь, что атрибуты `userName` и `email.value` в вашем IdP в точности совпадают с адресом электронной почты в учетной записи пользователя в dbt platform, включая регистр.

 Подготовка пользователей через Entra SCIM завершается с ошибкой из-за списка разрешенных IP-адресов

Если в вашем аккаунте dbt platform включены **ограничения по IP-адресам**, запросы Entra на подготовку пользователей через SCIM могут блокироваться. IP-адреса службы подготовки пользователей Azure меняются примерно каждые две недели, поэтому их нельзя внести в статический список разрешенных адресов.

**Рекомендуемый подход:**

1. Отфильтруйте диапазоны по тегу службы `AzureActiveDirectory` в [опубликованном Azure JSON-файле с диапазонами IP-адресов](https://www.microsoft.com/en-us/download/details.aspx?id=56519), вместо того чтобы разрешать все IP-адреса Azure.
2. Используйте Admin API dbt platform с сервисным токеном, чтобы обновлять список разрешенных IP-адресов по расписанию — например, с помощью еженедельного скрипта, который получает актуальные диапазоны `AzureActiveDirectory` и обновляет список разрешенных адресов через API.

Обратитесь по адресу <support@getdbt.com> за рекомендациями по использованию Admin API для управления списком разрешенных адресов.
