Работа с заголовками 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 можно найти в учебной базе - имя пользователя Чарли включено в запрос.