偽装を使用して、別の Microsoft Dataverse ユーザーに代わってビジネス ロジックを実行します。 偽装されたユーザーの適切なロールとオブジェクト ベースのセキュリティを使用することで、目的の機能またはサービスを提供できます。
さまざまなクライアントとサービスは、偽装を使用して、Dataverse ユーザーの代わりに Dataverse Web サービスを呼び出すことができます。
偽装には、2 つの異なるユーザー アカウントが関与します。
| 偽装者 | 偽装ユーザー |
|---|---|
| コードを実行する時に使用されるユーザー アカウント | 実行されているタスクが代理をしているユーザー アカウント。 |
必要な権限
代理実行するユーザーには、prvActOnBehalfOfAnotherUserする権限()が必要です。 この特権は 、委任 セキュリティ ロールに含まれているか、任意のセキュリティ ロールに対して有効にすることができます。
ヒント
ユーザーは、複数のセキュリティ ロールに関連付けることができます。 ユーザーにセキュリティ ロールの 委任 を割り当てると、 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 を使用して別のユーザーを偽装する
プラグインを記述する