Fiware IDM:动态权限资源

Posted

技术标签:

【中文标题】Fiware IDM:动态权限资源【英文标题】:Fiware IDM : Dynamic permission resource 【发布时间】:2018-07-13 00:07:28 【问题描述】:

我在 Docker 中部署了一个基于 Fiware 通用启用程序的应用程序。版本是:

猎户座 1.14 天鹅座 1.9.0 Authzforce 5.4.1 Keyrock:最新的 Pep 代理:7.0.1

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

动态资源的语法确实存在,authzforce 可以创建与动态资源关联的权限,还是有必要创建 XACML 规则?

【问题讨论】:

目前不支持使用动词/资源格式。您可以通过配置高级 XACML 规则来实现它 祝你好运! Fiware 社区中几乎没有关于此的文档。您可以开始寻找 Fiware IdM 如何在 Authzforce 中存储 Verb + PATH 规则(因为它实际上将这些规则中的每一个都转换为 XACML 策略,至少当它基于 Openstack Keystone 项目时它是这样工作的)然后生成您自己的XACML 政策。很抱歉,我无法为您提供更多帮助。 【参考方案1】:

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

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

【讨论】:

以上是关于Fiware IDM:动态权限资源的主要内容,如果未能解决你的问题,请参考以下文章

AuthZForce-PEP-IDM 即使用户没有特定资源的权限,也始终允许访问

Spring Security基于动态角色资源权限校验

(亲测)1分钟破解IDM权限,傻瓜都能学会的破解方法(番外篇:利用破解工具直接破解IDM)

shiro动态控制url资源

基于ESB权限初始化流程开发总结

Spring Security之动态配置资源权限