dub*_*bes 5 abac keycloak keycloak-services
我正在努力实现的目标
使用以下策略保护 Keycloak 中的资源:
if (resource.status == 'draft') $evaluation.grant();
else $evaluation.deny();
Run Code Online (Sandbox Code Playgroud)
根据他们的官方文档和邮件列表响应,基于属性的访问控制似乎是可能的,但是,我找不到让它工作的方法。
我试过的
到目前为止,我已经设法用这两种方法一无所获。老实说,我对授权服务中使用的术语感到不知所措。
问题 在 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();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4427 次 |
| 最近记录: |