如何在Keycloak中实现属性级别的访问控制

问题描述 投票:0回答:1

我需要有能力限制资源对象上各个属性的变异。

例如:允许John更新Foo.bar和Foo.baz,但只允许Jane更新Foo.bar

在Keycloak中有什么方法可以做到这一点?也许使用JavaScript策略执行器,可以根据一系列细粒度的作用域(foo:bar:update,foo:baz:update)或类似内容检查PUT的有效负载?

openid-connect keycloak acl access-control
1个回答
0
投票

在体系结构PoV中,策略实施-授权-本身应由API网关执行。网关会将传入的请求与一组预定义的策略进行比较,然后对请求进行授权。

在Keycloak中,您可以使用Groups

Roles的组合。组可以具有定义的角色,该角色将应用于组的所有成员。因此,您创建的用户是多个组的成员,导致具有多个角色。

PS:就我个人而言,我没有使用Scopes

的经验,但它也应该有效。

示例:

您创建具有角色Bar的组BAR和具有角色BazBAZ。然后,您将用户John分配给BarBaz,将Jane分配给Bar。在API网关上,根据Authorization标头传入的角色数组检查PUT请求的属性。

© www.soinside.com 2019 - 2024. All rights reserved.