首页 > 解决方案 > 在 Keycloak 7.x 中访问用户资源、策略和权限

问题描述

我正在评估要在我们的应用程序中使用的 Keycloak 7.X,它包含大约十二个微服务(Spring Boot)和四个 Angular 6.x 应用程序。我计划将 Keycloak 适配器用于 Angular 应用程序以及 Spring Boot 而不是用于 SpringBoot 的 OAuth 2.0。我的概念证明必须演示以下用例。

(1) 单点登录。(2) 基于角色的访问控制 (3) 策略和权限 - 例如,具有“主管”角色的用户应该能够访问组织所有员工的工资。但是,他/她只能给在主管同一地点工作的员工加薪。换句话说,每个用户都会有一个属性“位置”。即使用户的角色是“主管”,权限也必须考虑属性“位置”来确定对资源的访问。

我打算使用 JWT。JWT 将包含权限列表,各个微服务将使用“位置”和“权限”的组合来确定。

不幸的是,我无法在 Keycloak 中配置客户端以分配策略和权限,也无法在 Internet 上找到任何示例。

标签: keycloak

解决方案


要使用策略和权限,您的应用程序应该实现User-Manager Access 2.0 协议。阅读用户管理的访问文档页面以获取示例流程。

我打算使用 JWT。JWT 将包含权限列表,各个微服务将使用“位置”和“权限”的组合来确定。

如果访问定义背后的逻辑位于微服务中,那么您不需要策略和权限。您可以在 Keycloak 端定义角色(例如主管)和属性(例如位置)并将它们设置为包含在访问令牌(JWT)中。


推荐阅读