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

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

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

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

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

必要な特権

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

注意

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

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

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

直接割り当てが必要

別のユーザーの代わりに操作する 権限 (prvActOnBehalfOfAnotherUser)、またはその権限を含むロールは、チームを通じて継承できないため、ユーザーに直接割り当てる必要があります。 権限の機密性のため、この直接割り当てが必要になります。

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

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

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

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

ユーザーを偽装するには、要求を Web サービスに送信する前に、偽装したユーザーの Microsoft Entra ID オブジェクト識別子と等しい GUID 値を持つ、CallerObjectId という要求ヘッダーを追加します。 ユーザーの Microsoft Entra ID オブジェクト識別子は、SystemUser.AzureActiveDirectoryObjectId に含まれています。

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

.NET 用 SDK を使用して別のユーザーを偽装する

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

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

操作で使用するユーザーを指定するコードを含むプラグインを登録することができます。 詳細情報: ユーザーを偽装する

参照

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

注意

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

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