Как сервисы Fiware и пути сервисов могут использоваться в правилах XACML? - PullRequest
0 голосов
/ 13 февраля 2019

Мы ищем Keyrock + Wilma + AuthZForce для защиты нашей системы FIWARE, работающей под управлением Orion и Quantum Leap.Объекты в нашей системе находятся под услугами и путями обслуживания.Доступ к ним осуществляется с помощью соответствующих заголовков, а именно Fiware-Service и Fiware-Servicepath.

Я пытаюсь создать правила XACML для AuthZForce, которые бы включали сервисы и пути к сервисам, но пока не увенчались успехом.Если бы кто-нибудь смог сделать это, я был бы признателен за помощь.Кроме того, если этот подход неверен, я был бы признателен за другие предложения о том, как службы и пути обслуживания могут использоваться с контролем доступа FIWARE.

1 Ответ

0 голосов
/ 15 февраля 2019

Работа с заголовками FIWARE не является проблемой для Authzforce , это просто поведение по умолчанию PEP Proxy .

Authzforce - это полностью общий PDP, если вы предоставите правильный набор политик XACML и отправите соответствующие данные, которые он вынесет за вас.Следующий <Rule> будет permit весь доступ к /v2/entities, когда fiware-header = "smartgondor"

<?xml version="1.0" encoding="UTF-8"?>
<Rule RuleId="ccxsx-xs-xsx-xsxs-xs" Effect="Permit">
   <Description>Context Broker Access with Header=SmartGondor</Description>
   <Target>
      <AnyOf>
         <AllOf>
            <Match MatchId="urn:oasis:names:tc:xacml:3.0:function:string-starts-with">
               <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">/v2/entities</AttributeValue>
               <AttributeDesignator Category="urn:oasis:names:tc:xacml:3.0:attribute-category:resource" AttributeId="urn:thales:xacml:2.0:resource:sub-resource-id" DataType="http://www.w3.org/2001/XMLSchema#string" MustBePresent="true" />
            </Match>
         </AllOf>
      </AnyOf>
      <AnyOf>
         <AllOf>
            <Match MatchId="urn:oasis:names:tc:xacml:1.0:function:string-equal">
               <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">smartgondor</AttributeValue>
               <AttributeDesignator Category="urn:oasis:names:tc:xacml:3.0:attribute-category:resource" AttributeId="fiware-header" DataType="http://www.w3.org/2001/XMLSchema#string" MustBePresent="true" />
            </Match>
         </AllOf>
      </AnyOf>
   </Target>
</Rule>

К сожалению, проблема заключается в том, что по умолчанию PEP Proxy код при отправке запроса в Authzforce только из коробки передает следующие значения:

  • ролей
  • action
  • resourceURL
  • appId

Как вы можете видеть, информация заголовка не передается по умолчанию .

Чтобы включить информацию о заголовках FIWARE.Вам нужно будет изменить файл, чтобы прочитать заголовки из запроса, отправленного прокси-серверу PEP, и добавить еще один атрибут, отправленный с запросом в Authzforce.Более простой пример такого рода пользовательских запросов можно найти в Tutorial для администрирования XACML

Сотрудники службы безопасности могут звонить только в будильник до 9:00 или после 17:00, кромедля Чарли, который может позвонить в любое время

Пользовательский код для отправки запроса в Authzforce можно найти в учебной базе - имя пользователя Чарли включено в запрос.

...