Fiware-Orion: контроль доступа по подписке

Хотелось бы узнать, возможен ли следующий сценарий:

Экземпляр Fiware Orion Context Broker, к которому разные поставщики данных подключаются для публикации своих данных. Для каждого элемента данных (контекста) конкретный поставщик данных должен иметь возможность контролировать, какому приложению или потребителю данных разрешено подписываться на этот контекст. Возможно ли это с Орионом? Как это может быть сделано?

Я изучал модель с несколькими арендаторами, но полагаю, что это неправильный способ. Я прав? Есть ли альтернативы? Вы можете защитить экземпляр Orion с помощью прокси-сервера PEP, но я предполагаю, что он не позволяет управлять доступом для каждой подписки.

Будем очень признательны за любые подсказки.


person Edwin    schedule 18.02.2016    source источник


Ответы (1)


Предлагаемый вами сценарий может быть реализован, если я правильно понял, с помощью Steelskin PEP Proxy и многопользовательского механизма (но с некоторыми проблемами).

В вашем сценарии все ваше приложение будет сервисом (указанным во всех транзакциях с fiware-сервисом), и каждый поставщик данных будет владеть выделенным вспомогательным сервисом (обозначенным заголовком fiwareservicepath). Все пользователи (как администраторы поставщиков данных, так и конечный пользователь и приложения) будут пользователями этой службы. Используя XACML, каждому возможному действию и пользователю с разными ролями могут быть назначены разные разрешения. Например: вы можете создать роль dataProvider с полными разрешениями для ее подуслуги и роль dataConsumer, которая должна иметь возможность просто подписываться и читать.

В этом сценарии есть некоторые проблемы, в основном связанные с тем, кто создает пользователей и роли и назначает роли пользователям. Чтобы использовать Steelskin, вам необходимо сопоставить сервисы с доменами Keystone, а подуслуги - с Keystone Projects; а пользователи принадлежат домену. Именно администратор домена (службы) отвечает за создание пользователей, поэтому в вашем случае поставщики данных не смогут создавать новых пользователей (и, возможно, даже назначать их в качестве клиентов субуслуг).

Если вам нужен пример того, как соединить эти части вместе для достижения этой цели, взгляните на:

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

Надеюсь, это поможет

person Daniel Morán Jiménez    schedule 22.02.2016