Как настроить контроль доступа в Orion NGSI API для изоляции клиентов с помощью Wilma PEP Proxy и IdM Keyrock?

Я хочу обеспечить контроль доступа на уровне API-интерфейса Orion Context Broker NGSI, чтобы гарантировать реальную изоляцию данных. Я хочу убедиться, что арендатор может запрашивать / обновлять только свои контексты, а НЕ контексты другого арендатора.

Для этого я начал ставить перед собой экземпляр Wilma PEP Proxy. контекстного брокера Orion. Затем я настроил свой собственный экземпляр GE keyrock Identity Manager на основе официального образа докера IdM Keyrock. и мой собственный PDP GE для авторизации на основе официального образа докера AuthzForce.

После нескольких дней конфигураций и многих попыток, наконец, я смог заставить эти три универсальных активатора безопасности работать нормально, аутентифицируя и авторизуя запросы для API Orion Context Broker NGSI с использованием прокси-сервера PEP уровня 2.

Однако уровня 2 авторизации недостаточно, чтобы гарантировать то, что я хочу, потому что информация об услуге (клиент) и вспомогательной службе (путь к приложению) содержится в заголовках запроса. В частности, в заголовках Fiware-Service и Fiware-ServicePath. Для создания политик авторизации на основе заголовков вам необходимо использовать уровень 3: авторизация XACML.

Проблема в том, что я покопался в официальной документации Fiware и не смог найти ни одного примера политики XACML. Помимо официальной документации Wilma PEP Proxy (см. здесь) говорит, что вам, возможно, придется изменить исходный код PEP Proxy, чтобы получить этот уровень авторизации.

Поскольку этот случай предназначен для проверки дополнительных параметров запроса, таких как тело или настраиваемые заголовки, это зависит от конкретного варианта использования. Таким образом, программист должен изменить исходный код прокси-сервера PEP, чтобы включить в него определенные требования.

Возможно ли это?

Действительно ли мне нужно изменять исходный код прокси-сервера PEP, чтобы добиться чего-то столь же простого, как если бы арендатор мог получить доступ только к своим данным?


person Emiliano Viotti    schedule 29.06.2017    source источник


Ответы (1)


очень хороший вопрос. Существуют альтернативные GE, которые полностью поддерживают те варианты использования, о которых вы говорите. Пожалуйста, проверьте эту презентацию

https://es.slideshare.net/FI-WARE/building-your-own-iot-platform-using-fiware-geis

спасибо лучше

person Jose Manuel Cantera    schedule 30.06.2017
comment
Jajajaj. Ваш ответ действительно очень хороший, но в моем случае я не думаю, что сильно помогу. Я уже использовал реализации Telefonica, Steelskin PEP Proxy, Keystone-spassword и Keypass, и с моей точки зрения они очень понятны и намного полнее, чем эталонные реализации. Однако он не обеспечивает поддержку OAuth2, и это очень важно, если вы хотите интегрироваться с другими GE, такими как Wirecloud. - person Emiliano Viotti; 30.06.2017
comment
Добавляя к моему предыдущему комментарию, я думаю, было бы здорово, если бы реализации Telefonica I + D могли быть интегрированы со всей экосистемой существующих GE в Fiware, используя OAuth2. Кроме того, реализация Telefonica не предоставляет портал управления, такой как IdM Keyrock, основанный на форке Horizon Openstack. Боюсь, что если мне нужна и интеграция OAuth2, и более точный контроль доступа, мне придется расширить одно из двух решений, войдя в исходный код. - person Emiliano Viotti; 30.06.2017