Keycloak 如何为KeyClope中的内置角色定义更细粒度的权限或自定义逻辑

Keycloak 如何为KeyClope中的内置角色定义更细粒度的权限或自定义逻辑,keycloak,openid-connect,Keycloak,Openid Connect,Key斗篷提供了一些内置角色来管理Key斗篷本身。这些角色在每个非主领域的领域管理客户端中定义。例如,我可以定义一个拥有管理用户权限的用户。但是现在这个用户可以更改所有用户的所有角色。用户甚至可以更改自己的角色 在我们的应用程序中,我们需要以下方式的分层角色结构。我们有一个root,admin和一些其他特定的应用程序角色。root角色应该能够管理KeyClope客户领域以及一些特定于应用程序的功能。admin角色应具有管理用户的权限以及一些特定于应用程序的功能 我试着用下面的方法在KeyClop

Key斗篷提供了一些内置角色来管理Key斗篷本身。这些角色在每个非主领域的
领域管理
客户端中定义。例如,我可以定义一个拥有管理用户权限的用户。但是现在这个用户可以更改所有用户的所有角色。用户甚至可以更改自己的角色

在我们的应用程序中,我们需要以下方式的分层角色结构。我们有一个
root
admin
和一些其他特定的应用程序角色。
root
角色应该能够管理KeyClope客户领域以及一些特定于应用程序的功能。
admin
角色应具有管理用户的权限以及一些特定于应用程序的功能

我试着用下面的方法在KeyClope中建模。我有两个领域角色
root
admin
,还有一些客户端(我的应用程序)角色
root
admin
编辑
查看
。领域角色是复合角色,使用客户端中的对应角色(root->may-app.root,admin->my app.admin)

现在,问题是管理员用户可以将其角色更改为root。如何限制管理员用户的权限,使其仅允许管理同一级别或更低级别的用户或角色?是它们的内置功能,还是我应该在keydaporestapi之上提供自己的UI