Fiware:如何使用keystone&;钥匙孔

Fiware:如何使用keystone&;钥匙孔,fiware,keystone,identity-management,fiware-wilma,Fiware,Keystone,Identity Management,Fiware Wilma,首先,我使用的是Identity Manager、Authorization PDP和PEP Proxy的Telefonica实现,而不是Keyrock、AuthZForce和Wilma PEP Proxy的Fiware参考实现。每个组件的源代码和参考文档可以在以下GitHub repos中找到: Telefonica keystone spassword: GitHub/telefonicaid/fiware keystone spassword Telefonica密钥传递: Git

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

  • Telefonica keystone spassword:
GitHub/telefonicaid/fiware keystone spassword

  • Telefonica密钥传递:
GitHub/telefonicaid/fiware keypass

  • 西班牙电信PEP代理:
GitHub/telefonicaid/fiware pep steelskin

此外,我正在使用自己内部安装的组件,没有Fi-Lab。除了安全组件,我还有一个IoT代理UL实例和一个Orion上下文代理实例

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

因此,问题是:

如何在Orion上下文代理API级别限制特定keystone用户仅访问与此设备关联的实体

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


在这方面我需要一些帮助,以知道我是否走上了正确的道路。

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

如Orion文件中所述:

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

此外,还有一些相关的问题:

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

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

我的意见是,您使用其他安全组件的方式是正确的


关于
“为每个用户设备对创建一个策略”
正如您所提到的,您最好考虑
“组策略”

我没有说Orion上下文代理提供访问控制。事实并非如此!为此,存在您提到的安全GEs(PEP代理、身份管理器和授权PDP)。同一三个GEs的两个不同实现是如何存在的。此外,关于Wilma PEP Proxy和Steelskin PEP Proxy之间的差异,还有一个不太详尽的堆栈溢出。我选择了三个GEs的Telefonica实现,因为GEG实现似乎对Fi-Lab有特定的扩展。但可能我的方式不对。实际上,我担心的是,至少在Telefonica的实现基础上,似乎没有一种自然的方式来实现我提出的访问控制类型。根据您的反应和活动,我发现您在使用ING实现(Wilma PEP Proxy等)方面有一些经验。您可以告诉我,是出于某种原因,还是在某些特定场景中,ING的实现更好?谢谢你好,埃米利亚诺。与您的问题相关,我的答案是
我的意见是,您使用其他安全组件的方式是正确的。
不幸的是,我只使用了安全GEris(Keyrock、Wilma和一点AuthZForce)。我没有使用您正在使用的安全组件,因此无法解释两者之间的主要区别。目前,我更喜欢使用GEris(GE引用实现),因为它们是“引用”。=)而且,为了避免许多个别政策,我会考虑采用集团政策的方法。