我正在尝试为我的 API 设置基于密钥斗篷的 ABAC、基于属性的访问控制。我能够将其设置为创建一个基于 javascript 的策略,该策略查找特定的用户属性然后授予访问权限,例如
var context = $evaluation.getContext();
var identity = context.getIdentity();
var attributes = identity.getAttributes();
var privileges = attributes.containsValue('userAttributeFlag','Y');
if (privileges) {
$evaluation.grant();
}else{
$evaluation.deny();
}
这只有在属性userAttributeFlag添加为客户端的用户属性映射器时才有可能,以便在访问令牌中添加相同的内容
我的问题是,是否总是需要在访问令牌中添加属性才能使 ABAC javascript 策略起作用。将它添加到令牌的问题是,如果我们有很多属性会不必要地增加我们希望避免的令牌大小。
在映射器中,可以选择将属性添加到 userInfo,但是否可以通过基于 javascript 的策略对其进行评估。
谢谢你的帮助。