我成功创建了一个带有服务器应用程序的新应用程序组以及一个Web API,OpenID Connect协议正在解决任何问题,直到我尝试调用UserInfo。依赖方标识符与服务器应用程序的客户机ID相同(根据我在线阅读的示例)。尝试调用UserInfo时,我收到以下错误:
WWW-Authenticate:Bearer error =" invalid_token", error_description =" MSIS9921:收到无效的UserInfo请求。 Audience' microsoft:identityserver:21660d0d-93e8-45db-b770-45db974d432d' 访问令牌中的标识与UserInfo依赖方信任的标识符不同:urn:microsoft:userinfo'。"
非常感谢任何帮助。
答案 0 :(得分:0)
我最近也使用ADFS与ASP.NET Core OpenIDConnect提供程序出现此错误。在我的例子中,禁用UserInfo请求完全解决了问题:
var openIdOptions = new OpenIdConnectOptions
{
...
GetClaimsFromUserInfoEndpoint = false
};
在这样做之后,我仍然有我的应用程序所需的声明 - 电子邮件,SID,名称等。我确信有些情况下这不起作用,但很高兴知道您可能不需要/用户信息。我仍然有兴趣知道为什么从ADFS返回的令牌不能用于调用/ userinfo,以及如何在ASP.NET OpenIDConnect提供程序中修复它。
答案 1 :(得分:0)
只需相应地设置资源:
options.Resource = "urn:microsoft:userinfo";