使用ADFS 4.0和OpenID Connect调用UserInfo时出现401错误

9
我已成功创建了一个新的应用程序组,其中包括一个服务器应用程序和一个 Web API,OpenID Connect 协议在没有问题的情况下工作,直到我尝试调用 UserInfo。依赖方标识符与服务器应用程序的客户端 ID 相同(根据我在网上阅读的示例)。在尝试调用 UserInfo 时,我会收到以下错误: WWW-Authenticate: Bearer error="invalid_token", error_description="MSIS9921: 接收到无效的 UserInfo 请求。访众 'microsoft:identityserver:21660d0d-93e8-45db-b770-45db974d432d' 在访问令牌中与 UserInfo 信任的标识符 'urn:microsoft:userinfo' 不同。" 如有帮助,将不胜感激。

你使用了什么授权?Postman流程 - https://gist.github.com/nzpcmad/ab979533ba673ae837d7e3a607b9d5c1 - rbrayb
参数.Add("grant_type", "authorization_code"); - Frank Z
你有找到任何方法让它工作了吗? - kakabali
2个回答

0

我最近在使用ASP.NET Core OpenIDConnect提供程序时遇到了与ADFS相关的错误。在我的情况下,完全禁用UserInfo请求解决了这个问题:

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

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


我找到了相同的解决方案,但现在我想使用离线的访问令牌和UserInfo端点来监视用户的属性(特别是他们在IP上是否仍然启用),所以我正在尝试弄清楚如何再次使其工作... - MikeJansen
1
我也非常想知道如何使其工作。Spring有一些很好的库,可以与其他OIDC提供程序“无缝”配合使用。但需要花费一些精力来避免/userinfo端点。 - anschoewe

-2

只需相应地设置资源:

options.Resource = "urn:microsoft:userinfo";

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接