我需要授权我的应用程序(从现在起名为“Logic”)来管理 Keycloak 领域的用户。“逻辑”已经使用客户端凭据授予访问类型针对该领域进行了自身身份验证,因此代码已经可以运行。
现在,在 Keycloak 管理控制台中,我需要向客户端添加正确的角色,以便“Logic”有权调用 Keycloak 提供的任何 API 端点来管理领域用户。
在领域客户端列表中有一个名为 的客户端realm-management
,Keycloak 默认为每个领域提供该客户端。该客户端可以管理整个领域,而不仅仅是其用户,因此它有一个客户端角色列表。manage-users
是该列表中的角色之一,也是我需要分配给其他客户端(我logic
在 Keycloak 中命名)的角色。换句话说,我的“Logic”应用程序使用 keycloak client-idlogic
来验证自身,我需要将manage-users
角色添加到logic
客户端。
问题是,在我的客户端 ( logic
) 角色设置中,在客户端下列出的那些相同角色realm-management
根本没有列出,并且列表只有uma_protection
角色:
如果我通过在搜索框中键入“管理用户”来搜索“管理用户”,它不会显示。同时,如果我在客户端的角色列表中单击该角色realm-management
,它会显示没有用户拥有该角色,它允许我将该角色添加到用户,而不是客户端,即使该角色实际上列在客户端中( realm-management
) 。
logic
在我的客户端中创建一个同名的新角色manage-users
是可能的,但我不确定这是否可行。我的意思是,我为什么要重复现有的角色?闻起来有股错误的味道。
您能告诉我在Keycloak 23中将manage-users
角色添加到客户端的正确方法吗?
我终于从官方 Keycloak 支持社区的成员那里得到了答案,我在这里报告,以防其他人在这里找到我的问题。
达斯尼科写道:
可以通过选择过滤器“按客户端过滤”而不是“按领域角色过滤”来找到角色