6

我已经成功地创建了一个带有服务器应用程序和 Web API 的新应用程序组,并且 OpenID Connect 协议在我尝试调用 UserInfo 之前没有任何问题。依赖方标识符与服务器应用程序的客户端 ID 相同(根据我在线阅读的示例)。尝试调用 UserInfo 时出现以下错误:

WWW-Authenticate: Bearer error="invalid_token", error_description="MSIS9921: Received invalid UserInfo request. Audience 'microsoft:identityserver:21660d0d-93e8-45db-b770-45db974d432d' in the access token is not same as the identifier of the UserInfo relying party trust 'urn:microsoft:userinfo'."

任何帮助将不胜感激。

4

2 回答 2

0

我最近在使用 ADFS 和 ASP.NET Core OpenIDConnect 提供程序时也遇到了这个错误。就我而言,禁用 UserInfo 请求完全解决了这个问题:

var openIdOptions = new OpenIdConnectOptions
{
  ...
  GetClaimsFromUserInfoEndpoint = false
};

完成此操作后,我仍然拥有我的应用程序所需的声明 - 电子邮件、SID、姓名等。我确信在某些情况下这不起作用,但很高兴知道您可能根本不需要 /userinfo . 我仍然想知道为什么从 ADFS 返回的令牌不能用于调用 /userinfo,以及如何在 ASP.NET OpenIDConnect 提供程序中修复它。

于 2017-08-18T17:42:59.597 回答
-2

只需相应地设置资源:

options.Resource = "urn:microsoft:userinfo";
于 2020-06-10T11:47:04.360 回答