Поделиться через


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

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

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

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

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

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

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

    Внимание

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

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

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

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

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

Важно

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

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

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

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

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

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

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

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

    Внимание

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

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

    Совет

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Важно

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

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

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

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

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

Совместное использование во время развертывания — это встроенная возможность делегированных развертываний с помощью субъектов-служб. Это избавляет администраторов от необходимости вручную назначать роли безопасности и предоставлять общий доступ к развернутым приложениям, потокам, помощникам и т. д. в центре администрирования Power Platform. Вместо этого администраторам достаточно утвердить запрос на развертывание, и система автоматически предоставляет общий доступ.

К каким типам объектов можно предоставить общий доступ во время развертывания?

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

Можно ли обновлять общий доступ при развертывании новых версий?

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

Какие разрешения назначаются для приложений и потоков на основе холста?

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

Могут ли создатели поделиться с отдельными пользователями?

В данный момент нет. Мы рекомендуем управлять доступом отдельных пользователей через группы безопасности после первого развертывания объекта.

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

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

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

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

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

Можно ли использовать пользовательский файл DeploymentSettings.json для делегированных развертываний на основе владельца этапа?

В настоящее время отсутствует в интерфейсе создателя.

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

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

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

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

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

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

Почему я должен владеть субъектом-службой?

Это сделано из соображений безопасности. Вы также можете создать конвейеры с помощью учетной записи службы и добавить ту же учетную запись службы в качестве владельца. Другим вариантом является назначение субъекта-службы (пользователя приложения) в качестве владельца этапа конвейера и в качестве владельца самого себя (корпоративного приложения) в Microsoft Entra. Однако назначение владельца стадии конвейера приложению должно выполняться через API Dataverse в узле конвейеров.

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

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

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

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

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

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

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

Да.