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

  • Telefonica梯形密码:

  • GitHub / telefonicaid / fiware-keystone-spassword
  • Telefonica密码:

  • GitHub / telefonicaid / fiware-keypass
  • 西班牙电信PEP代理:

  • GitHub / telefonicaid / fiware-pep-steelskin

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

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

    因此,问题是:

    如何在Orion Context Broker API级别上限制特定的梯形失真用户仅访问与此设备关联的实体?

    我知道我可以通过基石角色和XACML策略允许/拒绝用户访问特定的API,但这意味着我应该为每个用户设备对创建一个策略。

    我可以为此提供一些帮助,以了解我的方法是否正确。

    最佳答案

    我认为没有安全GE的Orion无法完成访问控制。每个GE都有特定的用途,访问控制不是Orion的用途之一。

    如Orion文档中Security Considerations所述:

    Orion不提供“本机”身份验证,也不提供用于实施访问控制的任何授权机制。但是,可以通过FIWARE GE提供的访问控制框架来实现身份验证/授权。

    另外,还有一些与in another link相关的内容:

    Orion本身没有安全性。它设计为在可提供安全性和访问控制的代理服务器后运行。他们在FIWARE实验室中使用,在它前面的node.js上运行另一个服务构建,即“PEP Proxy Wilma”。 Wilma会检查您是否已从FIWARE实验室获得 token 并将其放在 header 中。

    此外,下面的链接可以支持我对Orion和访问控制的看法:

    Fiware-Orion: Access control on a per subscription basis

    我的观点是,您以正确的方式使用了其他安全组件。

    就像您提到的有关"create one Policy per User-Device pair"一样,也许您最好考虑一下"group policies"

    10-01 11:19