サービス プリンシパルまたはパイプライン所有者としてパイプラインを展開する

委任された展開は、サービス プリンシパルまたはパイプライン ステージの所有者として実行できます。 有効にすると、パイプライン ステージは、要求元のメーカーではなく委任 (サービス プリンシパルまたはパイプライン ステージの所有者) として展開されます。

サービス プリンシパルを展開する

前提条件

  • Microsoft Entra ユーザー アカウント。 すでにアカウントがない場合は、ここで無料で作成できます。
  • 次のいずれかの Microsoft Entra ロール : グローバル管理者、クラウド アプリケーション 管理者、またはアプリケーション管理者。
  • Microsoft Entra ID のエンタープライズ アプリケーション (サービス プリンシパル) の所有者である必要があります。

サービス プリンシパルを使用した委任された展開の場合は、次の手順に従います。

  1. Microsoft Entra ID で Enterprise アプリケーション (サービス プリンシパル) を作成します。

    重要

    パイプラインでサービス プリンシパル構成を有効化または変更する人は、 Microsoft Entra ID のエンタープライズ アプリケーション (サービス プリンシパル) の所有者である必要があります。

  2. パイプラインのホスト環境および展開先の各ターゲット環境に、サーバー間 (S2S) ユーザーとして Enterprise アプリケーションを追加します。

  3. 展開パイプライン管理者セキュリティ ロール をパイプライン ホスト内の S2S ユーザーに割り当て、ターゲット環境内でシステム管理者セキュリティ ロールを割り当てます。 権限の低いセキュリティ ロールでは、プラグインやその他のコード コンポーネントを展開できません。

  4. パイプライン ステージ上の 委任された展開 を選択(チェック)し、 サービス プリンシパル を選択して、クライアント ID を入力します。 保存 を選びます。

  5. パイプラインホスト環境内にクラウドフローを作成します。 パイプラインの Microsoft Dataverse API を使用して、代替システムを統合できます。

  6. OnApprovalStarted を選択します。

  7. 必要なカスタム ロジックのステップを追加します。

  8. 承認ステップを追加します。 展開リクエスト情報を承認者に送信するには、動的コンテンツを使用します。

  9. 条件ステップを挿入します。

  10. サービス プリンシパルで Dataverse 接続を作成します。 クライアント ID とシークレットが必要です。

  11. ここに示す設定を使用して、Dataverse非バインド アクションを実行する を追加します。
    アクション名: UpdateApprovalStatus ApprovalComments: 動的コンテンツを挿入します。 コメントは展開の要求者に表示されます。 ApprovalStatus: 20 = 承認、30 = 拒否 ApprovalProperties: 動的コンテンツを挿入します。 パイプライン ホスト内からアクセスできる管理情報。

    重要

    UpdateApprovalStatus アクションでは、サービス プリンシパルの接続を使用する必要があります。

    サービス プリンシパルとの接続

    チップ

    デバッグ エクスペリエンスを向上させるには、ApprovalProperties を選択し、動的コンテンツ メニューから workflow() を挿入します。 これにより、フローの実行がパイプライン ステージの実行 (実行履歴) にリンクされます。

  12. 保存してから、パイプラインをテストします。

以下は、正規の承認フローのスクリーンショットです。

Canonical 承認フロー

重要

  • 要求元の作成者は、ターゲット環境に展開されたリソースにアクセスできない場合があります。 展開後にリソースを共有できます。 共有を自動化するには、下記のサンプルまたは ALM Accelerator 拡張機能をリファレンス実装として使用できます。
  • 接続参照を展開して環境にアクセスするには、少なくとも基本ユーザー セキュリティ ロール が必要です。
  • テスト時に独自の セキュリティ ロール を削除すると、後で別の 管理者がそれを復元する必要があります。 Power Platform 管理者は、クラシック エクスペリエンス内で独自の セキュリティ ロール を復元できます。

パイプラインステージの所有者として展開する

サービス アカウントとして使用されるユーザーを含む通常のユーザーも代理人として機能できます。 サービス プリンシパルと比較すると構成は簡単ですが、Oauth 接続の接続参照を含むソリューションは展開できません。

パイプライン ステージの所有者として展開するには、次の手順に従います。

  1. パイプライン ホスト内のパイプライン ステージの所有者に展開パイプライン管理者のセキュリ ティロールを割り当て、ターゲット環境内のシステム管理者のセキュリティロールを割り当てます。

    権限の低いセキュリティ ロールでは、プラグインやその他のコード コンポーネントを展開できません。

  2. パイプラインステージの所有者としてサインインする これらの設定を有効化または変更できるのは所有者だけです。 チームの所有権は許可されません。

  3. パイプライン ステージで展開が委任されているを選択し、ステージ所有者を選択します。

    • パイプライン ステージの所有者の ID は、このステージへのすべての展開に使用されます。
    • 同様に、この ID は展開を承認するために使用する必要があります。
  4. パイプライン ホスト環境内のソリューションでクラウド フローを作成する。

    1. OnApprovalStarted を選択します。
    2. 必要に応じてアクションを挿入します。 たとえば、承認です。
    3. Dataverse バインドしていないアクションを実行する を選択します。
      アクション名: UpdateApprovalStatus (20 = 完了、30 = 拒否)

委任された展開サンプル

重要

これらのサンプルの機能は現在製品でネイティブにサポートされていますが、お住まいの地域ではまだ利用できない可能性があります。

このダウンロードには、承認を管理し、展開されたキャンバス アプリとフローをターゲット環境内で共有するためのサンプル クラウド フローが含まれています。 サンプル ソリューションをダウンロード

パイプライン ホスト環境にマネージド ソリューションをダウンロードして、インポートします。 次にソリューションは、組織のニーズに合わせてカスタマイズできます。

よく寄せられる質問

展開ステージはサービス プリンシパル (<AppId>) の所有者ではありません。サービス プリンシパルの所有者のみが、委任された展開にサービス プリンシパルを使用できます。というエラーが発生します。

Microsoft Entra ID (旧 Azure AD) のエンタープライズ アプリケーション (サービス プリンシパル) の所有者であることを確認してください。 アプリ登録の所有者であるだけで、エンタープライズ アプリケーションの所有者ではない場合があります。

エンタープライズ アプリケーション

ステージ所有者ベースの委任された展開の場合、別のユーザーを展開担当者として割り当てることができないのはなぜですか?

セキュリティ上の理由で、パイプライン ステージの所有者として設定されるユーザーとしてログインする必要があります。 このため、同意していないユーザーを展開担当者として追加することができなくなります。

委任された展開が保留状態のままになるのはなぜですか?

委任された展開はすべて、承認されるまで保留されます。 管理者が Power Automate 承認フローまたはその他の自動化を設定していること、それが適切に動作していること、展開が承認されたことを確認してください。

展開されたソリューション オブジェクトの所有者は誰ですか?

展開 ID。 委任された展開の場合、所有者は委任されたサービス プリンシパルまたはパイプライン ステージの所有者です。

作成者はターゲット環境内に展開されたオブジェクトにどのようにアクセスできますか?

重要

現在、展開中に共有するためのネイティブ機能が利用可能になり、作成者は展開要求の一部として展開されたリソースへのアクセスを要求できるようになりました。

要求元の作成者は、ターゲット環境に展開されたリソースにアクセスできない場合があります。 管理者は、Power Platform 管理センター内でセキュリティ ロールを割り当て、展開されたアプリやフローなどを共有する必要があります。 あるいは、管理者はアクセスを管理するための自動化を構築できます。

カスタム承認ステップを追加できますか?

はい たとえば、Power Automate 承認は組織のニーズに合わせてカスタマイズできます。 他の承認システムを統合することもできます。

"ServicePrincipal" タイプの委任された展開は、展開ステージで構成されたサービス プリンシパルにのみ承認または拒否される場合がありますというエラーが発生します。

Dataverse カスタム アクション UpdateApprovalStatus がサービス プリンシパルに呼び出されることを確認します。 Power Automate 承認を使用する場合は、このアクションが委任サービス プリンシパルの接続を使用するように構成されていることを確認してください。

"Owner" タイプの委任された展開は、展開ステージの所有者にのみ承認または拒否される場合がありますというエラーが発生します。

Dataverse カスタム アクション UpdateApprovalStatus がパイプライン ステージの所有者に呼び出されることを確認します。 Power Automate 承認を使用する場合は、このアクションが委任パイプライン ステージ所有者の接続を使用するように構成されていることを確認してください。

承認フローで ステージ実行レコードの承認ステータス属性が見つかりませんというエラーが発生します。

これは、承認ステータスがまだ保留状態になっていないときに発生します。 これが委任された展開であり、承認フローで OnApprovalStarted トリガーを使用していることを確認してください。

異なるパイプラインやステージに異なるサービス プリンシパルを使用できますか?

はい