cis13: bootcamp: ping identity saml in action with pingfederate hands-on

42
6/21/13 1 Copyright ©2013 Ping Identity Corporation. All rights reserved. 1 Bootcamp: Ping Identity PingFederate SAML Hands-On Copyright ©2013 Ping Identity Corporation. All rights reserved. 2 Overview of most common SAML options Gain an understanding of how SAML is being utilized Benefits of standards-based single-sign on Common implementation challenges See it in action! Bootcamp Goals

Upload: cloudidsummit

Post on 15-Jan-2015

3.277 views

Category:

Technology


6 download

DESCRIPTION

John DaSilva, Identity Architect, Ping Identity Craig Wu, Director, Product Development, Ping Identity If you’ve ever asked yourself, "What is SAML and how can it help me relieve my identity and access headaches?” then this is the session for you! In this bootcamp, you will learn why SAML is important for providing a secure exchange of identity information. We will dive into the specification and highlight the significant details with respect to federation. We will outline use cases that can be applied to your organization and finish with some hands-on activities to let you see it in action. Bring your laptop; a configuration of PingFederate that you can set up and a temporary product license will be provided.

TRANSCRIPT

Page 1: CIS13: Bootcamp: Ping Identity SAML in Action with PingFederate Hands-On

6/21/13

1

Copyright ©2013 Ping Identity Corporation. All rights reserved. 1

Bootcamp: Ping Identity PingFederate SAML Hands-On

Copyright ©2013 Ping Identity Corporation. All rights reserved. 2

•  Overview of most common SAML options •  Gain an understanding of how SAML is being

utilized •  Benefits of standards-based single-sign on •  Common implementation challenges •  See it in action!

Bootcamp Goals

Page 2: CIS13: Bootcamp: Ping Identity SAML in Action with PingFederate Hands-On

6/21/13

2

Copyright ©2013 Ping Identity Corporation. All rights reserved. 3

•  I want to understand how SAML works? –  Because I want to implement the spec? –  Because I just want to understand the process

better? •  The session I wanted was full, second

choice? •  What no free T-Shirts for attending!

Why are you here?

Copyright ©2013 Ping Identity Corporation. All rights reserved. 4 Copyright ©2013 Ping Identity Corporation. All rights reserved. 4

Bootcamp Agenda

Ø What and Why of SAML? •  Benefits and Use Cases for SAML •  Brief History of SAML •  Version Changes •  Interoperability •  Technical Details

•  Core –  Profiles –  Bindings

•  Implementation Challenges

Page 3: CIS13: Bootcamp: Ping Identity SAML in Action with PingFederate Hands-On

6/21/13

3

Copyright ©2013 Ping Identity Corporation. All rights reserved. 5

•  Security Assertion Markup Language •  Developed by the OASIS SSTC

–  Organization for the Advancement of Structured Information Standards – Security Services Technical Committee

–  SAML, ebXML, WS-*, UBL •  XML specification for communicating user

authentication, entitlement, and attribute information •  Designed to be extensible/customizable by other

standards

SAML a Definition (sort of)

Copyright ©2013 Ping Identity Corporation. All rights reserved. 6

•  A system that allows the exchange of identity information across multiple domains using open standards in order to facilitate single sign-on.

•  Partners in a Federated Identity Management system depend on each other to authenticate their respective users and vouch for their access to services.

•  Companies can share applications/resources without needing to adopt the same technologies for directory services, security and authentication.

•  A company must trust its partners to vouch for their users. Partners also need a standard way to send that message, such as one that uses the conventions of the Security Assertion Markup Language (SAML).

Background

Page 4: CIS13: Bootcamp: Ping Identity SAML in Action with PingFederate Hands-On

6/21/13

4

Copyright ©2013 Ping Identity Corporation. All rights reserved. 7

•  Limitations of Browser cookies –  Most existing Single-Sign On products use browser cookies

to maintain state so that re-authentication is not required –  Browser cookies are not transferred between DNS domains

•  SSO Interoperability –  Products implementing SSO and Cross-Domain SSO are

completely proprietary

•  Federation –  Simplification of identity management across organizational

boundaries, allowing users to consolidate many local identities into a single (or at least a reduced set) identity

Why is it Required?

Copyright ©2013 Ping Identity Corporation. All rights reserved. 8

•  Three “Actors” –  Identity Provider (IdP) or Assertion Producer

•  The Authenticating site

–  Service Provider (SP) or Assertion Consumer •  The site which trusts the Producer to perform SSO

–  Assertion Bearer •  Usually the end-user’s web browser, which is used to

transport the Assertion from the Producer to the Consumer

Federation Terminology

Page 5: CIS13: Bootcamp: Ping Identity SAML in Action with PingFederate Hands-On

6/21/13

5

Copyright ©2013 Ping Identity Corporation. All rights reserved. 9

•  Attribute Contract –  Agreement between SP and IdP on user attributes in assertion

•  Identity Mapping –  Conceptual core of identity federation – User generally known

by different identifiers and roles in different security domains •  Metadata

–  Standard file structure to exchange federation information •  “First Mile” – integrating Authentication Service with

Federation Service* •  “Last Mile” – integrating data from incoming assertion to

target application*

•  * Ping Identity terms

More Terminology

Copyright ©2013 Ping Identity Corporation. All rights reserved. 10 Copyright ©2013 Ping Identity Corporation. All rights reserved. 10

Bootcamp Agenda

ü What and Why of SAML? Ø Benefits and Use Cases for SAML •  Brief History of SAML •  Version Changes •  Interoperability •  Technical Details

•  Core –  Profiles –  Bindings

•  Implementation Challenges

Page 6: CIS13: Bootcamp: Ping Identity SAML in Action with PingFederate Hands-On

6/21/13

6

Copyright ©2013 Ping Identity Corporation. All rights reserved. 11

•  Platform neutral •  Loose coupling of directories •  Improved experience for end users •  Reduced administrative costs for service providers •  Risk transference – IdP is responsible for managing

identities

Benefits of SAML (via OASIS)

Copyright ©2013 Ping Identity Corporation. All rights reserved. 12

•  Simplified Administration –  Reduces Number of Accounts & Passwords to Maintain –  Partners Manage Their Own Users –  Replaces Proprietary SSO with Standards-Based Solution –  Ensures Compliance via Consistent, Standards-Based

Authentication

•  Increased Security –  Propagate Strong Authentication –  Reduce Identity Theft Targets –  Extend Enterprise Security to Hosted Services –  Log/Audit Access to Secured Resources

What this really means

Page 7: CIS13: Bootcamp: Ping Identity SAML in Action with PingFederate Hands-On

6/21/13

7

Copyright ©2013 Ping Identity Corporation. All rights reserved. 13

•  Improved End-User Experience –  Reduce Password Overload –  Multiple Application Access With Single Authentication –  More Personalized Experience –  Expanded Functionality

•  No longer a moving target – No “SAMLv3” on the horizon

•  For the Service Provider –  Lower operational costs (improve profitability). –  Promote SaaS company service usage (stickiness). –  Eliminate software piracy (no password sharing, increasing

top line growth) –  Replaces Proprietary SSO with Standards-Based Solution

What this really means

Copyright ©2013 Ping Identity Corporation. All rights reserved. 14

PingFederate Use Cases For Federation

Browsers, Phones, Tablets, Clients & APIs

Page 8: CIS13: Bootcamp: Ping Identity SAML in Action with PingFederate Hands-On

6/21/13

8

Copyright ©2013 Ping Identity Corporation. All rights reserved. 15 Copyright ©2013 Ping Identity Corporation. All rights reserved. 15

Bootcamp Agenda

ü What and Why of SAML? ü  Benefits and Use Cases for SAML Ø Brief History of SAML •  Version Changes •  Interoperability •  Technical Details

•  Core –  Profiles –  Bindings

•  Implementation Challenges

Copyright ©2013 Ping Identity Corporation. All rights reserved. 16

•  Initial SAML 1.0 Efforts –  S2ML (Security Services Markup Language) January 2000

(Netegrity) –  AuthXML (December, 2000) (Securant ) –  XML Trust Assertion Service Specification (X-TASS)

(VeriSign) –  Information Technology Markup Language (ITML)

(Jamcracker)

•  OASIS SSTC receives public input to create a unified standard in early 2001

•  SAML 1.0 released November 2002 •  SAML 1.1 released September 2003 •  SAML 2.0 released March 2005

Version History

Page 9: CIS13: Bootcamp: Ping Identity SAML in Action with PingFederate Hands-On

6/21/13

9

Copyright ©2013 Ping Identity Corporation. All rights reserved. 17

•  Shibboleth – Led by Middleware Architecture Committee for Education (MACE) –  Shibboleth Profile

•  v1.3 Extends SAML 1.1 •  Incorporated SP-Init SSO •  Not compatible with SAML 1.1 implementations

–  Shibboleth v2.0 is fully SAML 2.0 compliant •  Liberty Alliance – Led by Sun Microsystems

–  Industry backed effort to establish open standards, guidelines and best practices for identity management.

–  Create specifications based on business and marketplace needs

–  Liberty Identity Federation Framework (ID-FF) •  ID-FF 1.1 released in April 2003 •  ID-FF 1.2 released in November 2003 (submitted for SAML

2.0 inclusion)

Other Efforts from SAML 1.0

Copyright ©2013 Ping Identity Corporation. All rights reserved. 18

•  WS-Federation (Passive & Active Requestor) –  V1.1 (July 2003) –  V1.2 (OASIS Approved July 2009) –  Considered competitive to ID-FF by Liberty –  Commercial vendor-backed initiative –  Two modes:

•  “Active” – Web Services •  “Passive” – Browser SSO

–  Passive utilizes HTTP GET/POST instead of SOAP messages

–  Allows use of arbitrary tokens –  MS Implementation of WS-Fed (only complete

implementation today) utilizes extended SAML 1.1 tokens

Other Efforts

Page 10: CIS13: Bootcamp: Ping Identity SAML in Action with PingFederate Hands-On

6/21/13

10

Copyright ©2013 Ping Identity Corporation. All rights reserved. 19

SAML Timeline

Copyright ©2013 Ping Identity Corporation. All rights reserved. 20 Copyright ©2013 Ping Identity Corporation. All rights reserved. 20

Bootcamp Agenda

ü What and Why of SAML? ü  Benefits and Use Cases for SAML ü  Brief History of SAML Ø Version Changes •  Interoperability •  Technical Details

•  Core –  Profiles –  Bindings

•  Implementation Challenges

Page 11: CIS13: Bootcamp: Ping Identity SAML in Action with PingFederate Hands-On

6/21/13

11

Copyright ©2013 Ping Identity Corporation. All rights reserved. 21

•  SAML 1.0 à 1.1 –  Not backwards compatible –  Lots of clarity added to specification –  Digital Signature support for Exclusive XML Canonicalization

v1.0 (improved DSig Interop)

•  SAML 1.1 à2.0 –  MAJOR changes –  Not backwards compatible –  Brings together the 3 major Federation efforts:

•  SAML 1.1, Shibboleth Profile and ID-FF

So What Changed?

Copyright ©2013 Ping Identity Corporation. All rights reserved. 22

•  Pseudonyms –  Ability to create an opaque pseudo-random identifier –  Separate user identities between Identity and Service

Providers –  Maintain user privacy

•  Identifier Management –  Define how pseudonyms managed between federation

partners •  Metadata

–  Define standard document for exchanging configuration information to ease setup of SAML connections

•  Encryption –  End-to-End confidentiality of Assertions, Name Identifiers, or

attribute statements

SAML 2.0 Additions

Page 12: CIS13: Bootcamp: Ping Identity SAML in Action with PingFederate Hands-On

6/21/13

12

Copyright ©2013 Ping Identity Corporation. All rights reserved. 23

•  Attribute Profiles •  Session Management (Single Logout)

–  Allows for global logout across all service providers a user has logged into during a given session.

•  Devices (Enhanced Client or Proxy) •  Privacy

–  Gives users the ability to express consent to a given operation being performed

•  Identity Provider Discovery –  Provides a mechanism for service providers to determine the

appropriate identity provider to use for a given user when more than one identity provider is part of a deployment

SAML 2.0 Additions

Copyright ©2013 Ping Identity Corporation. All rights reserved. 24 Copyright ©2013 Ping Identity Corporation. All rights reserved. 24

Bootcamp Agenda

ü What and Why of SAML? ü  Benefits and Use Cases for SAML ü  Brief History of SAML ü  Version Changes Ø  Interoperability •  Technical Details

•  Core –  Profiles –  Bindings

•  Implementation Challenges

Page 13: CIS13: Bootcamp: Ping Identity SAML in Action with PingFederate Hands-On

6/21/13

13

Copyright ©2013 Ping Identity Corporation. All rights reserved. 25

•  Annual Event to bring together software vendors to speed adoption of identity standards

•  Organized/Supported by Kantara Initiative (formally Liberty Alliance) –  Executed by Drummond Group Inc

•  Stated goal of: –  “..helping developers' to deploy with confidence, success

and minimal time and cost, and vendors to incorporate standards effectively and interoperability into their offerings.”

•  Defined by SAML Conformance document –  Lists all available “operator modes” that software can

execute for SAML conformance

SAML Interop Certification

Copyright ©2013 Ping Identity Corporation. All rights reserved. 26

•  IdP – Identity Provider •  IdP Lite – Identity Provider Lite •  SP – Service Provider •  SP Lite – Service Provider Lite •  ECP – Enhanced Client/Proxy •  SAML Attribute Authority •  SAML Authorization Decision Authority •  SAML Authentication Authority •  SAML Requester

Operational Modes

Page 14: CIS13: Bootcamp: Ping Identity SAML in Action with PingFederate Hands-On

6/21/13

14

Copyright ©2013 Ping Identity Corporation. All rights reserved. 27

IdP and SP Feature Matrix

Copyright ©2013 Ping Identity Corporation. All rights reserved. 28

Extended IdP/SP

Page 15: CIS13: Bootcamp: Ping Identity SAML in Action with PingFederate Hands-On

6/21/13

15

Copyright ©2013 Ping Identity Corporation. All rights reserved. 29

SAML Authority & Requester Matrix

Copyright ©2013 Ping Identity Corporation. All rights reserved. 30 Copyright ©2013 Ping Identity Corporation. All rights reserved. 30

Bootcamp Agenda

ü What and Why of SAML? ü  Benefits and Use Cases for SAML ü  Brief History of SAML ü  Version Changes ü  Interoperability Ø  Technical Details

•  Core –  Profiles –  Bindings

•  Implementation Challenges

Page 16: CIS13: Bootcamp: Ping Identity SAML in Action with PingFederate Hands-On

6/21/13

16

Copyright ©2013 Ping Identity Corporation. All rights reserved. 31

•  Advanced Encryption Standard (AES) •  RFC 2246 (TLS v1) •  RFC 2617 (HTTP Auth: Basic & Digest Access

Authentication) •  SSL3 •  XML Encryption •  XML Signature

Other Specifications within SAML

Copyright ©2013 Ping Identity Corporation. All rights reserved. 32

Specification Documents

•  Defines a syntax for the definition of authentication context declarations and an initial list of authentication context classes.

AuthnContext

•  Defines protocol bindings for the use of SAML assertions and request-response messages in communications protocols and frameworks.

Bindings

•  Provides the technical requirements for SAML V2.0 conformance and specifies the entire set of documents comprising SAML V2.0.

Conformance

•  Defines the syntax and semantics for XML-encoded assertions about authentication, attributes, and authorization, and for the protocols that convey this information.

Core

•  Defines profiles for the use of SAML assertions and request-response messages in communications protocols and frameworks, as well as profiles for SAML attribute value syntax and naming conventions.

Profiles

•  Defines an extensible metadata format for SAML system entities, organized by roles that reflect SAML profiles.

Metadata

Page 17: CIS13: Bootcamp: Ping Identity SAML in Action with PingFederate Hands-On

6/21/13

17

Copyright ©2013 Ping Identity Corporation. All rights reserved. 33

SAML Components

•  Name Identifiers •  Assertions •  Subjects •  Conditions •  Statements

Core

•  Redirect •  SOAP •  POST •  Artifact •  PAOS

Bindings

•  Web-Browser SSO •  Artifact Resolution •  IDP Discovery •  Single Logout •  Enhance Client/Proxy SSO

Profiles

Copyright ©2013 Ping Identity Corporation. All rights reserved. 34 Copyright ©2013 Ping Identity Corporation. All rights reserved. 34

Bootcamp Agenda

ü What and Why of SAML? ü  Benefits and Use Cases for SAML ü  Brief History of SAML ü  Version Changes ü  Interoperability Ø  Technical Details

Ø Core –  Profiles –  Bindings

•  Implementation Challenges

Page 18: CIS13: Bootcamp: Ping Identity SAML in Action with PingFederate Hands-On

6/21/13

18

Copyright ©2013 Ping Identity Corporation. All rights reserved. 35

•  Covers the “core” of SAML •  Defines a syntax for the definition of authentication

context declarations and initial list of authentication context classes.

•  Defines: –  Common Data Types (String, URI, Time and ID/ID

Reference Values) –  Schema Header and Namespaces –  Request & Responses –  How SAML versions are declared and processed –  XML Signature Syntax and Processing –  XML Encryption Syntax and Processing –  SAML Extensibility –  SAML-Defined Identifiers

SAML Core

Copyright ©2013 Ping Identity Corporation. All rights reserved. 36

•  Assertion Query & Request •  Authentication Request (AuthnRequest) •  Artifact Resolution •  Name Identifier Management •  Single Logout •  Name Identifier Mapping

SAML Core Protocols

Page 19: CIS13: Bootcamp: Ping Identity SAML in Action with PingFederate Hands-On

6/21/13

19

Copyright ©2013 Ping Identity Corporation. All rights reserved. 37

Protocol Message

•  What kind of message is this? •  When was the message issued? •  Message ID •  InResponseTo (Required for some Profiles) •  Destination (Required for some Profiles)

Request Type

•  Who issued the message

Issuer

•  How was the message signed? •  What key was used? •  How should the message be verified?

Signature

•  Success/Failure

Status

Copyright ©2013 Ping Identity Corporation. All rights reserved. 38

•  Who issued the message Issuer

•  Digital Signature Info Signature

•  Who is the Assertion about? Subject

•  How long should the message be considered valid? •  Who is the message intended for?

Conditions

•  How and when was the user authenticated? Authn Statement (Advice)

•  Have any authorization decisions been made for this user? Authorization Decision Statement (Advice)

•  Is there any additional identity information about the user? Attribute Statement (Advice)

Assertion Structure

Page 20: CIS13: Bootcamp: Ping Identity SAML in Action with PingFederate Hands-On

6/21/13

20

Copyright ©2013 Ping Identity Corporation. All rights reserved. 39

•  Defines how SAML versions are declared and processed

•  Signatures are defined by the XML Signature spec •  Assertions and protocol messages MUST use

enveloped signatures when signing

Signature

Copyright ©2013 Ping Identity Corporation. All rights reserved. 40

Signature Sample <samlp:Response Destination="http://pf.pingsp.com:9030/sp/ACS.saml2" IssueInstant="2010-07-08T20:41:10.940Z" ID="u92mMuMlNkYjnJ1zDc75Yw0WTjq" Version="2.0" xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"> <saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">pf:saml2:dev</saml:Issuer>

<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> <ds:SignedInfo> <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/> <ds:Reference URI="#u92mMuMlNkYjnJ1zDc75Yw0WTjq"> <ds:Transforms> <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/> <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </ds:Transforms> <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> <ds:DigestValue>/vB9H56PmnIxi7iCQ/UDB8GW+ic=</ds:DigestValue> </ds:Reference> </ds:SignedInfo> <ds:SignatureValue>I1dcu+0yKpqN3Z+9UlCazrzhBzpbndYNKiQUwOkQ0ob31EoS2lmjYR71cNLfp8R37azA8iZIv0av FGiK7xF63wLgyJWgNaY/1mSJil3iHuVOSv3f2oe0KMVdTfcas5PpTMBnJ7UEm3rmsANkx/pY7kHk lHmlUX55leahLpWWUX4=</ds:SignatureValue> </ds:Signature> [….SNIP] </samlp:Response>

Page 21: CIS13: Bootcamp: Ping Identity SAML in Action with PingFederate Hands-On

6/21/13

21

Copyright ©2013 Ping Identity Corporation. All rights reserved. 41

•  Defines several ways to protect confidentiality: –  SSL/TLS –  An entire <Assertion> element may be encrypted –  The <BaseID> or <NameID> element may be encrypted –  An <Attribute> element may be encrypted

•  XML Encryption spec method defined for message encryption

•  If Encryption & Signatures are used: –  When a signed <Assertion> element is encrypted, the

signature MUST first be calculated and placed within the <Assertion> element before the element is encrypted.

–  When a <BaseID>, <NameID>, or <Attribute> element is encrypted, the encryption MUST be performed first and then the signature calculated over the assertion or message containing the encrypted element.

Encryption

Copyright ©2013 Ping Identity Corporation. All rights reserved. 42

Encryption Sample – Assertion (Before) <Assertion Version="2.0" IssueInstant="2010-07-08T19:24:38.723Z" ID="O5CqTQErjwI9Yo18Mu_EM7w2ytF" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"> <Issuer>pf:saml2:dev</Issuer> <Subject> <NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified">joe</NameID> <SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer"> <SubjectConfirmationData NotOnOrAfter="2010-07-08T19:29:38.723Z" Recipient="http://pf.pingsp.com:9030/sp/ACS.saml2"/> </SubjectConfirmation> </Subject> <Conditions NotOnOrAfter="2010-07-08T19:29:38.723Z" NotBefore="2010-07-08T19:19:38.723Z"> <AudienceRestriction> <Audience>pf:saml2:dev</Audience> </AudienceRestriction> </Conditions> <AuthnStatement AuthnInstant="2010-07-08T19:24:38.723Z" SessionIndex="O5CqTQErjwI9Yo18Mu_EM7w2ytF"> <AuthnContext> <AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:Password</AuthnContextClassRef> </AuthnContext> </AuthnStatement> </Assertion>

Page 22: CIS13: Bootcamp: Ping Identity SAML in Action with PingFederate Hands-On

6/21/13

22

Copyright ©2013 Ping Identity Corporation. All rights reserved. 43

Encryption Sample – Assertion (After) <saml:EncryptedAssertion> <xenc:EncryptedData Type="http://www.w3.org/2001/04/xmlenc#Element" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"> <xenc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc"/> <ds:KeyInfo> <xenc:EncryptedKey xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"> <xenc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5"/> <xenc:CipherData> <xenc:CipherValue>idGGytcD3PW5DNEdSEiaRlquQOU9As3Bi9hxueMEoqM/HGpyUS76w2hPYyTIkEWKsEuWf+l0SifU rRL7whGzNNxppRPHsaHcSeID7uzqpVtvQTnLYm5iJc3toybnA0Osn3u1tpjJuLq1K/Qu9wFG2dup CXXMf6M201BI3DN/RPQ=</xenc:CipherValue> </xenc:CipherData> </xenc:EncryptedKey> </ds:KeyInfo> <xenc:CipherData> <xenc:CipherValue>MThSrXZf7nsAVnVTEWizzPwkeH7uJfDgHPdtl5of2E8Coy/JyURuF12eKi8BzYaaRjTlF9ncpdQg7EhcDtapWzuxwdvh9c34IS49OvNF2T9wSkM73ZqnH2SZIDqkxyFycIe52cw4YfbfFAxPPKdK55az07e/EopEfWHm4GRH122AqVhEThbrJLf+vlCa308n18Em9JocdcHNy2pFQ6HReBbSQehYPRRy9nXSYZ6a4qSRthJvv4xzOL+HUyqwPKR+nglHe5OHNQdvqDfq7ce4ueSR10lBvLuJXND506GBhO8DNnYYNzUUDyqy/0ICwOOfvGWJd/VHvd8YCQE8iBDjbjj6erPThonqjeWIc+FGenJM3pKDOF6lyXJ7RUOn3NrNkN4gKSCJJhcgevEmoLOwc50GmDtSo6zP/HPLC5AKQ94Z9PcI6czI9Np1JPL/SAa3CidbJdYbNTpmwBr3QGgBH2iaVlCe2uUBLCH/RUiYBPPxKKCXgys03K+X5VSywZiRx3w67jQ4eAwdIwjmry3EGEmLDsY2s1dDJTltrCEdYqPaevVUurhEb/KuoG4Fc1YMYYPbQG4dUPHQLqmX0dh1ngA56jn8Zq+etQJKLl4MXHwzJL3zVPDBRngz5yWOXzYS/ [….SNIP]]]

</xenc:CipherValue> </xenc:CipherData> </xenc:EncryptedData> </saml:EncryptedAssertion>

Copyright ©2013 Ping Identity Corporation. All rights reserved. 44

Encryption Sample – Subject (Before) <saml:Assertion Version="2.0" IssueInstant="2010-07-08T19:33:18.315Z" ID="XF7yRaCv_PFV0pcX11lxF-wiJTx" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"> <saml:Issuer>pf:saml2:dev</saml:Issuer> <saml:Subject> <saml:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified">joe</saml:NameID> <saml:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer"> <saml:SubjectConfirmationData NotOnOrAfter="2010-07-08T19:38:18.315Z" Recipient="http://pf.pingsp.com:9030/sp/ACS.saml2"/> </saml:SubjectConfirmation> </saml:Subject> <saml:Conditions NotOnOrAfter="2010-07-08T19:38:18.315Z" NotBefore="2010-07-08T19:28:18.315Z"> <saml:AudienceRestriction> <saml:Audience>pf:saml2:dev</saml:Audience> </saml:AudienceRestriction> </saml:Conditions> <saml:AuthnStatement AuthnInstant="2010-07-08T19:33:18.315Z" SessionIndex="XF7yRaCv_PFV0pcX11lxF-wiJTx"> <saml:AuthnContext> <saml:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:Password</saml:AuthnContextClassRef> </saml:AuthnContext> </saml:AuthnStatement> </saml:Assertion>

Page 23: CIS13: Bootcamp: Ping Identity SAML in Action with PingFederate Hands-On

6/21/13

23

Copyright ©2013 Ping Identity Corporation. All rights reserved. 45

Encryption Sample – Subject (After) <saml:Assertion Version="2.0" IssueInstant="2010-07-08T19:33:18.315Z" ID="XF7yRaCv_PFV0pcX11lxF-wiJTx" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion”> <saml:Issuer>pf:saml2:dev</saml:Issuer>

<saml:Subject> <saml:EncryptedID> <xenc:EncryptedData Type="http://www.w3.org/2001/04/xmlenc#Element" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"> <xenc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc"/> <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> <xenc:EncryptedKey xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"> <xenc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5"/> <xenc:CipherData> <xenc:CipherValue>l0m1ZgTsRwTALrrsowhyMpvBuaaPGG5qKvbn3bbuOIAcqpbMfJRuHrK2ip6pDK8l7zDheLtgf2NL 9c1gZXzCDZzOoA44Pg773SOcbpiimrFa0m8pn7+V6x9R3RjM/igdeDOPt5ROYMmyhD23V8GP0OWy R/1e4QO53p3Cvvvw3Vc=</xenc:CipherValue> </xenc:CipherData> </xenc:EncryptedKey> </ds:KeyInfo> <xenc:CipherData> <xenc:CipherValue>dHdNAFtydG3ixf5vshA394cJNL4LY+59mxL/IASwqC7BoOe5Fi3twGCOsnipJUpJW/v1dV34Cwtl WoRuDoJlrZT6qLC6zJKU4TkHPxUfqnC2p4OTlkefUSQVcjhQ4pcNl0dYNr5wXeNh0EcE8/ung+K+ OLQl8Vl5c/LtI141S09J5248RHMw0lKqdZjKKFc0souCNP6k9dZu9qHXQ7fa4Q==</xenc:CipherValue> </xenc:CipherData> </xenc:EncryptedData> </saml:EncryptedID> <saml:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer"> <saml:SubjectConfirmationData NotOnOrAfter="2010-07-08T19:38:18.315Z" Recipient="http://pf.pingsp.com:9030/sp/ACS.saml2"/> </saml:SubjectConfirmation> </saml:Subject> [….SNIP] </saml:Assertion>

Copyright ©2013 Ping Identity Corporation. All rights reserved. 46

Encryption Sample – Attribute (Before)

<saml:AttributeStatement xmlns:xs="http://www.w3.org/2001/XMLSchema">

<saml:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified" Name="SSN">

<saml:AttributeValue xsi:type="xs:string" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">123456789</saml:AttributeValue>

</saml:Attribute> </saml:AttributeStatement> </saml:Assertion>

Page 24: CIS13: Bootcamp: Ping Identity SAML in Action with PingFederate Hands-On

6/21/13

24

Copyright ©2013 Ping Identity Corporation. All rights reserved. 47

Encryption Sample – Attribute (After) <saml:AttributeStatement> <saml:EncryptedAttribute> <xenc:EncryptedData Type="http://www.w3.org/2001/04/xmlenc#Element" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"> <xenc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc"/> <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> <xenc:EncryptedKey xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"> <xenc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5"/> <xenc:CipherData> <xenc:CipherValue>ix5Y4tE5Nde59UQJNOXdYJNLdpDdq9ZuXf8rcZAdH09a2Jd3HPJzaZTQqPc1196OWkqw+r8W7gzOWCSYCdxdDKvBfXfWF4cczSk4rX9ty2/hiC+9Wp/q54ON8EjNif2+devGeTcJT5fGJ1Fta8xjmSM6 8Ub17c/UAlVtclpMkpI=</xenc:CipherValue> </xenc:CipherData> </xenc:EncryptedKey> </ds:KeyInfo> <xenc:CipherData> <xenc:CipherValue>o10DRbBPvu8q8ZBN3bwmIaJJtpTwiaLbQ5SXBeSmALSIC1WTDGQ3EuKYwCWHXKLk3fapRLCt99PDbYSKoWJPXAuSwvR5m1j0O6wO876LjTRG9ynrF1Ltk4UG8gUCTGMx/4BVFVl/NWB3e3cxGqqff7Sn dV27J/Z9ea/4HKUez75EGIZGgPYK6GckSUHNsWGXvFYsyyBmAV4LKYVrozPd0ecw/56Xm5XlZK+f hUGHL797CbBkp6xgpcS1Q6OwZC1TJavHr963RcGJ+mZwklP5rHGctBKgV22zis8x2M76RkCgDlpK OQVnriGAzNKakr+gR5B73MG6nEsEn1qH1YqFgugN3w4WdDqyuIa2WuYEet196dB4DWtkIi9ZCzeq r8ouei6V49Tpxrd1FSrlJFHLQ9LJu+sR+LEYe6l13dPd8IGunb7oHJjjmgw3+FeZyUrmarATy0Vq oiD7dCBlUDQipnFHaQN88wJoD+HYsyGq/jUSaMiowdYbvCYCCy5cITin</xenc:CipherValue> </xenc:CipherData> </xenc:EncryptedData> </saml:EncryptedAttribute> </saml:AttributeStatement>

Copyright ©2013 Ping Identity Corporation. All rights reserved. 48 Copyright ©2013 Ping Identity Corporation. All rights reserved. 48

Bootcamp Agenda

ü What and Why of SAML? ü  Benefits and Use Cases for SAML ü  Brief History of SAML ü  Version Changes ü  Interoperability Ø  Technical Details

ü Core Ø Profiles –  Bindings

•  Implementation Challenges

Page 25: CIS13: Bootcamp: Ping Identity SAML in Action with PingFederate Hands-On

6/21/13

25

Copyright ©2013 Ping Identity Corporation. All rights reserved. 49

•  SSO Profiles –  Web Browser SSO –  Identity Provider Discovery –  Single Logout –  Enhanced Client or Proxy –  Name Identifier Management

•  Artifact Resolution •  Assertion Query/Request •  Name Identifier Mapping •  Attribute Profiles

–  Basic Attribute –  X.500/DAP Attribute –  UUID Attribute –  DCE PAC Attribute –  XACML Attribute

SAML Profiles

Copyright ©2013 Ping Identity Corporation. All rights reserved. 50

•  “Traditional” Federation SSO use case •  Allows for either IDP-Init SSO (Unsolicited) or SP-Init

SSO •  Assumes the user is using a standard commercial

web browser •  Utilizes SAML Authentication Request protocol in

conjunction with HTTP Redirect, HTTP POST and HTTP Artifact Bindings

Web Browser SSO

Page 26: CIS13: Bootcamp: Ping Identity SAML in Action with PingFederate Hands-On

6/21/13

26

Copyright ©2013 Ping Identity Corporation. All rights reserved. 51

Create Session With Identity

SAML Response In HTTP POST

SAML Explained: Web SSO

•  User connects directly to cloud application

Identity Look-up

SAML Response In Form

Redirect to Application

With Session

•  User is redirected to Application’s Federation Server

•  Federation server redirects user to PingFederate with an AuthnRequest

•  A SAML assertion is generated and returned in an HTML form

•  The SAML assertion is posted to the federation server at the cloud application

•  The federation server consumes the SAML assertions and notifies the application to create an authenticated session

•  The user is redirected to the cloud application with an authenticated session.

Request Application

Redirect to Federation

Server

Redirect to PingFederate

With AuthnRequest

•  User authenticates

Authentication Challenge Credentials

Better known as SP initiated, using POST.

Copyright ©2013 Ping Identity Corporation. All rights reserved. 52

Create Session With Identity

SAML Response In HTTP POST

SAML Explained: Web SSO (Unsolicited)

•  User requests to connect to cloud application

Request Application

Identity Look-up

Redirect to PingFederate

SAML Response In Form

Redirect to Application

With Session

•  User is redirected to PingFederate

•  PingFederate validates the user’s identity

•  A SAML assertion is generated and returned in an HTML form

•  The SAML assertion is posted to the federation server at the cloud application

•  The federation server consumes the SAML assertions and notifies the application to create an authenticated session

•  The user is redirected to the cloud application with an authenticated session.

Better known as IdP initiated, using POST.

Page 27: CIS13: Bootcamp: Ping Identity SAML in Action with PingFederate Hands-On

6/21/13

27

Copyright ©2013 Ping Identity Corporation. All rights reserved. 53

•  Notable checks for Service Provider: –  All signatures must be valid –  Verify timestamps (NotBefore/NotOnOrAfter) –  InResponseTo attribute equals the ID of the original

AuthnRequest –  Assertion has not been replayed –  Recipient attribute in <SubjectConfirmationData> matches

ACS URL to which <Response> or Artifact was delivered

Web SSO - <Response> Processing Rules

Copyright ©2013 Ping Identity Corporation. All rights reserved. 54

•  Notable checks for Identity Provider: –  All signatures must be valid –  Verify timestamps (NotBefore/NotOnOrAfter) –  InResponseTo attribute must be included in the <Response> –  If the <AuthnRequest> is not authenticated and/or integrity

protected the information in it MUST NOT be trusted except as advisory.

–  The identity provider MUST ensure that any <AssertionConsumerServiceURL> or <AssertionConsumerServiceIndex> elements in the request are verified as belonging to the service provider to whom the response will be sent.

Web SSO - <AuthnRequest> Processing Rules

Page 28: CIS13: Bootcamp: Ping Identity SAML in Action with PingFederate Hands-On

6/21/13

28

Copyright ©2013 Ping Identity Corporation. All rights reserved. 55

•  Artifact Resolution protocol is defined in SAML Core Spec Document

•  Artifact Resolution Profile uses the Artifact Resolution protocol + HTTP Artifact binding

Artifact Resolution Profile

Copyright ©2013 Ping Identity Corporation. All rights reserved. 56

Create Session With Identity

Artifact In HTTP POST

SAML Explained: IdP Initiated SSO - Artifact

•  User requests to connect to cloud application

Request Application

Identity Look-up

Redirect to PingFederate

Retrieve SAML by SOAP

Artifact In Form

Redirect to Application

With Session

•  User is redirected to PingFederate

•  PingFederate validates the user’s identity

•  The artifact is posted to the federation server.

•  The SAML assertion is generated and stored in PingFederate. An artifact is returned in an HTML form.

•  The federation server calls back to PingFederate to retrieve the SAML assertion.

•  The user is redirected to the cloud application with an authenticated session.

•  The SAML assertion is consumed and used to create an authenticated session at the cloud application.

Page 29: CIS13: Bootcamp: Ping Identity SAML in Action with PingFederate Hands-On

6/21/13

29

Copyright ©2013 Ping Identity Corporation. All rights reserved. 57

•  Synchronous binding is required (SOAP) SP •  Requester should authenticate to IdP by signing the

<ArtifactResolve> or via any binding-supported mechanism

•  Responded MUST authenticate itself to requester (usually by signing the <ArtifactResponse>

Artifact Processing Rules

Copyright ©2013 Ping Identity Corporation. All rights reserved. 58

•  Leverages the use of a “common cookie” ("_saml_idp”)

•  All participants must be part of the same domain (.[common-domain]) to be able to read/write to cookie

•  The common domain cookie: –  May be session-only or persistent –  Contains list of IdP IDs –  IDs are Base64 encoded first then entire list is URL

encoded.

Identity Provider Discovery Profile

Page 30: CIS13: Bootcamp: Ping Identity SAML in Action with PingFederate Hands-On

6/21/13

30

Copyright ©2013 Ping Identity Corporation. All rights reserved. 59

•  Defines a mechanism in which a principal may terminate their session at the IdP (session authority) as well as all SP sessions (session participant) in which the IdP is managing

•  IDP-Init and SP-Init SLO use cases defined •  Front (Redirect, POST, Artifact) and back-channel

(SOAP) bindings are defined •  Front-channel bindings are recommended since most

sessions are stored via the browser

Single Logout Profile

Copyright ©2013 Ping Identity Corporation. All rights reserved. 60

Single Logout (Unsolicited)

SP 2

Identity Provider

SP 1

User requests logout from SP2

SP 2 terminates local session

<LogoutRequest> issued by SP 2

IdP determines other SPs

<LogoutRequest> issued by IdP

SP 1 terminates local session

<LogoutResponse> issued by SP 1

<LogoutResponse> returned by IdP

Page 31: CIS13: Bootcamp: Ping Identity SAML in Action with PingFederate Hands-On

6/21/13

31

Copyright ©2013 Ping Identity Corporation. All rights reserved. 61

•  <LogoutRequest> –  Must be signed for HTTP POST or Redirect (Artifact/SOAP

allows Binding Authentication only) –  SP message MUST contain <SessionIndex> (may omit for

IdP) –  Issuer MUST be present

•  <LogoutResponse> –  Issuer MUST be present –  Must be signed for HTTP POST or Redirect (Artifact/SOAP

allows Binding Authentication only)

SLO Processing Rules

Copyright ©2013 Ping Identity Corporation. All rights reserved. 62

•  Specifies communication between enhanced clients or proxies and IdPs/SPs

•  An ECP: –  Knows how to obtain appropriate IdP info with regard to SP –  Supports reverse SOAP (PAOS)

•  Enhanced Client: may be a browser or user agent •  Enhanced Proxy: HTTP proxy (ie, WAP gateway) the

emulates enhanced client •  Profile applies to EC/EP equally

Enhanced Client or Proxy (ECP) Profile

Page 32: CIS13: Bootcamp: Ping Identity SAML in Action with PingFederate Hands-On

6/21/13

32

Copyright ©2013 Ping Identity Corporation. All rights reserved. 63

ECP

3. ECP Determines IDP to use

1. ECP requests access to resource at SP

2. <AuthnRequest> issued by SP using POAS (HTTP Response)

4. ECP sends <AuthnRequest> to IDP via SAML SOAP

5. IDP Authenticates user (out of scope)

6. IDP issues <Response> to ECP via SAML SOAP

7. ECP sends <Response> to SP using POAS (HTTP POST)

8. SP returns the resource or error (HTTP) in HTTP Response

ECP SP IdP

Copyright ©2013 Ping Identity Corporation. All rights reserved. 64 Copyright ©2013 Ping Identity Corporation. All rights reserved. 64

Bootcamp Agenda

ü What and Why of SAML? ü  Benefits and Use Cases for SAML ü  Brief History of SAML ü  Version Changes ü  Interoperability Ø  Technical Details

ü Core ü Profiles Ø Bindings

•  Implementation Challenges

Page 33: CIS13: Bootcamp: Ping Identity SAML in Action with PingFederate Hands-On

6/21/13

33

Copyright ©2013 Ping Identity Corporation. All rights reserved. 65

•  Allows protocol messages to be transmitted within URL parameters

•  URL length is theoretically infinite but limited in practice (web servers & browsers)

•  Not recommended for transmission of Assertion data due to URL length –  SLO, AuthnRequest, and Artifact messages are most

common using HTTP Redirect

•  Endpoints MUST support the DEFLATE compression method (RFC 1951)

•  More in SAML “Bindings” Doc Sect 3.4

HTTP Redirect Binding

Copyright ©2013 Ping Identity Corporation. All rights reserved. 66

HTTP Redirect Binding Example

<AuthnRequest IssueInstant="2010-06-17T14:10:35.125Z” ID="tZVMOWVaoGOUh_fFjwllXTeMlYT" Version="2.0" xmlns="urn:oasis:names:tc:SAML:2.0:protocol" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion”><saml:Issuer>pf:saml2:dev</saml:Issuer><NameIDPolicy AllowCreate="true"/></AuthnRequest>

Message Output https://idp.server.com/ssoendpoint?

SAMLRequest=fZDBTsMwEER%2FxfK9rR1akFZJpIiKKlJDEaQBekFW2KqpHDt4bQp%2Fj0kv5cL9vZnZTUn1eoAi%2BIN5xI%2BA5FlJFLA05JXxGU%2BEFBNxPZE3tZyDFHC1mMpkseOsXGbc75pq89wou9psD2%2F7u%2BNJ65caK%2F1ac9ago86amDEVnH312hCMfRkPzoBV1BEY1SOBb%2BGpqNYQSRic9ba1mufpLw3jHnfh%2F68rInQ%2B9vJ82I98Au%2F4mc4uws7JA9xHu1w%2BWN2136zQ2p5uHSqP8TAXkM%2Fys%2FX3QfkP&RelayState=<URL Encoded>

Protocol Message

Page 34: CIS13: Bootcamp: Ping Identity SAML in Action with PingFederate Hands-On

6/21/13

34

Copyright ©2013 Ping Identity Corporation. All rights reserved. 67

•  Defines how protocol messages may be transmitted within a Base64 encoded HTML form [HTML401] Section 17

•  No restriction on recommended protocol message types

•  Not typically limited by user agent •  More in SAML “Bindings” Doc Sect 3.5

HTTP Post Binding

Copyright ©2013 Ping Identity Corporation. All rights reserved. 68

HTTP Post Binding Example

Protocol Message

<AuthnRequest IssueInstant="2010-06-17T15:02:06.923Z" ID="WvhjWtL2Dz4sPVTnuqnxXdeLW1L" Version="2.0" xmlns="urn:oasis:names:tc:SAML:2.0:protocol" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">

<saml:Issuer>pf:saml2:dev</saml:Issuer>

<NameIDPolicy AllowCreate="true"/>

</AuthnRequest>

Message Output <html> <head><title>Submit Form</title></head> <body onload="javascript:document.forms[0].submit()"> <form method="post" action="https://idp.server.com/ssoendpoint"> <input type="hidden" name="SAMLRequest" value="PHNhbWxwOkF1dGhuUmVxdWVzdCBJc3N1ZUluc3RhbnQ9IjIwMTAtMDYtMTdUMTU6MDI6MDYuOTIzWiIgSUQ9Ild2aGpXdEwyRHo0c1BWVG51cW54WGRlTFcxTCIgVmVyc2lvbj0iMi4wIiB4bWxuczpzYW1scD0idXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6Mi4wOnByb3RvY29sIj48c2FtbDpJc3N1ZXIgeG1sbnM6c2FtbD0idXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6Mi4wOmFzc2VydGlvbiI+cGY6c2FtbDI6ZGV2PC9zYW1sOklzc3Vlcj48c2FtbHA6TmFtZUlEUG9saWN5IEFsbG93Q3JlYXRlPSJ0cnVlIi8+PC9zYW1scDpBdXRoblJlcXVlc3Q+"/> <input type="hidden" name="RelayState" value="RaAeQlq5X5vE7W2akrF7ynW2fslMW8"/> <noscript><input type="submit" value="Resume"/></noscript> </form> </body> </html>

Page 35: CIS13: Bootcamp: Ping Identity SAML in Action with PingFederate Hands-On

6/21/13

35

Copyright ©2013 Ping Identity Corporation. All rights reserved. 69

•  Defines how to send/receive SAML requests and responses

•  Only supports SOAP 1.1 •  SAML protocol messages *MUST* be enclosed within

SOAP message body •  Conformance to SOAP Binding requires SAML over

SOAP over HTTP •  More in SAML “Bindings” Doc Sect 3.2

SAML SOAP Binding

Copyright ©2013 Ping Identity Corporation. All rights reserved. 70

SOAP Binding Example

Protocol Message

<samlp:ArtifactResolve IssueInstant="2010-07-09T15:47:01.459Z" ID="FPiM_AHllAVj1cTAx2Ym-5Ptk_T" Version="2.0" xmlns:S11="http://schemas.xmlsoap.org/soap/envelope/" xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol”>

<saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">pf:saml2:dev</saml:Issuer>

<samlp:Artifact>AAQAAFSrmHm5JrjWYQ3cyTcwdOFaQRusm9QjjfvSoNuN/I37nOdSZDISWz4=</samlp:Artifact>

</samlp:ArtifactResolve>

Message Output <S11:Envelope xmlns:S11="http://schemas.xmlsoap.org/soap/envelope/">

<S11:Body> <samlp:ArtifactResolve IssueInstant="2010-07-09T15:47:01.459Z" ID="FPiM_AHllAVj1cTAx2Ym-5Ptk_T" Version="2.0" xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol">

<saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">pf:saml2:dev</saml:Issuer>

<samlp:Artifact>AAQAAFSrmHm5JrjWYQ3cyTcwdOFaQRusm9QjjfvSoNuN/I37nOdSZDISWz4=</samlp:Artifact>

</samlp:ArtifactResolve> </S11:Body> </S11:Envelope>"

Page 36: CIS13: Bootcamp: Ping Identity SAML in Action with PingFederate Hands-On

6/21/13

36

Copyright ©2013 Ping Identity Corporation. All rights reserved. 71

•  Designed for use in cases where the browser is the intermediary

•  Most commonly used when browser has technical limitations to carry entire message or the IdP & SP do not want to expose the message content to the intermediary (w/out using encryption

•  More in SAML “Bindings” Doc Sect 3.6

HTTP Artifact Binding

Copyright ©2013 Ping Identity Corporation. All rights reserved. 72

HTTP Artifact Format

SAML_artifact := B64(TypeCode EndpointIndex RemainingArtifact)

TypeCode := Byte1Byte2

EndpointIndex := Byte1Byte2

TypeCode := 0x0004

RemainingArtifact := SourceID MessageHandle

SourceID := 20-byte_sequence

MessageHandle := 20-byte_sequence

Page 37: CIS13: Bootcamp: Ping Identity SAML in Action with PingFederate Hands-On

6/21/13

37

Copyright ©2013 Ping Identity Corporation. All rights reserved. 73

HTTP Artifact Binding Example

Artifact via Redirect

SAMLart=AAQAAFSrmHm5JrjWYQ3cyTcwdOFaQRusm9QjjfvSoNuN/I37nOdSZDISWz4=

ArtifactResolve via SOAP

<samlp:ArtifactResolve IssueInstant="2010-07-09T15:47:01.459Z" ID="FPiM_AHllAVj1cTAx2Ym-5Ptk_T" Version="2.0" xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"><saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">pf:saml2:dev</saml:Issuer><samlp:Artifact>AAQAAFSrmHm5JrjWYQ3cyTcwdOFaQRusm9QjjfvSoNuN/I37nOdSZDISWz4=</samlp:Artifact></samlp:ArtifactResolve>

Copyright ©2013 Ping Identity Corporation. All rights reserved. 74 Copyright ©2013 Ping Identity Corporation. All rights reserved. 74

Bootcamp Agenda

ü What and Why of SAML? ü  Benefits and Use Cases for SAML ü  Brief History of SAML ü  Version Changes ü  Interoperability ü  Technical Details

ü Core ü Profiles ü Bindings

Ø  Implementation Challenges

Page 38: CIS13: Bootcamp: Ping Identity SAML in Action with PingFederate Hands-On

6/21/13

38

Copyright ©2013 Ping Identity Corporation. All rights reserved. 75

•  Identifier collisions •  Build vs. Buy •  IdP Discovery •  Legal •  Remote vs Network access (ditch the VPN) •  Continued use of local accounts •  Provisioning

Common Implementation Challenges

Copyright ©2013 Ping Identity Corporation. All rights reserved. 76

•  Active Federation –  Oauth 2.0 –  WS-Trust

•  Other Passive Federation Protocols –  WS-Federation

•  Authorization –  XACML

Expanded Uses of SAML

Page 39: CIS13: Bootcamp: Ping Identity SAML in Action with PingFederate Hands-On

6/21/13

39

Copyright ©2013 Ping Identity Corporation. All rights reserved. 77

•  SAML (protocol) and WS-Federation are examples of “passive” federation –  Requests and responses are embedded into

HTTP web activities to enable token travel •  OAuth and WS-Security are examples of

“active” federation –  A web services client must programmatically

request the issuance or validation of the token and then decide what to do with that token

Active and Passive Federation

Copyright ©2013 Ping Identity Corporation. All rights reserved. 78

•  OAuth is evolving into the WS-Security of the REST world •  OAuth enables delegation of access or authentication

without sharing passwords •  OAuth 1.0a is the old standard still in use

–  Focused on granting authorization to 3rd party services, –  authentication was not in scope –  mostly web-based –  3-legged involves user, used for initial permission –  2-legged is passive, used for subsequent activity

•  OAuth 2.0 is the current standard approved at IETF –  Much broader scope, multiple profiles –  Includes desktop clients, devices –  Authentication is now an integral part of the spec –  Work underway to profile SAML tokens for use with Oauth

Expanded Uses - OAuth

Page 40: CIS13: Bootcamp: Ping Identity SAML in Action with PingFederate Hands-On

6/21/13

40

Copyright ©2013 Ping Identity Corporation. All rights reserved. 79

•  WS-Trust is part of the WS-* suite of XML protocols

•  WS-Trust is used to programmatically ask for and validate a token

–  SAML tokens most common target •  A critical part of web services/SOA

security –  Tokens “transformed” through the

issue/validate process –  Allows delegation without

password sharing

Expanded Uses – WS-Trust

STS STS

Java or .NET Application

STS Client SDK

ExistingSecurityToken

NewSecurityToken

NewSAML

Assertion

Copyright ©2013 Ping Identity Corporation. All rights reserved. 80

•  WS-Federation is also part of the WS-* suite of XML protocols

–  Takes WS-Trust active federation and embeds it into an HTTP exchange to accomplish browser single sign-on

–  The same SAML tokens are communicated, just via a different envelope

•  WS-Federation is the default SSO protocol for federation at Microsoft

–  Microsoft products that are federation enabled use WS-Federation, not SAML

–  Heavy .NET support for WS-Federation

•  WS-Federation is primarily RP-initiated

–  Users generally go to the Relying Party first

Expanded Uses – WS-Federation

Page 41: CIS13: Bootcamp: Ping Identity SAML in Action with PingFederate Hands-On

6/21/13

41

Copyright ©2013 Ping Identity Corporation. All rights reserved. 81

•  XACML adds specification and enforcement of policy on top of federated authentication requests –  Standard language describing actions and consequences –  Enforcement Points, Decision Points, and Administration

Points each have roles –  Enables federated authorization, delegation, and obligation

Expanded Uses - XACML

Copyright ©2013 Ping Identity Corporation. All rights reserved. 82 Copyright ©2013 Ping Identity Corporation. All rights reserved. 82

Bootcamp Agenda

ü What and Why of SAML? ü  Benefits and Use Cases for SAML ü  Brief History of SAML ü  Version Changes ü  Interoperability ü  Technical Details

ü Core ü Profiles ü Bindings

ü  Implementation Challenges

Page 42: CIS13: Bootcamp: Ping Identity SAML in Action with PingFederate Hands-On

6/21/13

42

Copyright ©2013 Ping Identity Corporation. All rights reserved. 83

•  Configuring SSO Using SAML –  Salesforce as Service Provider –  PingFederate as Identity Provider

Demonstration of Bootcamp Exercise

Copyright ©2013 Ping Identity Corporation. All rights reserved. 84

•  Now your turn!!

Bootcamp Exercise