【问题标题】:Extract roles from REST API in Keycloak从 Keycloak 中的 REST API 中提取角色
【发布时间】:2019-08-08 15:12:06
【问题描述】:

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

【问题讨论】:

    标签: rest roles keycloak user-roles


    【解决方案1】:

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

    1. 前端认证用户,存储keycloak返回的JWT令牌
    2. 前端命中后端包括请求头中的token
    3. 后端获取token,使用公钥验证(公钥由keycloak提供),如果token有效,则从token payload中获取角色并执行授权过程

    【讨论】:

    • 感谢您的回答。我了解您描述的流程是“正常”流程。在我们的例子中,一个用户可能有很多角色(用户可以在不同的部门有多个角色),我们担心随着时间的推移这可能会导致 JWT 中的负载过大。这就是我们要从 keycloak 服务器中提取角色的原因。
    • 哦,我明白了,那我建议你看看这个keycloak.org/docs/latest/authorization_services/…,我没用过,但看起来它就是你要找的。​​span>
    猜你喜欢
    • 2018-07-05
    • 2021-09-06
    • 2021-11-01
    • 2020-10-30
    • 2019-12-07
    • 2021-12-12
    • 1970-01-01
    • 2019-08-27
    • 2021-09-12
    相关资源
    最近更新 更多