Fiware IDM:动态权限资源

时间:2018-07-13 00:07:29

标签: fiware xacml abac fiware-wilma authzforce

我已经在Docker中部署了基于Fiware通用引擎的应用程序。版本是:

  • 猎户座1.14
  • 天鹅座1.9.0
  • Authzforce 5.4.1
  • Keyrock:最新
  • Pep-proxy:7.0.1

但是,当我想在Keyrock中创建权限时,找不到在/resource1/<user>/info这样的资源字段中输入动态资源的特定语法或字符序列,或者仅指定了资源前缀,例如:/resource2/<whatever>

dynamic resource example

真正存在动态资源的语法,并且authzforce可以创建与动态资源相关联的权限,还是必须创建XACML规则?

1 个答案:

答案 0 :(得分:1)

是的,有必要创建一个高级XACML规则。例如,您可以查看IDM源代码中的XACML Rule template,该IDM源代码用于生成基本规则(用于静态资源路径)。您将不得不对其进行自定义(除了删除模板代码<%...%>之外),尤其是修改Target和Condition元素(使用XACML函数string-concatenate动态创建字符串/resource1/{param}/info)。

另一个困难是在PEP中获取{param}值,并确保将其在XACML请求中发送给AuthzForce PDP。从Pep's Authzforce client code(为简明起见,名称简称)可以看到,Pep-proxy仅获取/发送以下XACML属性:resource-id,sub-resource-id,action-id,subject-role。因此,例如,如果您希望用户ID为{param},则必须修改我刚刚提到的Pep代码,即从userInfo变量中提取用户ID,并添加相应的XACML属性(主题-id)。或使用自己的Pep,当然可以做任何想做的事情。