Мониторинг Orion Context Broker для создания новых правил XACML - PullRequest
0 голосов
/ 24 января 2019

Я хотел бы знать, возможно ли достичь этой рабочей среды:

Я создаю защищенного контекстного брокера Orion через PEP, PDP, PAP и т. Д. Мне бы хотелось, чтобы в случае, если Orion хранит ненормальное значение для атрибута, было отправлено предупреждение (например, по электронной почте), и было создано новое правило XACML, чтобы пользователь роли мог видеть эти значения (до того, как это произойдет, он не не должно быть разрешения, чтобы увидеть это).

Возможно ли это? Если это так, как я могу этого достичь? Есть ли возможность сделать это через Дженкинса?

1 Ответ

0 голосов
/ 25 января 2019

В случае, если Orion хранит ненормальное значение для атрибута, отправлено предупреждение (например, электронное письмо)

Компонентом FIWARE, используемым для отправки электронного письма, в этом случае будет Обработка сложных событий - например, Perseo

Вы можете настроить правило EPL для отправки электронного письма

Настройка правила XACML, разрешающего доступ только в том случае, если атрибут «ненормальный»

Это выглядит как стандартное предложение <Condition>, например, следующее:

<Condition>
   <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:time-greater-than-or-equal">
      <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:time-one-and-only">
         <EnvironmentAttributeSelector DataType="http://www.w3.org/2001/XMLSchema#time"
           AttributeId="urn:oasis:names:tc:xacml:1.0:environment:current-time"/>
      </Apply>
      <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#time">17:00:00</AttributeValue>
   </Apply>
</Condition>

разрешит действие только после определенного времени суток.

Полагаю, вы можете использовать "urn:oasis:names:tc:xacml:1.0:function:double-greater-than" или urn:oasis:names:tc:xacml:1.0:function:integer-greater-than" в <Condition> что-то вроде:

<Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:integer-greater-than-or-equal">
   <SubjectAttributeDesignator SubjectCategory="urn:oasis:names:tc:xacml:1.0:subjectcategory:accesssubject" AttributeId="SubjectClassificationRank" DataType="http://www.w3.org/2001/XMLSchema#integer" MustBePresent="false"></SubjectAttributeDesignator>
   <ResourceAttributeDesignator AttributeId="ResourceClassificationRank" DataType="http://www.w3.org/2001/XMLSchema#integer" MustBePresent="false"></ResourceAttributeDesignator>
</Apply>

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

Логика должна быть примерно такой:

  1. Всякий раз, когда PEP Proxy вызывается, в пределах PEP Proxy совершается прямой вызов Orion для получения текущего значения атрибута.
  2. В вашем PEP Proxy измените функцию создания XML, добавив соответствующий атрибут.
  3. Позвоните в Authzforce, чтобы проверить, разрешен ли запрос

Дело в том, что стандартный код PEP Proxy не будет иметь необходимой информации, позволяющей Authzforce выносить решения, поэтому вам придется добавить в больше информации.

Более простой сценарий того же типа происходит в следующем Учебном пособии - здесь адрес электронной почты пользователя добавляется к запросу к Authzforce , вам просто нужно применить тот же принцип.

...