我想在 Orion Context Broker NGSI API 级别提供访问控制,以确保真正的数据隔离。我想确保租户只能查询/更新他们的上下文,而不能查询/更新其他租户的上下文。
为此,我开始在 Orion Context Broker 前面放置一个Wilma PEP Proxy实例。然后,我根据官方IdM Keyrock docker映像配置了自己的 Identity Manager keyrock GE 实例,并根据官方AuthzForce docker 映像配置了自己的 Authorization PDP GE 。
经过几天的配置和多次尝试,我终于可以让这三个安全通用启用器正常工作,使用PEP 代理级别 2对 Orion Context Broker NGSI API 的请求进行身份验证和授权。
但是,2 级授权不足以保证我想要的,因为服务(租户)和子服务(应用程序路径)信息都在请求的标头中。特别是在Fiware-Service 和Fiware-ServicePath 标头中。为了构建基于标头的授权策略,您需要使用级别 3:XACML 授权。
问题是我在 Fiware 的官方文档中进行了一些挖掘,但找不到任何 XACML 策略的示例。除了 Wilma PEP Proxy 的官方文档(请参阅此处)外,您可能必须修改 PEP Proxy 源代码才能获得此级别的授权。
由于这种情况被认为是检查请求的高级参数,例如正文或自定义标头,因此这取决于具体的用例。因此,程序员应该修改 PEP 代理源代码以包含特定要求。
有这样可能吗?
我真的需要修改 PEP 代理源代码来实现像租户只能访问他的数据这样简单的事情吗?