В случае, если 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 мог выносить решение.
Логика должна быть примерно такой:
- Всякий раз, когда PEP Proxy вызывается, в пределах PEP Proxy совершается прямой вызов Orion для получения текущего значения атрибута.
- В вашем PEP Proxy измените функцию создания XML, добавив соответствующий атрибут.
- Позвоните в Authzforce, чтобы проверить, разрешен ли запрос
Дело в том, что стандартный код PEP Proxy не будет иметь необходимой информации, позволяющей Authzforce выносить решения, поэтому вам придется добавить в больше информации.
Более простой сценарий того же типа происходит в следующем Учебном пособии - здесь адрес электронной почты пользователя добавляется к запросу к Authzforce , вам просто нужно применить тот же принцип.