SAML and XACML Overview

Prepared by Abbie Barbir, [email protected] Nortel Canada April 25, 2006 Acknowledgements

Some slides are provided by > Eve Maler, Sun Microsystems > Hal Lockhart, BEA

2 Agenda

> SAML History and Overview > SAML 2.0 Features > Status in ITU-T > XACML History and Overview > XACML 2.0 Features > Status in ITU-T

3 SAML Overview and History

• SAML: Security Assertion Markup Language • A framework for the exchange of security-related information between trusting parties • The key standard for federated identity systems • Supports many real-world business scenarios • Widely used today for cross-domain single sign-on • OASIS Security Services Technical Committee (SSTC) • SSTC manages SAML development

4 SAML Timeline

SAML 1.0 Completed: May 2002 OASIS Standard: November 2002

Liberty 1.1 Completed: Jan 2003

SAML 1.1 Completed: May 2003 Shibboleth OpenSAML 1.0 OASIS Standard: September 2003 Completed: June 2003

Liberty ID-FF 1.2 Shibboleth OpenSAML 1.1 Completed: Oct 2003 Completed: August 2003

SAML 2.0 Completed: January 2005 OASIS Standard: March 2005

5 SAML 2.0 Specification Suite

• Conformance Requirements ƒ Metadata • Required “Operational Modes” ƒ Configuration data for for SAML implementations establishing agreements between SAML entities • Assertions and Protocols • The “Core” specification ƒ Authentication Context ƒ Detailed descriptions of user • Bindings authentication mechanisms • Maps SAML messages onto common communications ƒ Security and Privacy protocols Considerations ƒ Security and privacy analysis • Profiles of SAML 2.0 • “How-to’s” for using SAML to solve specific business ƒ Glossary problems ƒ Terms used in SAML 2.0

6 SAML Concepts

7 Terms and concepts 1 Subjects ƒ Entity (system entity): An active element in computer/network system ƒ Principal: An entity whose identity can be authenticated ƒ Subject: A principal in the context of a security domain Identities ƒ Identity: The essence of an entity, often described by one's characteristics, traits, and preferences ƒ Anonymity: Having an identity that is unknown or concealed ƒ Identifier: A data object that uniquely refers to a particular entity ƒ Pseudonym: A privacy-preserving identifier ƒ Federated identity: Existence of an agreement between providers on a set of identifiers and/or attributes to use to refer to a principal ƒ Account linkage: Relating a principal's accounts at two different providers so that they can communicate about the principal

8 Terms and concepts 2 More Entities ƒ Asserting party (SAML authority): An entity that produces SAML assertions ƒIdentity provider: An entity that creates, maintains, and manages identity information for principals and provides principal authentication to other service providers ƒ Relying party: An entity that decides to take an action based on information from another system entity ƒService provider: An entity that provides services to principals or other entities

9 How these entities interrelate

ƒ Most of the SAML and ID-FF use cases are eyeballoriented ƒ But some backchannel (SOAP and other) communication takes place in service of this

10 SAML assertions

> Assertion is a declarations of fact • according to someone > SAML assertions contain one or more “statement” about “subject” (human or program): • Authentication statement: “Joe authenticated with a password at 9:00am” • Attribute statement (which itself can contain multiple attributes) • Joe is a manager with a $500 spending limit • Authorization decision statement (now deprecated) • You can extend SAML to make your own kinds of assertions and statements > Assertions can be digitally signed

11 Example: Common Assertion Portions

www.acompany.com [email protected] ... statements go here ...

12 Example: Authentication Statement

... and here ... urn:oasis:names:tc:SAML:2.0:ac:classes: PasswordProtectedTransport

13 Authentication context classes

9 Internet Protocol 9 Public Key – XML Signature 9 Internet Protocol Password 9 Smartcard 9 Kerberos 9 Smartcard PKI 9 Mobile One Factor Unregistered 9 Software PKI 9 Telephony 9 Mobile Two Factor Unregistered 9 Nomadic Telephony 9 Mobile One Factor Contract 9 Personalized Telephony 9 Mobile Two Factor Contract 9 Authenticated Telephony 9 Password 9 Secure Remote Password 9 Password Protected Transport 9 SSL/TLS Cert-Based Client Authn 9 Time Sync Token 9 Previous Session 9 Unspecified 9 Public Key – X.509 9 Public Key – PGP 9 Public Key – SPKI

14 Example of an attribute statement ... and here ... Name=“PaidStatus” PaidUp Name=“CreditLimit” 500.00

15 Artifacts ƒ A small, fixed-size, structured data object pointing to a typically larger, variably sized SAML protocol message ƒcan be embedded in URLs / conveyed in HTTP messages ƒ Allows for “pulling” SAML messages as opposed to “push” ƒ SAML defines one artifact format but you can roll your own

16 Protocols ƒ Assertion query and request ƒQuery for assertion based on simple reference, subject- matching, or statement type ƒ Authentication request ƒSP requests a fresh authn assertion that adheres to various requirements (specified by means of Authentication Context) ƒ Artifact resolution (“meta-protocol”) ƒDereferences an artifact to get a protocol message ƒ Name identifier management ƒIdPs and SPs inform each other of changes to their mutual understanding of what a principal's name is ƒ Name identifier mapping ƒPrivacy-preserving way for two SPs to refer to the same principal ƒ Single logout ƒSignals to all SPs using the same session to drop the session

17 Bindings

ƒ SOAP ƒ Basic way for IdPs and SPs to send SAML protocol messages ƒ Reverse SOAP (PAOS) ƒ Multi-stage SOAP/HTTP exchange that allows an HTTP client to send an HTTP request containing a SOAP response ƒ HTTP redirect ƒ Method to send SAML messages by means of HTTP 302 ƒ HTTP POST ƒ Method to send SAML messages in base64-encoded HTML form control ƒ HTTP artifact ƒ Way to transport an artifact using HTTP in two ways ƒ URL query string and ƒ HTML form control ƒ URI ƒ How to retrieve a SAML message by resolving a URI

18 Profiles ƒ Web browser SSO ƒSSO using standard browsers to multiple SPs: profiles Authn Request protocol and HTTP Redirect, POST, and artifact bindings ƒ Enhanced client and proxy (ECP) ƒSSO using ECPs: profiles Authn Request protocol and SOAP and PAOS bindings ƒ IdP discovery ƒOne way for SPs to learn the IdPs used by a principal ƒ Single logout ƒ Name identifier management ƒProfiles the NIM protocol with SOAP, HTTP redirect, HTTP POST, and HTTP artifact bindings ƒ Artifact resolution ƒ Assertion query/request

19 SAML Status in ITU-T

> Currently X.websec-1 > In Q9/17 > Text is stable and reviewed

20 Agenda

> XACML History and Overview > XACML 2.0 Features > Status in ITU-T

21 XACML History

ƒ First Meeting – 21 May 2001 ƒ Requirements from: Healthcare, DRM, Registry, Financial, Online Web, XML Docs, Fed Gov, Workflow, Java, Policy Analysis, WebDAV ƒ XACML 1.0 - OASIS Standard – 6 February 2003 ƒ XACML 1.1 – Committee Specification – 7 August 2003 ƒ XACML 2.0 – OASIS Standard – 1 February 2005 ƒ XACML TC Charter ƒ Define a core XML schema for representing authorization and entitlement policies ƒ Target - any object - referenced using XML ƒ Fine grained control, characteristics - access requestor, protocol, classes of activities, and content introspection ƒ Consistent with and building upon SAML

Technologies and procedures intended to implement organizational policy in spite of human efforts to the contrary 22 XACML Objectives

ƒ Ability to locate policies in distributed environment ƒ Ability to federate administration of policies about the same resource ƒ Base decisions on wide range of inputs ƒ Multiple subjects, resource properties ƒ Decision expressions of unlimited complexity ƒ Ability to do policy-based delegation ƒ Usable in many different environments ƒ Types of Resources, Subjects, Actions ƒ Policy location and combination Policy Examples ƒ “Primary physician can have any of her patients’ medical records sent to a specialist in the same practice.” ƒ “Salespeople can create orders, but if the total cost is greater that $1M, a supervisor must approve”

23 General Characteristics

ƒ Defined using XML Schema ƒ Strongly typed language ƒ Extensible in multiple dimensions ƒ Borrows from many other specifications ƒ Features requiring XPath are optional ƒ Obligation feature optional ƒ Language is very “wordy” ƒ Many long URLs ƒ Expect it to be generated by programs ƒ Complex enough that there is more than one way to do most things

24 Generic RBAC functionality

ƒ RBE (Rule Based Engine): Central policy decision point, ƒ PEP (Policy Enforcement Point): Resource specific authorization decision request/response handling and policy defined obligations execution, ƒ PAP (Policy Authority Point) or Policy DB: policy storage (distributed) ƒ PIP (Policy Information Point): Supply external policy context and attributes to RBE: subject credentials and attributes verification ƒ RIP (Resource Information Point): Provides resource context. ƒ AA (Attribute Authority): Manages user attributes

25 XACML Data Flow Model

1. PAP: policies/sets Æ PDP 2. Access Requestor sends request to PEP 3. PEP sends request to context handler in its native request format, optionally including attributes of the subjects, resource, action and environment 4. Context handler constructs an XACML request context and sends it to the PDP. 5. PDP requests any additional subject, resource, action and environment attributes from the context handler 6. Context handler requests attributes from PIP 7. PIP obtains the requested attributes. 8. PIP returns requested attributes to the context handler 9. Optionally, the context handler includes the resource in the context 10. Context handler sends requested attributes and (optionally) the resource to the PDP. PDP evaluates the policy 11. PDP returns response context (including the authorization decision) to the context handler. 12. Context handler translates response context to the native response format of the PEP. Context handler returns the response to the PEP. 13. PEP fulfills the obligations. 26 Novel XACML Features

ƒ Large Scale Environment ƒ Subjects, Resources, Attributes, etc. not necessarily exist or be known at Policy Creation time ƒ Multiple Administrators - potentially conflicting policy results ƒ Combining algorithms ƒ Request centric ƒ Use any information available at access request time ƒ Zero, one or more Subjects ƒ No invented concepts (privilege, role, etc.) ƒ Dynamically bound to request ƒ Not limited to Resource binding ƒ Only tell what policies apply in context of Request

27 XACML Concepts 1

ƒ Policy & PolicySet – combining of applicable policies using CombiningAlgorithm ƒ Target – Rapidly index to find applicable Policies or Rules ƒ Conditions – Complex boolean expression with many operands, arithmetic & string functions ƒ Effect – “Permit” or “Deny” ƒ Obligations – Other required actions ƒ Request and Response Contexts – Input and Output ƒ Bag – unordered list which may contain duplicates

28 XACML Concepts 2 Target Rule ƒ Smallest unit of administration, cannot be evaluated alone Target ƒ Elements ƒ Description – documentation ƒ Target – select applicable policies Target Condition ƒ Condition – boolean decision function ƒ Effect – either “Permit” or “Deny” Effect ƒ Results ƒ If condition is true, return Effect value Rules Obligations ƒ If not, return NotApplicable Policies ƒ If error or missing data return Indeterminate ƒ Plus status code Obligations PolicySet Target ƒ Find policies that apply to a request ƒ Enables dynamic binding Condition ƒ Allow complex Conditions ƒ Boolean function to decide if Effect applies ƒ Attributes of Subjects, Resources, Actions and ƒ Inputs come from Request Context Environments ƒ Values can be primitive, complex or bags ƒ Matches against value, using match function ƒ Can be specified by id or XPath expression ƒ Regular expression ƒ Fourteen primitive types ƒ RFC822 (email) name ƒ Rich array of typed functions defined ƒ X.500 name ƒ Functions for dealing with bags ƒ User defined ƒ Allowed to quit when result is known ƒ Attributes specified by Id or XPath expression ƒ Side effects not permitted ƒ Normally use Subject or Resource, not both

29 Data types and Functions

Data Types ƒ From XML Schema Functions ƒ String, boolean ƒ Equality predicates ƒ Integer, double ƒ Arithmetic functions ƒ Time, date ƒ String conversion functions ƒ Numeric type conversion functions ƒ dateTime ƒ Logical functions ƒ anyURI ƒ Arithmetic comparison functions ƒ hexBinary ƒ Date and time arithmetic functions ƒ base64Binary ƒ Non-numeric comparison functions ƒ From Xquery (Stand alone ƒ Bag functions now) ƒ Set functions ƒ dayTimeDuration ƒ Higher-order bag functions ƒ yearMonthDuration ƒ Special match functions ƒ Unique to XACML ƒ XPath-based functions ƒ rfc822Name ƒ Extension functions and primitive ƒ x500Name types

30 Policies and Policy Sets

ƒ Policy ƒ Smallest element PDP can evaluate ƒ Contains: Description, Defaults, Target, Rules, Obligations, Rule Combining Algorithm ƒ Policy Set ƒ Allows Policies and Policy Sets to be combined ƒ Use not required ƒ Contains: Description, Defaults, Target, Policies, Policy Sets, Policy References, Policy Set References, Obligations, Policy Combining Algorithm ƒ Combining Algorithms: Deny-overrides, Permit-overrides, First-applicable, Only-one-applicable

31 Request and Response Context

Policy.

domain-specific xacml Context/ xacml Context/ domain-specific PDP inputs Request.xml Response.xml outputs

32 Request and Response Context

ƒ Request Context ƒ Attributes of: ƒ Subjects – requester, intermediary, recipient, etc. ƒ Resource – name, can be hierarchical ƒ Resource Content – specific to resource type, e.g. XML document ƒ Action – e.g. Read ƒ Environment – other, e.g. time of request ƒ Response Context ƒ Resource ID ƒ Decision ƒ Status (error values) ƒ Obligations

33 XACML Core Specification 1

ƒ Develops policy expression for generic RBAC used by PDP ƒ Define a simple Request/Response messages format. ƒ Defines policy format for based on “Subject-Resource-Action” triad attributes. ƒ Defines format for policy and request/response messages. ƒ Decision request sent in a message provides context for policy-based decision. ƒ Complete policy applicable to a particular decision request can be composed of a number of individual rules or policies ƒ Policies can be combined to form a single policy applicable to the request.

34 XACML Core Specification 2

ƒ Defines three top-level policy elements: ƒ , and ƒ ƒ The element contains a Boolean expression that can be evaluated in isolation ƒNot intended to be accessed in isolation by a PDP. ƒNot intended to form the basis of an authorization decision on its own ƒExist in isolation only within an XACML PAP ƒ May form the basic unit of management ƒCan be re-used in multiple policies. ƒ The element contains a set of elements and a particular procedure for combining the results of their evaluation. ƒ Basic unit of policy used by the PDP ƒ Form the basis of an authorization decision 35 XACML Core Specification 3

ƒ element contains a set of or other elements ƒ Contains a specified procedure for combining the results of their evaluation ƒStandard means for combining separate policies into a single combined policy ƒDefines Rule and Policy combining algorithms that describe procedures for arriving at an authorization decision based on results of evaluation of a set of rules or policies: ƒDeny-overrides, ƒPermit-overrides, ƒFirst applicable, ƒOnly-one-applicable

36 XACML Core Specification 4 ƒ Authorization decision, requires that the attributes of many different types to be compared or computed ƒ XACML includes a number of built-in functions and a method of adding non-standard functions ƒ Functions may be nested to build arbitrarily complex expressions ƒ Achieved with the element. ƒ Has an XML attribute called FunctionId ƒIdentifies function to be applied to element contents ƒEach standard function is defined for specific argument data-type combinations, (return data-type specified)

37 XACML Profiles ƒ Digital Signature ƒ Integrity protection of Policies ƒ Hierarchical Resources ƒ Using XACML to protect files, directory entries, web pages ƒ Privacy ƒ Determine “purpose” of access ƒ RBAC ƒ Support ANSI RBAC Profile with XACML ƒ SAML Integration ƒ XACML-based decision request ƒ Fetch applicable policies ƒ Attribute alignment

38 XACML Uptake

ƒ Three open source implementations available ƒ See OASIS website ƒ Product Statements ƒ Astrogrid, BEA Systems, CapeClear, CA, Entrust, IBM, Jericho, Layer 7, Parthenon Computing, PSS Systems, Starbourne, Sun Microsystems, Xtradyne ƒ Standards references ƒ OASIS ebXML reference implementation ƒ Open GIS Consortium ƒ XRI Data Interchange – interest ƒ UDDI – interest ƒ Global Grid Forum – joint work ƒ PRISM (Publication Metatadata) – interest ƒ ASTM – Healthcare Informatics PMI

39 XACML Status in ITU-T

> Currently X.websec-2 > In Q9/17 > Text is stable and reviewed

40