gpt4 book ai didi

keycloak - ABAC with keycloak - 在策略中使用资源属性

转载 作者:行者123 更新时间:2023-12-02 21:37:33 69 4
gpt4 key购买 nike

我想要实现的目标

使用以下策略保护 Keycloak 中的资源:

if (resource.status == 'draft') $evaluation.grant(); 
else $evaluation.deny();

按照他们的官方documentsmailing list responses ,似乎基于属性的访问控制是可能的,但是,我找不到让它工作的方法。

我尝试过的

  • 使用Authorization Services :我无法弄清楚在哪里以及如何从资源实例注入(inject)属性。
  • 使用Authorization Context :我希望获得与资源和范围相关的策略,以便我可以自己评估它们。

到目前为止,我用这两种方法都没有取得任何进展。老实说,我对授权服务中使用的术语感到不知所措。

问题在 keycloak 中定义策略时如何使用资源实例的属性?

最佳答案

我在 Keycloak 4.3 中通过创建 JavaScript 策略解决了这个问题,因为属性策略(尚不存在)。这是我工作的代码示例(请注意,属性值是一个列表,因此您必须与列表中的第一项进行比较):

var permission = $evaluation.getPermission();
var resource = permission.getResource();
var attributes = resource.getAttributes();

if (attributes.status !== null && attributes.status[0] == "draft") {
$evaluation.grant();
} else {
$evaluation.deny();
}

关于keycloak - ABAC with keycloak - 在策略中使用资源属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40218752/

69 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com