もう一方のユーザーの偽装

偽装を使用して、Microsoft Dataverse ユーザーに代わってビジネス ロジックを実行し、偽装されるユーザーの適切なロール ベースとオブジェクトベースのセキュリティを使用して任意の機能やサービスを提供するために使用されます。

偽装が必要なのは、Dataverse のユーザーに代わってさまざまなクライアントやサービスによって Dataverse Web サービスを呼び出すことができるためです。

偽装には、2 つの異なるユーザー アカウントが関与します。

偽装者 偽装ユーザー
コードを実行する時に使用されるユーザー アカウント 実行されているタスクが代理をしているユーザー アカウント。

必要な特権

偽装者 は、代理人 セキュリティ ロールに含まれているか、またはすべてのセキュリティ ロールに有効化される、別のユーザーの代わりに操作します (prvActOnBehalfOfAnotherUser) の権限を必要とします。

注意

ユーザーが 1 つ以上のセキュリティ ロールに関連付けられていることが必要です。 ユーザーに 代理人 セキュリティ ロールを割り当てることにより、ユーザー アカウントに関連付けられている他のすべてのセキュリティ ロールによって提供される権限と同様に、prvActOnBehalfOfAnotherUser 権限が付与されます。

データ変更に使用される実際の特権のセットは、偽装者 の役割のユーザーが所有する特権と、偽装ユーザー が所有する特権との共通部分です。

つまり、偽装者偽装されたユーザー が操作に必要な特権を持つ 場合にのみ偽装者 は何かを実行できます。

サーバー間認証を使用した偽装

登録ユーザーの代理ができるユーザー アカウントを必要とする Web クライアント アプリケーションを作成している場合、特別な アプリケーション ユーザー を使用することにより、Dataverse の有料ユーザー ライセンスを使用する必要がなくなります。

詳細情報: サーバー間 (S2S) 認証を使用して Web アプリケーションを作成する

Web API を使用して別のユーザーを偽装する

ユーザーを偽装するには、要求を Web サービスに送信する前に、偽装されるユーザーの Azure Active Directory (AAD) オブジェクト ID に等しい GUID 値を持つ、CallerObjectId という要求ヘッダーを追加します。 そのユーザーの AAD オブジェクト ID は、SystemUser.AzureActiveDirectoryObjectId に含まれています。

詳細情報: Web API を使用して別のユーザーを偽装する

組織サービスを使用して別のユーザーを偽装する

他のユーザーを偽装するには、CallerId プロパティを偽装ユーザーの GUID 値に設定します。 IOrganizationService を実装している次のクラスは、このプロパティを含んでいます。

プラグインの使用により別のユーザーを偽装する

プラグインを登録し、操作が使用するユーザーを指定することができます。 プラグインのコード内で、この設定を上書きすることができます。 詳細情報: ユーザーを偽装する

関連項目

サーバー間 (S2S) の認証を使用して Web アプリケーションを作成する
Web API を使用して別のユーザーを偽装する
プラグインを記述する

注意

ドキュメントの言語設定についてお聞かせください。 簡単な調査を行います。 (この調査は英語です)

この調査には約 7 分かかります。 個人データは収集されません (プライバシー ステートメント)。