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

Настройка Azure DevOps EnterpriseEnterprise +

Обзор 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, который обеспечит выполнение headless-действий в dbt, таких как deployment runs и CI. Разработчики dbt смогут затем персонально аутентифицироваться в dbt через Azure DevOps. Подробнее см. Аутентификация с Azure DevOps.

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

  • администратор Microsoft Entra ID
  • администратор Azure DevOps
  • администратор аккаунта dbt
  • администратор Azure (если среды Entra ID и Azure DevOps не связаны)

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

Администратор 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. Скопируйте Redirect URI из dbt и вставьте его в соответствующее поле. Чтобы найти Redirect 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

Создание client secret​

Администратор 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. Если поле уже заполнено, значит 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.
Пример настройки с добавленным service principal в качестве пользователя.Пример настройки с добавленным service principal в качестве пользователя.

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

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

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

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

  1. Перейдите в настройки аккаунта в dbt.
  2. Выберите Integrations.
  3. Прокрутите до раздела Azure DevOps и нажмите иконку редактирования.
  4. Выберите опцию Service principal (конфигурации service user при необходимости автоматически заполнят поля).
  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 из client secrets приложения 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 или CLI dbt, могут персонально авторизовать Azure DevOps из своих профилей.

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

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

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

Проверка service principal​

Для выполнения этих шагов потребуется администратор Entra ID.

Чтобы проверить, есть ли у существующего приложения service principal:

  1. В аккаунте Azure перейдите в Microsoft Entra ID -> Manage -> App registrations.
  2. Откройте приложение, используемое для интеграции service user с dbt.
  3. Проверьте, заполнено ли поле Managed application in local directory.
    • Если имя указано: service principal уже создан. Перейдите к шагу 4.
    • Если имя отсутствует: перейдите к следующему разделу Создание service principal.
  4. Следуйте инструкциям по добавлению разрешений для service principal.
  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. Следуйте инструкциям по добавлению разрешений для service principal.

  6. Следуйте инструкциям по подключению DevOps к приложению.

  7. В аккаунте dbt:

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

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

0
Loading