使用MS Graph API为app registration新增app role时PATCH报错如何解决
问题原因
你遇到的报错是因为通过MS Graph API的PATCH请求更新应用注册的appRoles属性时,执行的是全量覆盖逻辑,而非增量添加。你当前请求体仅传入了新增的角色配置,等同于要求平台删除原有已启用的app role,而微软Entra ID不允许直接删除/修改处于启用状态的权限,因此触发了CannotDeleteOrUpdateEnabledEntitlement错误。
解决步骤
- 第一步:先调用GET接口拉取当前应用注册已有的全部app role配置:
GET https://graph.microsoft.com/v1.0/applications/{替换为你的应用注册ID}/appRoles
- 第二步:将你需要新增的角色配置,追加到上一步拉取到的appRoles数组末尾,确保新增角色的
id是未被使用过的全新GUID,不要和现有角色ID重复。 - 第三步:重新发起PATCH请求,请求体中的
appRoles字段传入包含原有所有角色+新增角色的完整数组即可完成添加,不会触发删除原有角色的逻辑。
注意事项
如果后续需要修改或删除已有的app role,需要先将对应角色的isEnabled属性修改为false并提交更新,待配置生效后再执行修改/删除操作。
内容的提问来源于stack exchange,提问作者Azure_Gal
相关产品推荐
相关产品推荐

