3

任何想法为什么会这样。我已经配置了一个服务器应用程序和一个 Web API,并发布了一个 ID 令牌、访问令牌和刷新令牌。但是,调用 userinfo 端点会返回一个 401,并带有以下标头消息:

WWW-Authenticate →Bearer error="invalid_token", error_description="MSIS9920: 收到无效的 UserInfo 请求。请求中的访问令牌无效。"

访问令牌根据http://jwt.io有效

eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IjVVbEw5a1JocDJNLUVzTDlBRDJOQ055aHZtdyJ9.eyJhdWQiOiJ1cm46bWljcm9zb2Z0OnVzZXJpbmZvIiwiaXNzIjoiaHR0cDovL3Rlc3Rsb2dpbi51bm9wcy5vcmcvYWRmcy9zZXJ2aWNlcy90cnVzdCIsImlhdCI6MTQ4NjYyOTUxOSwiZXhwIjoxNDg2NjMzMTE5LCJhcHB0eXBlIjoiQ29uZmlkZW50aWFsIiwiYXBwaWQiOiJrbnVkIiwiYXV0aG1ldGhvZCI6InVybjpvYXNpczpuYW1lczp0YzpTQU1MOjIuMDphYzpjbGFzc2VzOlBhc3N3b3JkUHJvdGVjdGVkVHJhbnNwb3J0IiwiYXV0aF90aW1lIjoiMjAxNy0wMi0wOVQwODozMjo1Ny4xNDZaIiwidmVyIjoiMS4wIiwic2NwIjoib3BlbmlkIiwic3ViIjoiM2krUGlyRncwSVlkdDVzTVNKQlpKbjVOTXZVWXZVdyt2WHI2Ujd1N0dBZz0ifQ.ajKtSk0xQE1crJkIA-lMLBZj2DtYE6xQo-Stmevh4pOGX17GEePbAFP-g6qPUwtGT_whVj74wRpSlyTBscp2JDsp_CW2E6BsTUI810S6jYRVjkYGxL1QcL1KoKJ8wyYKcxsCeOY2IUKNPnJOxV53Rs8E9EvJgjcsjTJHQw5Z_zC43dsTfCZvVfGrwJ3nn6BGxhIE_bEXvrWdgmg49V7-KK2kVDbDwJGr1iLpqU88-bkHdjGCIuc8XKX5pobWWlcyBmR_dpACM6Tu-d8jYJ_8mbof-eZrqn8YS61rgvRAhAAONyDklWcPgiYnhcMQVHZoCME-rVTjI6LDDY2czhL0rg
4

2 回答 2

2

这个问题是很久以前提出的,但让我分享一下我的经验。如果您想执行 ADFS 4.0 userInfo 端点(win server 2016)以希望获得用户配置文件,但我所经历的是它只返回子属性 ex:

{
    "sub": "MpR57wSIQz1kiR2uUMrkCQadbgDoztWmMV863Dugdso="
}

对于尝试使用 UserInfo 端点的任何人,您需要修改您的应用程序组,添加带有标识符 https://adfs.example.com/adfs/userinfo 的 api 并在客户端权限选项卡中勾选 openId。

用于执行用户信息

前任:

curl -X GET \
  https://adfs.example.com/adfs/userinfo \
  -H 'Authorization: Bearer ACCESS_TOKEN

注意:在您的 Acquire Accesstoken 代码中,您需要传递您的资源 = urn:microsoft:userinfo

ADFS userinfo 端点始终返回 OpenID 标准中指定的主题声明。AD FS 不提供通过 UserInfo 终结点请求的其他声明。如果您需要 ID 令牌中的其他声明,请参阅 AD FS 中的自定义 ID 令牌。

于 2019-03-25T07:11:18.527 回答
0

我只做过一次,所以我还没有太多建议。因此,除非有更多细节,否则我无法提出任何建议。

您应该尝试从 AD FS 方面获得更多证据。使用启用调试日志

wevtutil sl "ad fs tracing/debug" /l:5 /e:true

执行重现,然后按如下方式禁用日志。

wevtutil sl "ad fs tracing/debug" /e:false

然后导出日志以查看使用

wevtutil epl "ad fs tracing/debug" c:\temp\userinfoerr.evtx

在事件查看器中打开该事件日志,查看验证 JWT 时报告的其他错误。

于 2017-02-10T21:27:22.153 回答