【问题标题】:KeyCloak /userinfo not returning user info, returns what appears to be a tokenKeyCloak /userinfo 不返回用户信息,返回似乎是一个令牌
【发布时间】:2021-11-28 14:53:05
【问题描述】:

这是我在邮递员中尝试的流程。

  1. 获取访问令牌 {{server}}/auth/realms/{{realm}}/protocol/openid-connect/token

我得到了访问令牌。然后我运行下一个查询

  1. {{server}}/auth/realms/{{realm}}/protocol/openid-connect/userinfo

我把这些放在标题中 内容类型:application/x-www-form-urlencoded 授权:承载{{access_token}}

我得到一个随机字符串作为回报 eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJnN0FHMmJXMmhmQzBLTHJ0S1NUV2V4eTBGWVhsYklybXVEdnF0aDF2MFpNIn0.eyJzdWIiOiIxOGI0OTJhMy0wOGFlLTQ2NjQtODBjNi1iZGQ5Nzk2ODdiMzQiLCJhdWQiOiJibGluZHNwb3QtYXV0aCIsImlzcyI6Imh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9hdXRoL3JlYWxtcy9CbGluZHNwb3QifQ.UNyZ2AifgqK9NAiSVwWMFT4_EEleMBztodPHu19NrzIt0DUteK4gfYlgAf-Yfk6w3ue3TyjpD93HFlM-1AG2bHgIyIxI01IbEB2ew9b8xgLiexLrQkgQHIWWWFxSOqQCBo0VPgY3yi0ib3sqeBAcxpvfOhtvQuEH0lHdPFXh8DTJQL18Q3TAhTRpknpwIQ5mpjhaeIW2HXpExrPp6-35r2riPifS_nFNaTqPTSWAFHBiqFEa2_PnQcC6f09jGQYYGkjHnetuAdcmxmhskb59YYlqvRpvezi-Af9IHNhCDad0zomMJK5ajIYUcaXWpAuQZMhPp1OvTB79Olc-YUUOIg P>

【问题讨论】:

    标签: postman keycloak keycloak-rest-api


    【解决方案1】:

    用户信息规范未指定 Content-Type: application/x-www-form-urlencoded 标头 - 请参阅 https://openid.net/specs/openid-connect-core-1_0.html#UserInfoRequest

    因此,仅使用标准 GET 请求 {{server}}/auth/realms/{{realm}}/protocol/openid-connect/userinfoAuthorization: Bearer {{access_token}} 标头。

    【讨论】:

    • 我删除了 content-type 并且它返回了相同的信息。
    • @MichaelMcDermott 你确定你使用的是当前的 Keycloak 版本(15)吗?你在使用访问令牌吗?你在邮递员和 keycloak 之间没有任何拦截器(代理、LB、WAF ......)?
    • 我正在使用当前版本。我能够成功获得令牌。当我在 keycloak 中更新范围等时,返回数据会发生变化,但它不会以 json 形式返回
    • @MichaelMcDermott 你有没有返回用户信息声明的客户端级别的映射器?
    【解决方案2】:

    要获取用户信息,您必须使用此端点发出获取请求:{{keycloak_url}}/auth/realms/{{realm}}/protocol/openid-connect/userinfo, in Authorization : 持有令牌

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-09
      • 2021-02-09
      • 2018-07-27
      • 2020-04-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多