从Keycloak中的REST API提取角色

时间:2019-03-18 09:28:59

标签: rest roles keycloak user-roles

在我公司,我们需要从Keycloak提供的REST API中提取已登录用户的角色。我们已经浏览了Keycloak文档,但找不到所需的答案。让我解释一下我们要实现的流程:用户登录到Keycloak中定义的客户端,并接收存储在应用程序Web客户端中的JWT。该用户不是Keycloak中的管理员。当Web客户端向后端服务器发出请求时,后端服务器向Keycloak查询用户的角色。而且,这就是我们遇到麻烦的地方。我们无法确定REST API的正确URL或要添加到身份验证标头的令牌。 总结:我们需要有关URL的帮助,该URL需要查询用户角色以及要发送的令牌以针对API进行授权。我知道可以从JWT检索角色,但是我们担心有效负载会随着时间的流逝而变大。一个用户可能在不同部门中具有多个角色。

1 个答案:

答案 0 :(得分:0)

角色应该在JWT有效负载中,应该在keycloak服务中进行配置。流应该是这样的:

  1. 用户通过前端身份验证并存储由keycloak返回的JWT令牌
  2. 前端碰到后端,包括请求标头中的令牌
  3. 后端获取令牌,并使用公钥(由keycloak提供公钥)对其进行验证,如果令牌有效,则从令牌有效载荷中获取角色并执行授权过程