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

时间:2019-05-10 08:48:27

标签: keycloak oidc

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

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

我已经尝试通过以下方式在keycloak中进行建模。我有两个领域角色rootadmin,还有一些客户端(我的应用程序)角色rootadmineditview。领域角色是复合角色,它们在客户端中使用其对应角色(root-> may-app.root,admin-> my-app.admin)。

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

0 个答案:

没有答案