Ресурсы чтения XACML - PullRequest
       15

Ресурсы чтения XACML

0 голосов
/ 09 октября 2019

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

<Rule Effect="Permit" RuleId="Rule Permit #1">
    <Target>
        <AnyOf>
            <AllOf>
                <Match MatchId="urn:oasis:names:tc:xacml:1.0:function:string-regexp-match">
                    <AttributeValue 
                        DataType="http://www.w3.org/2001/XMLSchema#string">any
                    </AttributeValue>
                    <AttributeDesignator 
                        AttributeId="urn:oasis:names:tc:xacml:1.0:resource:resource-id" 
                        Category="urn:oasis:names:tc:xacml:3.0:attribute-category:resource" 
                        DataType="http://www.w3.org/2001/XMLSchema#string" MustBePresent="true">
                    </AttributeDesignator>
                </Match>

А затем действие

 <Match MatchId="urn:oasis:names:tc:xacml:1.0:function:string-equal">
                    <AttributeValue 
                         DataType="http://www.w3.org/2001/XMLSchema#string">read
                    </AttributeValue>
                    <AttributeDesignator 
                        AttributeId="urn:oasis:names:tc:xacml:1.0:action:action-id" 
                        Category="urn:oasis:names:tc:xacml:3.0:attribute-category:action" 
                        DataType="http://www.w3.org/2001/XMLSchema#string" MustBePresent="true"></AttributeDesignator>
                </Match>

Или, может быть, я могу удалить первыйчасть и поставить непосредственно действие, потому что ресурс любой.

Спасибо !!

1 Ответ

0 голосов
/ 10 октября 2019

Вам нужно только сопоставить действие:

<Rule Effect="Permit" RuleId="Rule Permit #1">
  <Target>
    <AnyOf>
        <AllOf>
            <Match MatchId="urn:oasis:names:tc:xacml:1.0:function:string-equal">
                <AttributeValue 
                  DataType="http://www.w3.org/2001/XMLSchema#string">read</AttributeValue>
                <AttributeDesignator 
                  AttributeId="urn:oasis:names:tc:xacml:1.0:action:action-id"  
                  Category="urn:oasis:names:tc:xacml:3.0:attribute-category:action" 
                  DataType="http://www.w3.org/2001/XMLSchema#string" 
                  MustBePresent="true" />
            </Match>
        </AllOf>
    </AnyOf>
  </Target>
</Rule>

В этом случае, если и только если идентификатор действия равен 'read', Правило оценивается как Разрешить, независимо от пользователя илиатрибуты ресурса , другими словами: для любого пользователя или ресурса. Помните, что окончательное решение зависит от алгоритма объединения правил в прилагаемой Политике (и, возможно, от алгоритма объединения политик в вашем PolicySet, если он у вас есть). Если вы получаете что-то другое, это проблема с реализацией XACML.

...