Fiware-Orion:基于每个订阅的访问控制

时间:2016-02-18 17:02:25

标签: access-control fiware-orion

我想知道以下情况是否可行:

Fiware Orion Context Broker实例,不同的数据提供程序连接到该实例以发布其数据。对于每个数据项(上下文),特定数据提供者应该能够控制允许哪个应用程序或数据使用者订阅此上下文。猎户座有可能吗?怎么办呢?

我已经研究了多租户模型,但我想这不是正确的方法。我对吗?还有其他选择吗?您可以使用PEP代理保护Orion实例,但我想它不允许基于每个订阅进行访问控制。

任何提示都将受到高度赞赏。

1 个答案:

答案 0 :(得分:0)

如果我理解正确,可以使用Steelskin PEP代理和多租户机制(但有一些顾虑)实施您提议的方案。

在您的方案中,您的整个应用程序将是一项服务(在所有具有fiware服务的交易中表示),并且每个数据提供者将拥有一个专用的子服务(用fiwareservicepath标头表示)。所有用户(来自数据提供者和最终用户和应用程序的管理员)都将是该服务的用户。使用XACML,可以为不同角色的每个可能操作和用户分配不同的权限。例如:您可以在其子服务下创建一个具有完全权限的dataProvider角色,以及一个只能订阅和读取的dataConsumer角色。

此方案存在一些问题,主要涉及谁创建用户和角色以及为用户分配角色。要使用Steelskin,您必须将服务映射到Keystone域和子服务到Keystone项目;并且用户属于该域。负责创建用户的是域(服务)管理员,因此,在您的情况下,数据提供者将无法创建新用户(甚至可能将他们分配为子服务客户)。

如果您需要一个关于如何将这些部分连接在一起以实现此目的的示例,请查看:

https://github.com/telefonicaid/fiware-pep-steelskin/blob/master/keystoneInstallation.md

希望有所帮助