首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ADFS4.0 (2016) OpenID连接用户信息端点在提供访问令牌时返回401

ADFS4.0 (2016) OpenID连接用户信息端点在提供访问令牌时返回401
EN

Stack Overflow用户
提问于 2017-02-09 16:40:45
回答 2查看 5.7K关注 0票数 2

你知道为什么会这样吗。我已经配置了服务器应用程序和Web API,并颁发了ID令牌、访问令牌和刷新令牌。但是,调用userinfo端点将返回一个401,其中包含以下头消息:

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

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

代码语言:javascript
复制
eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IjVVbEw5a1JocDJNLUVzTDlBRDJOQ055aHZtdyJ9.eyJhdWQiOiJ1cm46bWljcm9zb2Z0OnVzZXJpbmZvIiwiaXNzIjoiaHR0cDovL3Rlc3Rsb2dpbi51bm9wcy5vcmcvYWRmcy9zZXJ2aWNlcy90cnVzdCIsImlhdCI6MTQ4NjYyOTUxOSwiZXhwIjoxNDg2NjMzMTE5LCJhcHB0eXBlIjoiQ29uZmlkZW50aWFsIiwiYXBwaWQiOiJrbnVkIiwiYXV0aG1ldGhvZCI6InVybjpvYXNpczpuYW1lczp0YzpTQU1MOjIuMDphYzpjbGFzc2VzOlBhc3N3b3JkUHJvdGVjdGVkVHJhbnNwb3J0IiwiYXV0aF90aW1lIjoiMjAxNy0wMi0wOVQwODozMjo1Ny4xNDZaIiwidmVyIjoiMS4wIiwic2NwIjoib3BlbmlkIiwic3ViIjoiM2krUGlyRncwSVlkdDVzTVNKQlpKbjVOTXZVWXZVdyt2WHI2Ujd1N0dBZz0ifQ.ajKtSk0xQE1crJkIA-lMLBZj2DtYE6xQo-Stmevh4pOGX17GEePbAFP-g6qPUwtGT_whVj74wRpSlyTBscp2JDsp_CW2E6BsTUI810S6jYRVjkYGxL1QcL1KoKJ8wyYKcxsCeOY2IUKNPnJOxV53Rs8E9EvJgjcsjTJHQw5Z_zC43dsTfCZvVfGrwJ3nn6BGxhIE_bEXvrWdgmg49V7-KK2kVDbDwJGr1iLpqU88-bkHdjGCIuc8XKX5pobWWlcyBmR_dpACM6Tu-d8jYJ_8mbof-eZrqn8YS61rgvRAhAAONyDklWcPgiYnhcMQVHZoCME-rVTjI6LDDY2czhL0rg
EN

回答 2

Stack Overflow用户

发布于 2019-03-25 15:11:19

这个问题很久以前就被问到了,但让我分享一下我的经验。如果您想要执行ADFS4.0 userInfo端点(win服务器2016),希望获得用户配置文件,但我所经历的是它只返回子属性ex:

代码语言:javascript
复制
{
    "sub": "MpR57wSIQz1kiR2uUMrkCQadbgDoztWmMV863Dugdso="
}

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

用于执行userinfo

例如:

代码语言:javascript
复制
curl -X GET \
  https://adfs.example.com/adfs/userinfo \
  -H 'Authorization: Bearer ACCESS_TOKEN

注意:在您的获取帐户代码中,您需要传递您的资源= urn:microsoft:userinfo

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

票数 2
EN

Stack Overflow用户

发布于 2017-02-11 05:27:22

我只做过一次,所以我还没有太多的建议。所以我不能提出任何建议,除非有更多的细节。

您应该尝试从AD FS端获取更多证据。使用以下命令启用调试日志

代码语言:javascript
复制
wevtutil sl "ad fs tracing/debug" /l:5 /e:true

执行repro,然后禁用日志,如下所示。

代码语言:javascript
复制
wevtutil sl "ad fs tracing/debug" /e:false

然后使用导出日志进行查看

代码语言:javascript
复制
wevtutil epl "ad fs tracing/debug" c:\temp\userinfoerr.evtx

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42131776

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档