rest - 从 Keycloak 中的 REST API 中提取角色

标签 rest roles keycloak user-roles

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

最佳答案

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

  1. 前端对用户进行身份验证,并存储keycloak返回的JWT token
  2. 前端命中后端,包括请求 header 中的 token
  3. 后端获取 token ,使用公钥验证它(公钥由 keycloak 提供),如果 token 有效,则从 token 有效负载中获取角色并执行授权过程

关于rest - 从 Keycloak 中的 REST API 中提取角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55218180/

相关文章:

java - 如何使用 Spring Boot/Keycloak 验证后端到后端

java - Spring Boot Keycloak - 如何获取分配给用户的角色列表?

java - 浏览器不显示任何 XML 标签树

spring - Spring Security 上的组和 acl

java - 将散列电子邮件上传到服务器

sql - 如果不存在则创建 PostgreSQL ROLE (user)

c++ - qt 模型中的角色是什么以及 setRoleNames() 的作用是什么?

javascript - Nodejs REST Api 的 Keycloak 策略执行

http - :post, :put, & :delete? 的 Rails 3 link_to 生成器

php - 在 Magento 中,扩展 rest/products api 以检索返回列表中产品的标签和属性的性能如何?