Я разрабатываю политику XACML, и я использую библиотеку sun.xacml. Я хочу сравнить два атрибута: один для темы и один для ресурса, разрешающий доступ к ресурсам.Сравнение атрибутов внутри политики XACML
Я создал этот XACML файл
<?xml version="1.0"?>
<Policy PolicyId="GeneratedPolicy" RuleCombiningAlgId="urn:oasis:names:tc:xacml:1.0:rule-combining-algorithm:permit-overrides">
<Description>Policy che permette la lettura del file ai client che hanno un livello di permesso maggiore o uguale al livello di permesso del file richiesto</Description>
<Target>
<Subjects>
<AnySubject/>
</Subjects>
<Resources>
<AnyResource/>
</Resources>
<Actions>
<Action>
\t <ActionMatch MatchId="urn:oasis:names:tc:xacml:1.0:function:string-equal">
\t <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">read</AttributeValue>
\t <ActionAttributeDesignator AttributeId="urn:oasis:names:tc:xacml:1.0:action:action-id" DataType="http://www.w3.org/2001/XMLSchema#string"/>
\t </ActionMatch>
</Action>
</Actions>
</Target>
<Rule RuleId="canRead" Effect="Permit">
<Target>
<Subjects>
\t <AnySubject/>
</Subjects>
<Resources>
\t <AnyResource/>
</Resources>
<Actions>
\t <Action>
\t <ActionMatch MatchId="urn:oasis:names:tc:xacml:1.0:function:string-equal">
\t \t <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">read</AttributeValue>
\t \t <ActionAttributeDesignator AttributeId="urn:oasis:names:tc:xacml:1.0:action:action-id" DataType="http://www.w3.org/2001/XMLSchema#string"/>
\t </ActionMatch>
\t </Action>
</Actions>
</Target>
<Condition FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-greater-than-or-equal">
<Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-one-and-only">
\t <SubjectAttributeDesignator AttributeId="level-permission" DataType="http://www.w3.org/2001/XMLSchema#string"/>
</Apply>
<AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">4</AttributeValue>
</Condition>
</Rule>
<Rule RuleId="FinalRule" Effect="Deny"/>
</Policy>
Проблема заключается в том, что ресурс имеет уровень-разрешение и я хочу, чтобы сравнить уровень-разрешения субъекта и уровень-разрешение ресурса, но я не знаю, как это сделать.
большое спасибо
Я не уверен, я понимаю, что именно вы пытаетесь сделать. На что вы ссылаетесь на «уровень-разрешение»? Это какой-то уровень доступа, как у вас в модели MLS, где каждый субъект будет иметь (максимальный) уровень доступа (секретный, секретный, ...), и каждый ресурс будет иметь (минимальный) уровень доступа как Что ж? –
Можете ли вы выразить на простом старом английском (или итальянском), какова ваша конечная цель? Например: пользователь с ролью == manager хочет выполнить действие == представление на документах типа X, если и только классификация документов <пользовательское оформление. –
Кроме того, это выглядит как политика XACML 1.1 или XACML 2.0. Что вы использовали для создания политики? Вы заглянули в ALFA? –