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



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

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

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

任何提示将不胜感激。

如果我

理解正确的话,您提出的方案可以使用Steelskin PEP代理和多租户机制来实现(但有一些问题)。

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

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

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

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

希望对你有帮助

最新更新