401使用ADFS 4.0和OpenID Connect调用UserInfo时

时间:2016-12-12 16:29:52

标签: adfs openid-connect windows-server-2016

我成功创建了一个带有服务器应用程序的新应用程序组以及一个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'。"

非常感谢任何帮助。

2 个答案:

答案 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";