我想在Orion Context Broker NGSI API级别提供访问控制,以确保真正的数据隔离.我想确保租户只能查询/更新他们的上下文而不是其他租户的上下文.
为此,我开始在Orion Context Broker前面放置一个Wilma PEP Proxy的实例.然后我根据官方IdM Keyrock docker镜像和我自己的授权PDP GE,基于官方AuthzForce docker镜像配置了我自己的Identity Manager keyrock GE实例.
经过几天的配置和多次尝试,最后我可以让这三个安全通用启动器正常工作,使用PEP代理级别2对Orion Context Broker NGSI API进行身份验证和授权请求.
但是,授权级别2不足以确保我想要的内容,因为服务(租户)和子服务(应用程序路径)信息位于请求的标头中.特别是在Fiware-Service和Fiware-ServicePath标头中.要构建基于标头的授权策略,您需要使用级别3:XACML授权.
问题是我在Fiware的官方文档中进行了一些挖掘,我找不到任何XACML策略的例子.除了Wilma PEP Proxy的官方文档(参见here)之外,您可能需要修改PEP代理源代码才能获得此级别的授权.
As this case is thought to check advanced parameters of the request such us the body or custom headers, it depends on the specific use case. So the programmer should modify the PEP Proxy source code in order to include the specific requirements.
它可能吗?
我是否真的必须修改PEP代理源代码才能实现像租户只能访问其数据一样简单的东西?
最佳答案 非常好的问题.有替代的GE可以完美支持您所指的用例.请查看此演示文稿
https://es.slideshare.net/FI-WARE/building-your-own-iot-platform-using-fiware-geis
谢谢,最好