Keycloak 授权策略与生产配置全解析
1. Keycloak 角色相关概念
Keycloak 提供了复合角色的概念,这是一种特殊类型的角色,它可以链接其他角色。当用户被授予复合角色时,会自动获得该链中的任何角色(常规角色甚至其他复合角色)。不过,使用复合角色时需谨慎,因为链接多个复合角色可能会导致性能问题,同时系统中角色的大量增加和权限的细化也会带来可管理性问题。建议在需要为用户授予多个角色时,考虑使用组并为这些组分配角色,这比使用复合角色更自然。
系统角色的建模方式会影响 Keycloak 颁发的令牌大小。理想情况下,令牌应包含客户端在本地或访问使用这些令牌的其他服务时授权用户所需的最少角色集。并且要记住,系统中的角色越多,维护和管理就越复杂。
2. 使用 GBAC(基于组的访问控制)
Keycloak 允许为领域管理组。用户被分组以表示他们与组织中特定业务单元的关系,或者根据他们在应用程序中的角色进行分组。在 Keycloak 中,组和角色有明确的区分,组用于组织用户,并根据与组关联的角色授予权限。通过允许为组分配角色,Keycloak 使管理多个用户的角色变得更加容易,无需为领域中的每个用户单独授予和撤销角色。
Keycloak 中的组是分层的,颁发令牌时,可以通过查看组的路径遍历层次结构。例如,有一个人力资源组,其下有一个经理组,当 Keycloak 在令牌中包含组信息时,格式可能为:/human resource/manager。与角色不同,组信息不会自动包含在令牌中,需要为客户端关联特定的协议映射器(或具有相同映射器的客户端范围)。
2.1 将组成员信息映射到令牌
由于没有默
超级会员免费看
订阅专栏 解锁全文
30

被折叠的 条评论
为什么被折叠?



