You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用Microsoft Graph获取用户信息时遇AADSTS900561错误求助

解决AADSTS900561错误的方法

首先看代码里的直接错误:你创建了graphClient用于请求Graph API,但最后调用的是client.Execute(grRequest),这里的client是之前请求令牌的RestClient实例,指向的是tokenEndpoint,而非Graph API地址,这会导致请求发送到错误的地址,必然触发错误。

修正这个问题:

// 把这行
var grResponse = client.Execute(grRequest);
// 改成
var grResponse = graphClient.Execute(grRequest);

除此之外,还有几个需要检查的点:

  • 权限范围问题:你当前用的scope是https://graph.microsoft.com/.default,这个范围适用于无用户参与的客户端凭证流,而桌面应用的授权码流应该使用具体的用户权限,比如User.Read,修改scope参数:
request.AddParameter("scope", "User.Read", ParameterType.GetOrPost);

同时要确保你在Azure AD应用注册中已经添加了User.Read权限,并且完成了管理员同意或用户同意操作。

  • 重定向URI配置:桌面应用的重定向URI建议使用微软官方推荐的https://login.microsoftonline.com/common/oauth2/nativeclient,且该URI必须已添加到Azure AD应用注册的「移动和桌面应用」平台配置中。

  • 验证令牌有效性:可以解码access_token,检查aud字段是否为https://graph.microsoft.com,scp字段是否包含User.Read。如果aud字段不正确,说明令牌并非颁发给Graph API的,需要检查请求令牌时的scope和客户端配置。

内容的提问来源于stack exchange,提问作者Inoel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 22:15:36