是否可以在 keycloak 中为不同组中的用户添加不同的角色?
Posted
技术标签:
【中文标题】是否可以在 keycloak 中为不同组中的用户添加不同的角色?【英文标题】:Is it possible to add different roles to a user in different groups in keycloak? 【发布时间】:2019-04-21 16:55:24 【问题描述】:用户-Ankit 他分为两个组,分别命名为航班和酒店。 在飞行中,他是一名经理 在酒店,他是一名主管。
我们可以在 keycloak 的不同组中将这些不同的角色分配给 Ankit 吗?
【问题讨论】:
【参考方案1】:我认为您必须将角色分开以特定于团队 - 您需要一个航班经理角色和一个单独的酒店经理角色等等。
您可以assign roles to a user or group,但将角色分配给组实际上会将这些角色分配给组的所有成员。 I think this is pretty typical.
当您为用户分配角色时,您只需将角色分配给用户而不是组内的用户:
这里有一个thread in the keycloak mailing list。基本上,组只是收集用户的方式,而不是访问控制结构的一部分。
如果酒店和航班对应于应用程序,那么您可能需要考虑是否可以将它们处理为clients rather than groups,但我认为您仍然需要拥有不同的角色集。
【讨论】:
谢谢,但最后是不可能为不同组中的用户拥有多个角色吗? 请问动机是什么?您是否正在尝试将现有应用程序(例如使用 LDAP)移植到 keycloak(例如使用 LDAP 角色映射器)?或者这是一个新的应用程序?我想知道你的选择是什么。无论哪种方式,我认为您都必须创建不同的角色,例如航班经理和酒店经理。 我正在尝试使用 LDAP 将现有应用程序移植到 keycloak。 好的,那么我认为您需要为航班经理、航班开发人员和酒店经理、酒店开发人员提供单独的密钥斗篷角色。那么来自 ldap 的角色映射需要根据 ldap 组区分哪个 ldap 角色映射到一个 keycloak 角色。这可能是迁移过程的一部分,也可能是使用角色映射功能完成的,但我认为无论哪种方式都需要一些定制/编码。 如果您仍然不确定,也可以随时在 keycloak 邮件列表中询问。也许有人可以提供一个例子。以上是关于是否可以在 keycloak 中为不同组中的用户添加不同的角色?的主要内容,如果未能解决你的问题,请参考以下文章
我们如何在 Keycloak 授权服务策略中为所有用户分配权限?
我们可以在 JavaScript 中为不可变对象添加属性吗?
springboot 应用程序中的 keycloak.json 文件