Развертывание конвейеров в качестве субъекта-службы или владельца конвейера

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

Развертывание с субъектом-службой

Предварительные условия

  • Учетная запись пользователя Microsoft Entra. Если у вас еще нет учетной записи, вы можете создать учетную запись бесплатно.
  • Одна из следующих ролей Microsoft Entra: глобальный администратор, администратор облачных приложений или администратор приложений.
  • Вы должны быть владельцем корпоративного приложения (субъекта-службы) в Microsoft Entra ID.

Для делегированного развертывания с субъектом-службой выполните следующие действия.

  1. Создайте корпоративное приложение (субъект-службу) в Microsoft Entra ID.

    Внимание

    Любой, кто включает или изменяет конфигурации субъекта-службы в конвейерах, должен быть владельцем корпоративного приложения (субъекта-службы) в Microsoft Entra ID.

  2. Добавьте корпоративное приложение в качестве пользователя межсерверного взаимодействия (S2S) в среде размещения конвейеров и в каждой целевой среде, в которой оно развертывается.

  3. Назначьте пользователю S2S роль безопасности «Администратор конвейеров развертывания» на узле конвейеров и роль безопасности «Системный администратор» в целевых средах. Роли безопасности с более низкими разрешениями не могут развертывать плагины и другие компоненты кода.

  4. Выберите (отметьте) Делегированное развертывание на этапе конвейера, выберите Субъект-служба и введите идентификатор клиента. Выберите Сохранить.

  5. Создайте облачный поток в среде размещения конвейеров. Альтернативные системы могут быть интегрированы с помощью API-интерфейсов Microsoft Dataverse конвейеров.

  6. Выберите триггер OnApprovalStarted.

  7. Добавьте шаги для желаемой пользовательской логики.

  8. Вставьте шаг утверждения. Используйте динамический контент для отправки информации о запросе на развертывание утверждающим.

  9. Вставьте условие.

  10. Создание подключения Dataverse для субъекта-службы. Вам понадобится идентификатор клиента и секрет.

  11. Добавьте Выполнить несвязанное действие Dataverse, используя настройки, показанные здесь.
    Имя действия: UpdateApprovalStatus ApprovalComments: Вставить динамическое содержимое. Комментарии будут видны отправителю запроса на развертывание. ApprovalStatus: 20 = одобрено, 30 = отклонено ApprovalProperties: Вставить динамическое содержимое. Административная информация доступна из узла конвейеров.

    Внимание

    Действие UpdateApprovalStatus должно использовать подключение субъекта-службы.

    Подключение к субъекту-службе

    Совет

    Чтобы улучшить процесс отладки, выберите ApprovalProperties и вставьте workflow() из меню динамического содержимого. Это связывает выполнение потока с выполнением этапа конвейера (журналом выполнения).

  12. Сохраните, затем протестируйте конвейер.

Ниже приведен снимок экрана канонического потока утверждения.

Канонический поток утверждения

Внимание

  • Запрашивающие создатели могут не иметь доступа к развернутым ресурсам в целевых средах. Ресурсы можно использовать совместно после развертывания. Чтобы автоматизировать общий доступ, вы можете использовать приведенный ниже пример или расширение ALM Accelerator в качестве эталонной реализации.
  • Как минимум, роль безопасности базового пользователя необходима для развертывания ссылок на подключения и доступа к среде.
  • Если во время тестирования вы удалите свою собственную роль безопасности, другой администратор должен будет восстановить ее позже. Администраторы Power Platform могут восстановить свою роль безопасности в классическом интерфейсе.

Развертывание в качестве владельца этапа конвейера

Обычные пользователи, в том числе те, которые используются в качестве учетных записей служб, также могут выступать в качестве делегатов. Конфигурация более проста по сравнению с субъектами-службами, но решения, содержащие ссылки на подключения для Oauth, не могут быть развернуты.

Чтобы выполнить развертывание в качестве владельца этапа конвейера, выполните следующие действия.

  1. Назначьте владельцу этапа конвейера роль безопасности «Администратор конвейеров развертывания» на узле конвейеров и роль безопасности «Системный администратор» в целевых средах.

    Роли безопасности с более низкими разрешениями не могут развертывать плагины и другие компоненты кода.

  2. Войдите в систему как владелец этапа конвейера. Только владелец может включить или изменить эти параметры. Рабочая группа не может быть владельцем.

  3. Выберите Делегированное развертывание на этапе конвейера и выберите Владелец этапа.

    • Удостоверение владельца этапа конвейера используется для всех развертываний на этом этапе.
    • Аналогично, это удостоверение необходимо использовать для утверждения развертываний.
  4. Создайте облачный поток в решении в среде размещения конвейеров.

    1. Выберите триггер OnApprovalStarted.
    2. Вставьте действия по желанию. Например, утверждение.
    3. Добавьте Выполнить несвязанное действие Dataverse.
      Имя действия: UpdateApprovalStatus (20 = завершено, 30 = отклонено)

Примеры делегированного развертывания

Важно

Функциональность, представленная в этих примерах, теперь поддерживается продуктом изначально, но может быть пока недоступна в вашем регионе.

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

Загрузите и импортируйте управляемое решение в среду размещения конвейеров. Затем решение можно настроить в соответствии с потребностями вашей организации.

Вопросы и ответы

Я получаю сообщение об ошибке Этап развертывания не является владельцем субъекта-службы (<AppId>). Только владельцы субъекта-службы могут использовать его для делегированных развертываний.

Вы должны быть владельцем корпоративного приложения (субъекта-службы) в Microsoft Entra ID (ранее Azure AD). Вы можете быть владельцем только регистрации приложения, а не корпоративного приложения.

Корпоративные приложения

Почему для делегированных развертываний на основе владельца этапа я не могу назначить другого пользователя в качестве развертывателя?

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

Почему мои делегированные развертывания зависли в состоянии ожидания?

Все делегированные развертывания находятся в состоянии ожидания до утверждения. Убедитесь, что ваш администратор настроил поток утверждения Power Automate или другую автоматизацию, что она работает правильно и что развертывание было одобрено.

Кому принадлежат развернутые объекты решения?

Развертывающее удостоверение. В случае делегированных развертываний владельцем является делегированная субъект-служба или владелец стадии конвейера.

Как создатели могут получить доступ к развернутым объектам в целевых средах?

Важно

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

Запрашивающие создатели могут не иметь доступа к развернутым ресурсам в целевых средах. Администраторы должны назначать роли безопасности и предоставлять общий доступ к развернутым приложениям, потокам и т. д. в центре администрирования Power Platform. Кроме того, администраторы могут создавать автоматизации для управления доступом.

Могу ли я добавить собственные этапы утверждения?

Да. Например, утверждения Power Automate можно настроить в соответствии с потребностями вашей организации. Вы также можете интегрировать другие системы утверждения.

Я получаю сообщение об ошибке Делегированные развертывания типа ServicePrincipal могут утверждаться и отклоняться только субъектом-службой, настроенным на стадии развертывания.

Убедитесь, что пользовательское действие Dataverse UpdateApprovalStatus вызывается субъектом-службой. При использовании утверждений Power Automate убедитесь, что это действие настроено на использование соединения субъекта-службы делегата.

Я получаю сообщение об ошибке Делегированные развертывания типа Owner могут утверждаться и отклоняться только владельцем стадии развертывания.

Убедитесь, что пользовательское действие Dataverse UpdateApprovalStatus вызывается владельцем стадии конвейера. При использовании утверждений Power Automate убедитесь, что это действие настроено на использование соединения владельца стадии конвейера делегата.

Я получаю сообщение об ошибке в потоке утверждения Невозможно найти атрибут статуса утверждения для записи выполнения этапа.

Это происходит, когда статус утверждения еще не находится в состоянии ожидания. Убедитесь, что это делегированное развертывание и вы используете триггер OnApprovalStarted в процессе утверждения.

Могу ли я использовать разные субъекты-службы для разных конвейеров и этапов?

Да.