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