もう一方のユーザーの偽装
偽装を使用して、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 分かかります。 個人データは収集されません (プライバシー ステートメント)。
フィードバック
フィードバックの送信と表示