Top Banner
The Very Latest in Authorization Standards and Trends Cloud Identity Summit - 2014 Gerry Gebel Axiomatics [email protected] @ggebel © 2014 Axiomatics AB 1
37

CIS14: The Very Latest in Authorization Standards

Jan 15, 2015

Download

Technology

CloudIDSummit

Gerry Gebel, Axiomatics
Update on the latest trends and happenings regarding authorization standards and commentary on projections on this topic for the coming year, including status of the JSON and REST profiles for XACML (it’s not just XML anymore), scenarios where OAuth and XACML can coexist, and what NIST’s published report on ABAC is all about.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: CIS14: The Very Latest in Authorization Standards

The  Very  Latest  in  Authorization  Standards  and  Trends  

Cloud Identity Summit - 2014

Gerry Gebel Axiomatics [email protected] @ggebel

© 2014 Axiomatics AB 1

Page 2: CIS14: The Very Latest in Authorization Standards

Preamble  Authorization v.Next

Cloud Identity Summit 2014

© 2014 Axiomatics AB 2

Page 3: CIS14: The Very Latest in Authorization Standards

© 2014 Axiomatics AB 3

Page 4: CIS14: The Very Latest in Authorization Standards

© 2014 Axiomatics AB 4

Page 5: CIS14: The Very Latest in Authorization Standards

© 2014 Axiomatics AB 5

Having a policy language is a key differentiator for ABAC/XACML

Page 6: CIS14: The Very Latest in Authorization Standards

© 2014 Axiomatics AB 6

OAuth

UMA

JWT

XACML Finding the right combination

Page 7: CIS14: The Very Latest in Authorization Standards

Agenda  

§  Business trends that are influencing authorization requirements

§  Externalized Authorization and ABAC

§  Standards update §  JSON, REST, ALFA and more

§  Prognostications

Cloud Identity Summit 2014

© 2014 Axiomatics AB 7

Page 8: CIS14: The Very Latest in Authorization Standards

Business  Trends  &  AuthZ  

Cloud Identity Summit 2014

© 2014 Axiomatics AB 8

Page 9: CIS14: The Very Latest in Authorization Standards

© 2014 Axiomatics AB 9

Page 10: CIS14: The Very Latest in Authorization Standards

© 2014 Axiomatics AB 10

Next generation information security = dynamic authorization = attribute based access control

Page 11: CIS14: The Very Latest in Authorization Standards

Legacy  access  controls  fail  in  dynamic  environments    

© 2014 Axiomatics AB 11

ABAC  thrives  in  dynamic  environments

Page 12: CIS14: The Very Latest in Authorization Standards

© 2014 Axiomatics AB 12

Who

What Sensitive / business critical Information

Grant or deny access based on the following attributes

When

Where

Why

How

Page 13: CIS14: The Very Latest in Authorization Standards

© 2014 Axiomatics AB 13

By 2020, 70 percent of enterprises

will use ABAC as the dominant

mechanism to protect critical assets,

up from less than 5 percent today.

“ ”

Gartner Predicts, March 2014

Page 14: CIS14: The Very Latest in Authorization Standards

Externalized  Authorization    and  ABAC  

Cloud Identity Summit 2014

© 2014 Axiomatics AB 14

Page 15: CIS14: The Very Latest in Authorization Standards

NIST  Special  Pub  800-­‐162  *  

§  “[ABAC] flexibility provides the greatest breadth of subjects to access the greatest breadth of objects without specifying individual relationships between each subject and each object”

© 2014 Axiomatics AB 15

* nvlpubs.nist.gov/nistpubs/specialpublications/NIST.sp.800-162.pdf

Page 16: CIS14: The Very Latest in Authorization Standards

Example  from  NIST  report  §  Nurse Practitioners in the Cardiology Department can View the Records of

Heart Patients §  Variables in the policy language enable very efficient policy structures – reducing the

maintenance load §  Management of heart patient records is part of the business application – not an IT

function §  Multiple attributes must be available for policy evaluation – either as part of the access

request or retrieved from an authoritative source

© 2014 Axiomatics AB 16

Page 17: CIS14: The Very Latest in Authorization Standards

NIST  example  -­‐  expanded  §  Nurse Practitioners can View the Records of Patients in the same Department

they are assigned to §  This rule can apply to all departments in the hospital §  Add a new department or change names of department and the rule does not change §  Rule compares department of the Nurse Practitioner to the department of the Patient §  Avoids the role explosion effect of RBAC models

© 2014 Axiomatics AB 17

Page 18: CIS14: The Very Latest in Authorization Standards

Applying ABAC to every layer of your application

ADAF

© 2014 Axiomatics AB 18

Page 19: CIS14: The Very Latest in Authorization Standards

REST,  JSON,  &  ALFA  What’s new on the XACML standards front?

© 2014 Axiomatics AB 19

Page 20: CIS14: The Very Latest in Authorization Standards

§  Profiles add functionality §  REST §  JSON §  Export Control §  IP Protection §  Hierarchal Resources §  Etc.

What’s in the XACML standard

XACML

Reference Architecture

Policy Language

Request / Response Protocol

© 2014 Axiomatics AB 20

Page 21: CIS14: The Very Latest in Authorization Standards

The Request/Response format

•  Subject User id = Alice Role = Manager

•  Action Action id = approve

•  Resource Resource type = Purchase Order PO #= 12367

•  Environment Device Type = Laptop

XACML Request

Can Manager Alice approve Purchase Order 12367?

XACML Response

Yes, she can

•  Result Decision: Permit Status: ok

© 2014 Axiomatics AB 21

Page 22: CIS14: The Very Latest in Authorization Standards

XML encoding of an authZ request

<xacml-ctx:Request ReturnPolicyIdList="true" CombinedDecision="false" xmlns:xacml-ctx="urn:oasis:names:tc:xacml:3.0:core:schema:wd-17"> <xacml-ctx:Attributes Category="urn:oasis:names:tc:xacml:1.0:subject-category:access-subject" > <xacml-ctx:Attribute AttributeId="urn:oasis:names:tc:xacml:1.0:subject:subject-id" IncludeInResult="true"> <xacml-ctx:AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">Alice</xacml-ctx:AttributeValue> </xacml-ctx:Attribute> </xacml-ctx:Attributes> <xacml-ctx:Attributes Category="urn:oasis:names:tc:xacml:3.0:attribute-category:environment" > </xacml-ctx:Attributes> <xacml-ctx:Attributes Category="urn:oasis:names:tc:xacml:3.0:attribute-category:resource" > <xacml-ctx:Attribute AttributeId="urn:oasis:names:tc:xacml:1.0:resource:resource-id" IncludeInResult="true"> <xacml-ctx:AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">hello</xacml-ctx:AttributeValue> </xacml-ctx:Attribute> </xacml-ctx:Attributes> <xacml-ctx:Attributes Category="urn:oasis:names:tc:xacml:3.0:attribute-category:action" > <xacml-ctx:Attribute AttributeId="urn:oasis:names:tc:xacml:1.0:action:action-id" IncludeInResult="true"> <xacml-ctx:AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">say</xacml-ctx:AttributeValue> </xacml-ctx:Attribute> </xacml-ctx:Attributes> </xacml-ctx:Request>

Can Alice Say

Hello?

© 2014 Axiomatics AB 22

Page 23: CIS14: The Very Latest in Authorization Standards

JSON encoding of an authZ request

{"subject": {"attribute":[{ "attributeId":"username", "value":"alice"}]},

"resource": {"attribute":[{ "attributeId":"resource-id", "value":"hello"}]},

"action": {"attribute":[{ "attributeId":"action-id", "value":"say"}]}}

© 2014 Axiomatics AB 23

Page 24: CIS14: The Very Latest in Authorization Standards

JSON vs. XML

0

10

20

30

40

50

Word count

XML JSON

0 200 400 600 800

1000 1200 1400

Char. Count

XML JSON

Size of a XACML request

© 2014 Axiomatics AB 24

Page 25: CIS14: The Very Latest in Authorization Standards

REST  Profile  

XML over HTTP

XML over HTTP

JSON over HTTP

JSON over HTTP

© 2014 Axiomatics AB 25

Page 26: CIS14: The Very Latest in Authorization Standards

ALFA  –  Abbreviated  Language  for  Authorization  §  Domain Specific Language (DSL) that provides an abstraction over XACML

§  Pseudo language is similar to C# or Java

§  Author policies in Eclipse IDE, plug in automatically generates XACML

© 2014 Axiomatics AB 26

Axiomatics has committed to submit ALFA as an XACML profile

Page 27: CIS14: The Very Latest in Authorization Standards

A policy example, in English

/**

* A manager can approve a transaction if their approval limit is greater than

* the transaction amount and if the risk is less than 5

*/

Let’s take a look at this policy in XACML and ALFA

© 2014 Axiomatics AB 27

Page 28: CIS14: The Very Latest in Authorization Standards

A policy example, in XACML (1)

<?xml version="1.0" encoding="UTF-8"?> <!--This file was generated by the ALFA Plugin for Eclipse from Axiomatics AB (http://www.axiomatics.com).> <xacml3:Policy xmlns:xacml3="urn:oasis:names:tc:xacml:3.0:core:schema:wd-17" PolicyId="http://axiomatics.com/alfa/identifier/policing.principles.allowTransaction" RuleCombiningAlgId="urn:oasis:names:tc:xacml:1.0:rule-combining-algorithm:first-applicable" Version="1.0"> <xacml3:Description>Let a manager approve a transaction if their approval limit is greater than the transaction amount and if the risk is less than 5</xacml3:Description> <xacml3:PolicyDefaults> <xacml3:XPathVersion>http://www.w3.org/TR/1999/REC-xpath-19991116</xacml3:XPathVersion> </xacml3:PolicyDefaults> <xacml3:Target> <xacml3:AnyOf> <xacml3:AllOf> <xacml3:Match MatchId="urn:oasis:names:tc:xacml:1.0:function:string-equal"> <xacml3:AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">manager</xacml3:AttributeValue> <xacml3:AttributeDesignator AttributeId="userRole" DataType="http://www.w3.org/2001/XMLSchema#string" Category="urn:oasis:names:tc:xacml:1.0:subject-category:access-subject" MustBePresent="false" /> </xacml3:Match> <xacml3:Match MatchId="urn:oasis:names:tc:xacml:1.0:function:string-equal"> <xacml3:AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">approve</xacml3:AttributeValue> <xacml3:AttributeDesignator AttributeId="urn:oasis:names:tc:xacml:1.0:action:action-id" DataType="http://www.w3.org/2001/XMLSchema#string" Category="urn:oasis:names:tc:xacml:3.0:attribute-category:action" MustBePresent="false" />

© 2014 Axiomatics AB 28

Page 29: CIS14: The Very Latest in Authorization Standards

A policy example, in XACML (2)

</xacml3:Match> <xacml3:Match MatchId="urn:oasis:names:tc:xacml:1.0:function:string-equal"> <xacml3:AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">transaction</xacml3:AttributeValue> <xacml3:AttributeDesignator AttributeId="resourceType" DataType="http://www.w3.org/2001/XMLSchema#string" Category="urn:oasis:names:tc:xacml:3.0:attribute-category:resource" MustBePresent="false" /> </xacml3:Match> </xacml3:AllOf> </xacml3:AnyOf> </xacml3:Target> <xacml3:Rule Effect="Permit" RuleId="http://axiomatics.com/alfa/identifier/policing.principles.allowTransaction.allowIfLowRiskScore"> <xacml3:Description /> <xacml3:Target /> <xacml3:Condition> <xacml3:Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:and"> <xacml3:Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:any-of"> <xacml3:Function FunctionId="urn:oasis:names:tc:xacml:1.0:function:double-greater-than"/> <xacml3:AttributeValue DataType="http://www.w3.org/2001/XMLSchema#double">5.0</xacml3:AttributeValue> <xacml3:AttributeDesignator AttributeId="transactionRiskScore" DataType="http://www.w3.org/2001/XMLSchema#double" Category="urn:oasis:names:tc:xacml:3.0:attribute-category:resource" MustBePresent="false" />

© 2014 Axiomatics AB 29

Page 30: CIS14: The Very Latest in Authorization Standards

A policy example, in XACML (3)

</xacml3:Apply> <xacml3:Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:any-of-any"> <xacml3:Function FunctionId="urn:oasis:names:tc:xacml:1.0:function:double-less-than-or-equal"/> <xacml3:AttributeDesignator AttributeId="transactionAmount" DataType="http://www.w3.org/2001/XMLSchema#double" Category="urn:oasis:names:tc:xacml:3.0:attribute-category:resource" MustBePresent="false" /> <xacml3:AttributeDesignator AttributeId="userApprovalLimit" DataType="http://www.w3.org/2001/XMLSchema#double" Category="urn:oasis:names:tc:xacml:1.0:subject-category:access-subject" MustBePresent="false" /> </xacml3:Apply> </xacml3:Apply> </xacml3:Condition> </xacml3:Rule> </xacml3:Policy>

© 2014 Axiomatics AB 30

Page 31: CIS14: The Very Latest in Authorization Standards

A policy example, in ALFA

policy allowTransaction{

target clause userRole=="manager" and actionId=="approve" and resType=="transaction"

apply firstApplicable

rule allowIfLowRiskScore{

condition (transactionRiskScore < 5) && (transactionAmount <= userApprovalLimit)

permit

}

}

© 2014 Axiomatics AB 31

Page 32: CIS14: The Very Latest in Authorization Standards

OAuth  &  XACML?  Further  simplification  of  XACML?  

Prognostications

© 2014 Axiomatics AB 32

Page 33: CIS14: The Very Latest in Authorization Standards

How  can  OAuth  and  XACML  complement  each  other?  

§  OAuth: popular authZ mechanism for API security and consumer scenarios

§  Missing from OAuth: declarative policy language

© 2014 Axiomatics AB 33

§  XACML policies were used to control scopes for OAuth tokens

What  if?  

Page 34: CIS14: The Very Latest in Authorization Standards

Easy  consumption  of  JWT  tokens  for  advanced  authorization  via  XACML-­‐based  service  

© 2014 Axiomatics AB 34

{"subject": {"attribute":[{ "attributeId":"username", "value":"alice"}]},

"resource": {"attribute":[{ "attributeId":"resource-id", "value":"hello"}]},

"action": {"attribute":[{ "attributeId":"action-id", "value":"say"}]}}

JWT

Page 35: CIS14: The Very Latest in Authorization Standards

On  the  further  simplification  of  XACML    

§  REST and JSON profiles greatly simplify the developer experience §  See David Brossard’s workshop material from Sunday

§  But what about the policy language?

© 2014 Axiomatics AB 35

Page 36: CIS14: The Very Latest in Authorization Standards

© 2014 Axiomatics AB 36

SCIM + XACML

Page 37: CIS14: The Very Latest in Authorization Standards

Questions?  Thank you for listening