/
Tutorial on XACML Tutorial on XACML

Tutorial on XACML - PowerPoint Presentation

faustina-dinatale
faustina-dinatale . @faustina-dinatale
Follow
393 views
Uploaded On 2016-08-01

Tutorial on XACML - PPT Presentation

Audumbar Access control and privacy Who can access what under what conditions and for what purpose XACML About The eXtensible Access Control Markup Language is an OASIS Standard ID: 428012

policy xacml oasis resource xacml policy resource oasis attributevalue subject urn names action http result attribute data rule datatype permit www org

Share:

Link:

Embed:

Download Presentation from below link

Download Presentation The PPT/PDF document "Tutorial on XACML" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.


Presentation Transcript

Slide1

Tutorial on XACML

AudumbarSlide2

Access control and privacy Who can access what

, under what

conditions

,

and for what

purposeSlide3

XACML - AboutThe eXtensible Access Control Markup Language is an OASIS StandardThe XACML standard provides

Policy Language

Request and Response Language

Standard data-types, functions, combining algorithms

Extensibility

Privacy profile, RBAC profile

An architecture defining the major components in an implementationSlide4

General termsResourceData, system component or serviceSubject

An actor who makes a request to access certain Resources.

Action

An operation on resource

Environment

The set of attributes that are relevant to an authorization decision and are independent of a particular subject, resource or action

Attributes

Characteristics of a subject, resource, action or environment

Target

Defines conditions that determine whether policy applies to requestSlide5

Usage ScenarioPolicy Enforcement Point (PEP) Entity protecting the resource(e.g. file system)

Performs access control by making decision requests and enforcing authorization decisions.

PEPSlide6

Usage ScenarioPolicy Administration Point (PAP) creates security policies and stores these policies in the repository.

PAPSlide7

Usage ScenarioContext HandlerA Context is the canonical representation of a decision request and an authorization decision.

Context Handler can be defined to convert the requests in its native format to the XACML canonical form and to convert the Authorization decisions in the XACML canonical form to the native format.

Context

HandlerSlide8

Usage ScenarioThe Policy Decision Point (PDP) Receives and examines the request

Retrieves applicable policies

evaluates the applicable policy and

Returns the authorization decision to PEP

PDPSlide9

Usage ScenarioPolicy Information Point (PIP) serves as the source of attribute values, or the data required for policy evaluation.

PIPSlide10

How does it work: Data FlowSlide11

XACML Policy StructureSlide12

Policy Language modelSlide13

XACML Policy Example<Policy PolicyId="

ExamplePolicy

"

RuleCombiningAlgId

="urn:oasis:names:tc:xacml:1.0:rule-combining-algorithm:permit-overrides">

<Target>

<Subjects> <

AnySubject

/></Subjects>

<Resources><Resource>

<

ResourceMatch

MatchId

="urn:oasis:names:tc:xacml:1.0:function:anyURI-equal">

<

AttributeValue

DataType

="http://www.w3.org/2001/XMLSchema#anyURI">http://server.example.com/code /docs/developer-guide.html</AttributeValue>

<

ResourceAttributeDesignator

DataType

="http://www.w3.org/2001/XMLSchema#anyURI"

AttributeId

="urn:oasis:names:tc:xacml:1.0:resource:resource-id"/>

</

ResourceMatch

>

</Resource></Resources>

<Actions><

AnyAction

/></Actions>

</Target>

<Rule

RuleId

="

ReadRule

" Effect="Permit">

</Rule>

</Policy>Slide14

Policy Example contd <Rule RuleId

="

ReadRule

" Effect="Permit">

<Target>

<Subjects><

AnySubject

/></Subjects>

<Resources><

AnyResource

/></Resources>

<Actions>

<Action>

<

ActionMatch

MatchId

="urn:oasis:names:tc:xacml:1.0:function:string-equal">

<

AttributeValue

DataType

="http://www.w3.org/2001/XMLSchema#string">read</AttributeValue>

<

ActionAttributeDesignator

DataType

="http://www.w3.org/2001/XMLSchema#string”

AttributeId

="urn:oasis:names:tc:xacml:1.0:action:action-id"/>

</

ActionMatch

>

</Action>

</Actions>

</Target>

<Condition

FunctionId

="urn:oasis:names:tc:xacml:1.0:function:string-equal">

<Apply

FunctionId

="urn:oasis:names:tc:xacml:1.0:function:string-one-and-only">

<

SubjectAttributeDesignator

DataType

="http://www.w3.org/2001/XMLSchema#string”

AttributeId

="group"/>

</Apply>

<

AttributeValue

DataType

="http://www.w3.org/2001/XMLSchema#string">developers</AttributeValue>

</Condition>

</Rule>Slide15

XACML Request Structure

Request

Subject

Attributes

Action

Attributes

Environment

Attributes

Resource

AttributesSlide16

Request Example<Request> <Subject>

<Attribute

AttributeId

="urn:oasis:names:tc:xacml:1.0:subject:subject-id"

DataType

="urn:oasis:names:tc:xacml:1.0:data-type:rfc822Name"> <

AttributeValue

>

xyz@users.example.com

</

AttributeValue

>

</Attribute>

<Attribute

AttributeId

="group"

DataType

=“http://www.w3.org/2001/XMLSchema#string” Issuer="admin@users.example.com"> <

AttributeValue

>

developers

</

AttributeValue

>

</Attribute>

</Subject>

<Resource>

<Attribute

AttributeId

="urn:oasis:names:tc:xacml:1.0:resource:resource-id"

DataType

="http://www.w3.org/2001/XMLSchema#anyURI"> <

AttributeValue

>

http://server.example.com/code/docs/developer-guide.html

</AttributeValue>

</Attribute>

</Resource>

<Action>

<Attribute

AttributeId

="urn:oasis:names:tc:xacml:1.0:action:action-id"

DataType

="http://www.w3.org/2001/XMLSchema#string"> <

AttributeValue

>

read</AttributeValue>

</Attribute> </Action> </Request> Slide17

XACML Response Structure

Response

Decision

Obligations

StatusSlide18

XACML Response Example<Response> <Result> <Decision>Permit</Decision>

<Status>

<

StatusCode

Value="urn:oasis:names:tc:xacml:1.0:status:ok"/> </Status>

</Result>

</Response>

Effect:

Permit/Deny/Not Applicable/IndeterminateSlide19

Combining Algorithms Deny-overrides –if any evaluation returns Deny, then the result must be Deny. If all rules evaluate to Permit, then the result is Permit.Permit-overrides –

if any rule evaluates to Permit, then the result of is Permit.

If any rule evaluates to Deny and all other rules evaluate to

NotApplicable

, then the result is Deny.

If all rules are found to be

NotApplicable

, then the result is

NotApplicable

.Slide20

Combining Algorithms First applicable – rules evaluated in their listing orderFor each rule, if the target matches and the condition evaluates to True, then the result of that rule will be the evaluation of the policy (either Permit, Deny, or Indeterminate).

Otherwise, the algorithm goes to the next rule. If no rule applies, then the result is

NotApplicable

.

Only-one-applicable –

For all of policies in the policy set, if no policy applies, then the result is

NotApplicable

.

If more than one policy applies, then the result is Indeterminate.

If only one policy applies, then the result is the result of evaluating that policy.Slide21

ExtensibilityExtensible XML attribute typesThe following XML attributes with values that are URIs, may be extended by the creation of new URIs associated with new semantics for these attributes.

AttributeId

,

DataType

,

FunctionId

,

MatchId

,

ObligationId

,

PolicyCombiningAlgId

,

RuleCombiningAlgId

,

StatusCode

,

SubjectCategory

.

For a given structured data-type, a community of XACML users MAY define new attribute identifiers for each leaf sub-element of the structured data-type that has a type conformant with one of the XACML-defined primitive data-types.

A community of XACML users MAY define a new function that can be used to compare a value of the structured data-type against some other value. This method may only be used by

PDPs that support the new function.Slide22

Privacy profileThis profile defines two attributes.“urn:oasis:names:tc:xacml:2.0:resource:purpose”

the purpose for which the data resource was collected

“urn:oasis:names:tc:xacml:2.0:action:purpose”

the purpose for which access to the data resource is requested

Matching purpose rule

Deny-Overrides

access SHALL be denied unless the purpose for which access is requested matches, by regular-expression match, the purpose for which the data resource was collected.Slide23

RBAC profileScopeIf a subject has roles R1 , R2, ... Rn enabled, can subject X access a given resource using a given action?Is subject X allowed to have role

Ri

enabled?

If a subject has roles R1 , R2, ...

Rn

enabled, does that mean the subject will have permissions associated with a given role R'? That is, is role R' either equal to or

junior to any of roles R1 , R2, …

Rn

?Slide24

RBAC Profile PoliciesRole <PolicySet>, Each Role <PolicySet

> references a single corresponding Permission <

PolicySet

>

Permission <

PolicySet

>,

actual permissions associated with a given role,

references to Permission <

PolicySet

>s associated with other roles that are junior to the given role

Role Assignment <Policy> or <

PolicySet

>

which roles can be enabled or assigned to which subjects

HasPrivilegesOfRole

<Policy>

a <Policy> in a Permission <

PolicySet

> that supports requests

asking whether a subject has the privileges associated with a given role.Slide25

XACML implementationsUsing SUN XACML implementationBuilding a PDPBuilding a PEPCreating and Encoding PoliciesValidating policies and requests

Supporting attribute selectors

XACMLight

Apache Axis2 Web Service XACML 2.0 PDP/PAP Implementation

XACML Policy editorsSlide26

LimitationsXACML is verbose and complex in some ways.Interactions involving PAP, PIP, etc., are not standardized.Policy administration, policy versioning, etc., are not standardized.Slide27

References OASIS XACML Technical Committee Home Pagehttp://www.oasis-open.org/committees/tc_home.php?wg_abbrev=xacml

Sun's XACML Open Source Implementation

http://sunxacml.sourceforge.net/