Fiware:如何使用 keystone 和 keypass 限制用户访问 Orion Context Broker API 的特定实体

Fiware: How to restrict user access to specific entity for Orion Context Broker API using keystone & keypass

首先,我使用的是 Identity Manager、授权 PDP 和 PEP 代理的 Telefonica 实现,而不是 Keyrock、AuthZForce 和 Wilma PEP 代理的 Fiware 参考实现。每个组件的源代码和参考文档可以在以下 GitHub repos:

中找到

GitHub /telefonicaid/fiware-keystone-spassword

GitHub /telefonicaid/fiware-keypass

GitHub /telefonicaid/fiware-pep-steelskin

此外,我正在使用我自己的内部组件安装,没有 Fi-Lab。除了安全组件之外,我还有一个 IoT Agent-UL 实例和一个 Orion Context Broker 实例。

从该配置开始,我在 keystone (Fiware-Service) 中创建了一个域,并在该域中创建了一个项目 (Fiware-ServicePath)。然后我将一台设备连接到平台,将数据发送到 PEP 代理后面的物联网代理。整个设备消息在 Orion Context Broker 中表示为单个实体。

所以,问题是:

如何在 Orion Context Broker API 级别限制特定 keystone 用户只能访问与此设备关联的实体?

我知道我可以 allow/deny 用户通过 keystone 角色和 XACML 策略访问特定 API 但这意味着我应该为每个用户-设备对创建一个策略。

我需要一些帮助才能知道我的方法是否正确。

我认为没有安全 GE 就无法对 Orion 进行访问控制。每个 GE 都有特定的目的,访问控制不是 Orion 的目的之一。

如 Orion 文档中的 Security Considerations 所述:

Orion doesn't provide "native" authentication nor any authorization mechanisms to enforce access control. However, authentication/authorization can be achieved the access control framework provided by FIWARE GEs.

另外还有一些相关的in another link:

Orion itself has no security. It’s designed to be run behind a proxy server which provides security and access control. Used within the FIWARE Lab, they run another service build on node.js, “PEP Proxy Wilma”, in front of it. Wilma checks that you have obtained a token from the FIWARE lab and put it in the headers.

此外,下面的link可以赞同我对Orion和访问控制的看法:

Fiware-Orion: Access control on a per subscription basis

我认为您使用其他安全组件的方式是正确的。

关于 "create one Policy per User-Device pair" 正如你所说,也许你最好考虑一下 "group policies"