タグは Microsoft によって監視されません。
Microsoft Graph:Application 権限では appRoleAssignment の削除に失敗し、Delegated 権限では成功する挙動は仕様でしょうか?
Microsoft Graph における appRoleAssignment の削除挙動について、
仕様確認のため質問させてください。
【状況】
- Microsoft Graph を利用して、アプリケーション権限
(client_credentials フロー)でユーザーに appRole を割り当てています。
- アプリには AppRoleAssignment.ReadWrite.All および
Application.Read.All を付与し、管理者同意も済ませています。
- 上記の構成で、ユーザーへの appRoleAssignment の作成(POST)は
問題なく成功します。
【問題】
- 同じ appRoleAssignment を削除(DELETE)しようとすると、
Application 権限では以下のエラーが返却されます。
"Insufficient privileges to complete the operation."
【確認できた事実】
- AppRoleAssignment.ReadWrite.All を Delegated 権限として付与し、
管理者ユーザーがサインインしたユーザー文脈で同じ削除処理を行うと、
削除は成功します。
- 対象の割り当ては、グループ経由ではなく
ユーザーへの直接割り当て(principalType = User)です。
- 削除対象の assignmentId は
GET /servicePrincipals/{id}/appRoleAssignedTo から取得したものです。
【質問】
この挙動は仕様でしょうか?
具体的には、
- ユーザーの所属関係(entitlement / membership)として扱われる
appRoleAssignment については、
AppRoleAssignment.ReadWrite.All を付与していても
Application 権限では削除できないケースがあるのでしょうか?
- Microsoft Graph では、特定の appRoleAssignment の削除を
Delegated(ユーザー文脈)操作に制限する設計となっているのでしょうか?
- もし仕様であれば、この制約や推奨されるアーキテクチャ
(例:割り当ては Application、削除は Delegated)について
記載されている公式ドキュメントがあれば教えていただきたいです。
Microsoft Learn 上のドキュメントを確認しましたが、
この挙動について明確に説明されている箇所を見つけられなかったため、
ご教示いただけますと幸いです。