Перейти к основному содержимому

Настройка Azure DevOps

Обзор service principal​

примечание

Если вы впервые настраиваете приложение Entra как service principal, ознакомьтесь с документацией Microsoft и выполните необходимые предварительные шаги для подготовки среды.

Чтобы использовать встроенную интеграцию dbt с Azure DevOps, администратору аккаунта необходимо настроить приложение Microsoft Entra ID в качестве субъекта-службы (service principal). Мы рекомендуем настроить отдельное приложение Entra ID, отличное от используемого для SSO.

Service principal приложения представляет собой объект приложения Entra ID. В то время как «service user» представляет реального пользователя в Azure с Entra ID (и соответствующей лицензией), «service principal» — это защищённая идентификация, используемая приложением для неинтерактивного доступа к ресурсам Azure. Service principal проходит аутентификацию с помощью client ID и секрета, а не имени пользователя и пароля (или других форм пользовательской аутентификации). Service principal — это рекомендуемый Microsoft способ аутентификации приложений.

  1. Зарегистрируйте приложение Entra ID.
  2. Подключите Azure DevOps к новому приложению.
  3. Добавьте приложение Entra ID в dbt.

После добавления приложения Microsoft Entra ID в dbt оно будет выступать в качестве субъекта-службы (service principal), который будет использоваться для выполнения действий без участия пользователя в dbt, таких как запуски в среде развертывания и CI. Затем разработчики dbt смогут проходить персональную аутентификацию в dbt через Azure DevOps. Подробнее см. в разделе Аутентификация через Azure DevOps.

Для выполнения шагов на этой странице потребуется участие пользователей со следующими ролями:

  • Администратор Microsoft Entra ID
  • Администратор Azure DevOps
  • Администратор аккаунта dbt
  • Администратор Azure (если ваши среды Entra ID и Azure DevOps не подключены друг к другу)

Регистрация приложения Microsoft Entra ID​

Согласие администратора

Если в вашем тенанте пользователям запрещено самостоятельно предоставлять согласие, после добавления разрешений API администратор Entra ID должен предоставить этому приложению согласие администратора на уровне всего тенанта (Enterprise Applications -> ваше приложение -> Permissions -> Grant admin consent).

Администратору Microsoft Entra ID необходимо выполнить следующие действия:

  1. Войдите на портал Azure и нажмите Microsoft Entra ID.
  2. Выберите App registrations на панели слева.
  3. Выберите New registration. Откроется форма создания нового приложения Entra ID.
  4. Укажите имя приложения. Рекомендуем использовать «dbt Labs Azure DevOps app».
  5. В разделе Supported Account Types выберите Accounts in any organizational directory (Any Entra ID directory - Multitenant). Многие клиенты спрашивают, почему нужно выбирать Multitenant вместо Single Tenant, и часто допускают ошибку на этом шаге. Microsoft рассматривает Azure DevOps (ранее Visual Studio) и Microsoft Entra ID как отдельные тенанты, поэтому для корректной работы приложения Entra ID необходимо выбрать Multitenant.
  6. В разделе Redirect URI выберите Web. Скопируйте URI перенаправления из dbt и вставьте его в следующее поле. Чтобы найти URI перенаправления в dbt:
    1. В dbt перейдите в Account Settings -> Integrations.
    2. Нажмите значок редактирования рядом с Azure DevOps.
    3. Скопируйте первое значение Redirect URIs, которое имеет вид https://<YOUR_ACCESS_URL>/complete/azure_active_directory и НЕ заканчивается на service_user.
  7. Нажмите Register.

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

Регистрация приложения Microsoft Entra IDРегистрация приложения Microsoft Entra ID

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

Администратор Microsoft Entra ID должен выполнить следующие действия:

  1. Перейдите в Microsoft Entra ID, нажмите App registrations и выберите своё приложение.
  2. Выберите Certificates and Secrets на левой панели навигации.
  3. Выберите Client secrets и нажмите New client secret
  4. Укажите описание секрета и выберите срок его действия. Нажмите Add.
  5. Скопируйте содержимое поля Value и передайте его по защищённому каналу администратору аккаунта dbt, который завершит настройку.

Создание service principal для приложения​

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

  1. Перейдите в Microsoft Entra ID.

  2. В разделе Manage в меню слева нажмите App registrations.

  3. Выберите приложение для интеграции dbt с Azure DevOps.

  4. Найдите поле Managed application in local directory и, если доступна соответствующая опция, нажмите Create Service Principal. Если поле уже заполнено, субъект-служба уже назначен.

    Пример с выделенной опцией «Create Service Principal».Пример с выделенной опцией «Create Service Principal».

Добавление разрешений для service principal​

Администратор Entra ID должен предоставить новому приложению доступ к Azure DevOps:

  1. В левой панели навигации выберите API permissions.
  2. Удалите разрешение Microsoft Graph / User Read.
  3. Нажмите Add a permission.
  4. Выберите Azure DevOps.
  5. Выберите разрешение user_impersonation. Это единственное доступное разрешение для Azure DevOps.

Подключение Azure DevOps к новому приложению​

Администратору Azure потребуется одна из следующих ролей как в Microsoft Entra ID, так и в Azure DevOps:

  • Azure Service Administrator
  • Azure Co-administrator
примечание

Вы можете добавить managed identity или service principal только для того тенанта, к которому подключена ваша организация. Необходимо добавить директорию в организацию, чтобы она имела доступ ко всем service principal и другим идентификациям.
Перейдите в Organization settings --> Microsoft Entra --> Connect Directory, чтобы выполнить подключение.

  1. На экране организации Azure DevOps нажмите Organization settings в левом нижнем углу.
  2. В разделе General выберите Users.
  3. Нажмите Add users и в появившейся панели введите имя service principal в первом поле. Затем выберите его из выпадающего списка.
  4. В поле Add to projects отметьте проекты, которые нужно включить (или выберите все).
  5. В поле Azure DevOps Groups выберите Project Administrator.
Пример настройки с субъектом-службой, добавленным в качестве пользователя.Пример настройки с субъектом-службой, добавленным в качестве пользователя.

Подключение приложения Microsoft Entra ID к dbt​

Администратор аккаунта dbt должен выполнить следующие действия.

После подключения приложения Microsoft Entra ID к Azure DevOps необходимо предоставить dbt информацию о приложении. Если настройка выполняется впервые, создайте новую конфигурацию. Если вы переходите с использования служебного пользователя, можно отредактировать существующую конфигурацию, выбрав Service principal.

Чтобы создать конфигурацию:

  1. Перейдите в настройки своей учетной записи в dbt.
  2. Выберите Integrations.
  3. Прокрутите страницу до раздела Azure DevOps и нажмите значок редактирования.
  4. Выберите вариант Service principal (при наличии конфигурации служебного пользователя поля будут заполнены автоматически).
  5. Заполните или отредактируйте форму (при миграции существующие настройки сохраняются):
    • Azure DevOps Organization: Значение должно точно совпадать с названием вашей организации Azure DevOps. Не включайте префикс dev.azure.com/ в это поле. ✅ Используйте my-DevOps-org ❌ Не используйте dev.azure.com/my-DevOps-org
    • Application (client) ID: Указан в приложении Microsoft Entra ID.
    • Client Secret: Скопируйте значение поля Value в разделе секретов клиента приложения Microsoft Entra ID и вставьте его в поле Client Secret в dbt. Администраторы Entra ID отвечают за срок действия секрета приложения, а администраторам dbt следует зафиксировать дату истечения его срока действия для своевременной ротации.
    • Directory(tenant) ID: Указан в приложении Microsoft Entra ID.
      Поля для добавления приложения Entra ID в dbt.Поля для добавления приложения Entra ID в dbt.

Теперь ваше приложение Microsoft Entra ID должно быть добавлено в вашу учетную запись dbt. Участники вашей команды, которые хотят разрабатывать в Studio IDE или dbt CLI, теперь могут самостоятельно авторизовать доступ к Azure DevOps из своих профилей.

Миграция с service user на service principal​

Выполните миграцию с service user на service principal, используя существующее приложение. Это займёт всего несколько шагов и не приведёт к перерывам в работе сервиса.

  • Проверьте, есть ли у приложения service principal.
    • Если его нет, создайте service principal.
  • Обновите конфигурацию приложения.
  • Обновите конфигурацию в dbt.

Проверка service principal​

Для следующих действий нужны права администратора Microsoft Entra ID.

Чтобы проверить, есть ли у вашего существующего приложения субъект-служба (service principal):

  1. В учетной записи Azure перейдите в Microsoft Entra ID -> Manage -> App registrations.
  2. Нажмите на приложение для интеграции служебного пользователя с dbt.
  3. Проверьте, указано ли имя в поле Managed application in local directory.
    • Если имя указано: субъект-служба уже создан. Перейдите к шагу 4.
    • Если имя не указано: перейдите к следующему разделу — Создание субъекта-службы.
  4. Следуйте инструкциям по добавлению разрешений для вашего субъекта-службы.
  5. Следуйте инструкциям по подключению DevOps к вашему приложению.
  6. В вашей учетной записи dbt:
    1. Перейдите в Account settings и нажмите Integrations
    2. Нажмите значок редактирования справа от настроек Azure DevOps.
    3. Измените Service user на Service principal и нажмите Save. Изменять существующие поля не требуется.

Создание service principal​

Если поле не заполнено, service principal не существует. Чтобы настроить service principal, выполните следующие инструкции.

Если у вашего приложения dbt нет субъекта-службы (service principal), выполните следующие действия в своей учетной записи Azure:

  1. Перейдите в Microsoft Entra ID.

  2. В разделе Manage в меню слева нажмите App registrations.

  3. Выберите приложение для интеграции dbt и Azure DevOps.

  4. Найдите поле Managed application in local directory и нажмите Create Service Principal.

    Пример с выделенным пунктом 'Create Service Principal'.Пример с выделенным пунктом 'Create Service Principal'.
  5. Следуйте инструкциям, чтобы добавить разрешения для вашего субъекта-службы.

  6. Следуйте инструкциям, чтобы подключить DevOps к вашему приложению.

  7. В своей учетной записи dbt:

    1. Перейдите в Account settings и нажмите Integrations
    2. Нажмите значок редактирования справа от настроек Azure DevOps.
    3. Измените Service user на Service principal и нажмите Save. Изменять существующие поля не требуется.

Нашли ошибку?

0
Loading