次の方法で共有


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

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

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

前提条件

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

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

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

    重要

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

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

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

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

  5. オプションで、共有リクエストの許可 して、デプロイメント要求者がターゲット環境内のデプロイされたオブジェクトにアクセスできるセキュリティ グループを指定できるようにします。 共有リクエストはデプロイ要求の一部であり、承認または拒否できます。

重要

デプロイ承認者は、共有およびセキュリティ ロール情報を慎重に確認する責任があります。 デプロイが承認されると、パイプラインはデプロイするサービス プリンシパルの ID を使用して自動的にアクセス許可を割り当てます。
>

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

  2. OnApprovalStarted を選択します。

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

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

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

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

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

    重要

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

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

    チップ

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

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

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

Canonical 承認フロー

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

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

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

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

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

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

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

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

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

委任された展開サンプル

重要

これらのサンプルで提供される機能は現在製品でネイティブにサポートされていますが、これらのサンプルはネイティブ共有機能を拡張するための洞察を提供する可能性があります。

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

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

よく寄せられる質問

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

デプロイメント中の共有は、サービス プリンシパルを使用した委任されたデプロイメントのネイティブ機能です。 これにより、管理者が手動でセキュリティ ロールを割り当てたり、展開されたアプリ、フロー、コパイロットなどを管理センター内で共有したりする必要がなくなります。 Power Platform 代わりに、管理者は展開リクエストを承認するだけで、共有はシステムによって自動的に実行されます。

展開中に共有できるオブジェクト タイプはどれですか?

現在、セキュリティ ロール、キャンバス アプリ、クラウド フローがサポートされています。 地域によっては、Copilot の共有も利用できる場合があります。

新しいバージョンが展開されたときに共有を更新できますか?

共有は、オブジェクトがターゲット環境に初めてデプロイされたときに利用可能になります。 新しいバージョンが展開されると、共有を更新することはできません。 最初の展開時に適切なセキュリティ グループを選択してください。 セキュリティ グループを介して継続的なアクセスを管理してください。

キャンバス アプリとフローにはどのような権限が割り当てられていますか?

パイプラインは、アプリとフローを実行するために必要な最小限の権限を割り当てます。 より高い権限が必要な場合は、パイプラインを拡張できます。 より高い権限を割り当てる場合は、「管理されていないカスタマイズをブロックする」機能を有効にすることをお勧めします。

メーカーは個々のユーザーと共有できますか?

現時点ではまだできません。 オブジェクトの最初の展開後は、セキュリティ グループを介して個々のユーザー アクセスを管理することをお勧めします。

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

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

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

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

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

ステージ所有者ベースの委任されたデプロイメントでは、カスタム DeploymentSettings.json ファイルを使用できますか?

現時点ではメーカーエクスペリエンスの範囲外です。

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

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

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

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

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

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

なぜサービス プリンシパルを所有する必要があるのですか?

これはセキュリティ上の理由から強制されます。 サービス アカウントを使用してパイプラインを作成し、同じサービス アカウントを所有者として追加することもできます。 もう 1 つのオプションは、サービス プリンシパル (アプリケーション ユーザー) をパイプライン ステージの所有者として、またMicrosoft Entra のそれ自体 (エンタープライズ アプリケーション) の所有者として割り当てることです 。 ただし、パイプライン ステージの所有権をアプリケーションに割り当てるには、パイプライン ホストの Dataverse API を介して実行する必要があります。

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

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

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

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

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

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

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

はい