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

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

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

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

Любые советы будут высоко оценены.

1 ответ

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

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

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

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

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

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

Другие вопросы по тегам