Keycloak访问令牌与UserInfo令牌?

时间:2018-02-16 13:25:15

标签: oauth oauth-2.0 openid-connect keycloak

使用Keycloak时,访问令牌与用户信息令牌有何不同?

从OAuth2 / OpenIDConnect我了解到访问令牌提供了用户已经过身份验证的信息 并且您需要使用用户信息令牌来获取有关用户及其个人资料/角色等的更多信息。

当我查看https://jwt.io/与UserInfo令牌之类的访问令牌时。我能够获得有关用户个人资料和信息的相同信息。角色。

为什么会这样,使用Keycloak时访问令牌与用户信息令牌有何不同?

2 个答案:

答案 0 :(得分:3)

访问令牌旨在让您访问应用程序的资源。要获取访问令牌,您必须使用spec定义的任何流进行身份验证。在keycloak中,访问令牌包含用户名和角色,但您也可以使用管理面板add custom claims。添加一些声明可能很有用,因为令牌是在每个请求中发送的,您可以从应用程序中解码它。

根本没有用户信息令牌,实际上它是endpoint。使用您在第一步中获得的访问令牌访问此端点,并且通常提供JSON响应以及有关用户的详细信息(例如用户数据,角色......)。

答案 1 :(得分:2)

我设法弄清楚如何在这两个端点使用Keyclok时获取不同的数据:

Keycloak为" OIDC令牌和SAML断言映射提供功能"而且你也可以控制索赔的位置。" 通过使用按钮: - 添加到ID令牌 - 添加访问令牌 - 添加到userinfo 通过设置"添加到ID令牌"和"添加访问令牌"一些映射器关闭。 这些将不会包含在AccessToken中,因为它们将出现在UserInfo响应中。

http://www.keycloak.org/docs/latest/server_admin/index.html#_protocol-mappers