如何使用Rest API编辑/删除Azure AD B2C应用注册及401问题排查
解决Azure AD B2C应用注册编辑/删除时的401未授权问题
你遇到的核心问题是混用了不同版本的Graph API,且令牌受众不匹配,具体原因和解决方法如下:
- API版本不兼容:你创建应用用的是当前官方推荐的Microsoft Graph API(
graph.microsoft.com),但编辑/删除操作调用的是已弃用的Azure AD Graph API(graph.windows.net),这两个API的令牌校验规则完全不同。 - 令牌受众(aud声明)不匹配:你的授权令牌是针对Microsoft Graph生成的(
aud值为https://graph.microsoft.com),但Azure AD Graph API要求令牌的aud必须是https://graph.windows.net,因此会返回401未授权错误。
推荐解决方案:统一使用Microsoft Graph API完成操作
Azure AD Graph API已被官方弃用,建议全程使用Microsoft Graph API:
- 编辑应用注册:发送
PATCH请求
请求体示例(修改应用显示名称):PATCH https://graph.microsoft.com/v1.0/myorganization/applications/{applicationId}{ "displayName": "更新后的应用名称" } - 删除应用注册:发送
DELETE请求DELETE https://graph.microsoft.com/v1.0/myorganization/applications/{applicationId}
权限验证要点
确保你的授权令牌包含正确的Microsoft Graph权限:
- 应用权限:需配置
Application.ReadWrite.All,并完成管理员同意 - 委派权限:需配置
Directory.AccessAsUser.All,且用户登录后需管理员同意该权限
不推荐的临时方案(仅特殊场景使用)
如果必须继续使用Azure AD Graph API,需重新获取适配该API的令牌:
- 在应用注册中添加Azure AD Graph的对应权限(如
Application.ReadWrite.All) - 获取令牌时,将
scope参数设置为https://graph.windows.net/.default(应用权限场景)或对应的委派权限范围 - 验证令牌的
aud声明是否为https://graph.windows.net
内容的提问来源于stack exchange,提问作者Shanthi B
相关产品推荐
相关产品推荐

