Top Banner
© 2010 Ping Identity Corporation SCIM Webinar Jan 18, 2012 Patrick Harding, CTO Paul Madsen, Senior Technical Architect
35

Jan19 scim webinar-04

Jan 15, 2015

Download

Technology

Paul Madsen

Overview of the Simple Cloud Identity Management spec
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: Jan19 scim webinar-04

© 2010 Ping Identity Corporation

SCIM WebinarJan 18, 2012

Patrick Harding, CTO

Paul Madsen, Senior Technical Architect

Page 2: Jan19 scim webinar-04

© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation

Background & Overview

Page 3: Jan19 scim webinar-04

© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation

Current State

• Enterprises need programmatic mechanisms to manage

users/roles/groups in Cloud apps

• Large SaaS vendors have implemented proprietary API’s

• Google, Salesforce, Cisco Webex, Successfactors, etc

• All very similar, work well

Page 4: Jan19 scim webinar-04

© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation

Call to Arms

• At Cloud Identity Summit 2010

• Attendees established need for an ‘open standard’ for

provisioning cloud users

• Google, Salesforce, Ping Identity, UnboundID, Microsoft

created ‘Cloud Directory’ user group

• Initial discussions at IIW 12

Page 5: Jan19 scim webinar-04

© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation

Page 6: Jan19 scim webinar-04

© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation

2011 - Year of Development

• Q1 2011

• Initial Draft SCIM Spec

developed by Ping,

UnboundID and Salesforce

• Q2 2011

• Draft SCIM Spec introduced

at IIW 13

• Significant interest and

discussion

• Q3 2011

• SCIM Working Group

established under OWF

• Cisco, Sailpoint, Google

contribute

• Q4 2011

• Multiple vendors

demonstrate interop at IIW

14

• SCIM V1.0 in December

2011

Page 7: Jan19 scim webinar-04

© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation

SCIM 1.0 Specification Set

Core SchemaUser, Enterprise Extension, Groups, Config

REST APICRUD

methodsresponse

codes

SAML Binding (draft)Attribute

mapping

Future bindings

http://simplecloud.info

Page 8: Jan19 scim webinar-04

© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation

SCIM Basics

• Core Schema

• Represents User, Groups, Schema, Bulk etc

• Defines basic user attributes (name, address contact etc.)

• REST API

• Defines Create, Read, Update & Delete methods to synchronize

user object information

• SAML Binding

• Supports Just-In-Time provisioning during SSO

• Maps SCIM schema to SAML AttributeStatement

Page 9: Jan19 scim webinar-04

© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation

Example 1: Push

SCIMClient

Cloud AppProvider

User Store

1. Create/Update/DeleteUser Object

2. Status

User Directory

API

Page 10: Jan19 scim webinar-04

© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation

Example 2: SAML JIT

SAML IdP SAML SP

1. SAML Token w/User Object

Browser

User Directory

User Store

Page 11: Jan19 scim webinar-04

© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation

Example 3: OpenID JIT + Pull

OpenID IdP OpenID SP

1. OpenID Response

Browser

User Store

User StoreAPI 2. Read User Object

3. User Object

Page 12: Jan19 scim webinar-04

© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation

What’s Next?

• Implementation, implementation, implementation !!!

• Major cloud application platforms have indicated that they will

implement SCIM in 2012

• SCIM working group to move to the IETF in 2012

• Use SCIM v1.0 as baseline submission

• Working code, successful deployments are key

• SCIM v2.0 will address issues

Page 13: Jan19 scim webinar-04

© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation

Technical

Page 14: Jan19 scim webinar-04

© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation

Terminology

•Service Provider: A web application that provides identity information via the SCIM protocol (think SaaS)

•Consumer: A website or application that uses the SCIM protocol to manage identity data maintained by the Service Provider. (think Enterprise)

•Resource: The Service Provider managed artifact containing one or more attributes; e.g., User or Group

Page 15: Jan19 scim webinar-04

© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation

Schema

• SCIM provides a minimal core schema for

representing Resources of different types

• User, Groups, Schema, Bulk etc

• User schema took as starting point the

Portable Contacts schema [1]

• Basic user attributes (name, address contact,

groups, password etc.)

[1] - http://www.portablecontacts.net/draft-spec.html

Page 16: Jan19 scim webinar-04

© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation

Schema-Password?

• Group torn on whether to support password management in

schema

• Acknowldgement that best practice is that enterprise users

NOT be provisioned with passwords at SaaS providers

• But

• Current reality doesn’t everywhere reflect ideal

• Hope/expectation that SCIM will be applied beyond Cloud

• Consumers can specify an initial password when creating a

new User (POST) or to reset an existing User's password

(PATCH)

Page 17: Jan19 scim webinar-04

© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation

Schema-Enterprise extension

• Extends generic user with enterprise

semantics

• Adds manager, department,

organization, etc

<ent:employeeNumber>701984</ent:employeeNumber> <ent:manager>

<ent:managerId>902c246b-6245-4190</ent:managerId> <ent:displayName>Mandy Pepperidge</ent:displayName> </ent:manager> <ent:costCenter>4130</ent:costCenter> <ent:organization>Universal Studios</ent:organization> <ent:division>Theme Park</ent:division> <ent:department>Tour Operations</ent:department>

Page 18: Jan19 scim webinar-04

© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation

Schema-Groups

• Group resources enable group & role based access control

• Groups contain members

• How Service Provider implements access control out of scope

PATCH /Groups/acbf3ae7-8463-4692-b4fd-9b4da3f908ceHost: example.comAccept: application/json Authorization: Bearer h480djs93hd8 ETag: W/"a330bc54f0671c9"

{ "schemas": ["urn:scim:schemas:core:1.0"], "members": [ { "display": "Babs Jensen", "value": "2819c223-7f76-453a-919d-413861904646" } ] }

Page 19: Jan19 scim webinar-04

© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation

Schema-Metadata

• Service Provider Configuration Resource enables a Service

Provider to expose its compliance with SCIM specification

in a standardized form & provide additional implementation

details to Consumers.

{ "schemas": ["urn:scim:schemas:core:1.0"]"patch": { "supported":true }, "bulk": { "supported":true, "maxOperations":1000,"maxPayloadSize":1048576 }, "filter": { "supported":true, "maxResults": 200 }, "changePassword" : { "supported":true }"authenticationSchemes": [ { "name": "OAuth Bearer Token",

"specUrl":"http://tools.ietf.org/html/draft-ietf-oauth-v2-bearer-01", "documentationUrl":"http://example.com/help/oauth.html",

"type":"oauthbearertoken", "primary": true },}

Page 20: Jan19 scim webinar-04

© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation

Schema- representative AD Mapping

AD SCIM

userPrincipalName userName

mail email.value (type=work)

givenName name.givenName

sn name.familyName

whenCreated meta.whenCreated

userPassword password

cn displayName

Page 21: Jan19 scim webinar-04

© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation

API

• Specifies well known endpoints & HTTP methods for managing

Resources defined in the core schema

• User and Group Resources correspond to /Users and /Groups

respectively

• REStful (really)

• Responses are returned in the body of the HTTP response,

formatted as JSON or XML, depending on what is requested

Page 22: Jan19 scim webinar-04

© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation

API-Architecture

Client ServiceProvider

Resources

Resource representation

Response

API

Page 23: Jan19 scim webinar-04

© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation

API-Verbage

• API uses HTTP verbs as follows

• GET (retrieves an existing resource)

• POST (creates a new resource)

• PUT (overrides an existing resource)

• BATCH (partially modifies an existing resource)

• DELETE (deletes an existing resource)

Page 24: Jan19 scim webinar-04

© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation

API-Authentication

• SCIM does not mandate a particular authentication scheme by

which Consumers authenticate to Service Providers

• OAuth 2.0 is RECOMMENDED, but other schemes (eg HTTP

Basic) not precluded

• Consumers and Service Providers MUST implement TLS

Page 25: Jan19 scim webinar-04

© 2010 Ping Identity Corporation

POST /User HTTP/1.1Host: example.com Accept: application/xml Authorization: Bearer h480djs93hd8

<?xml version="1.0" encoding="UTF-8"?><scim:User xmlns:scim="urn:scim:schemas:core:1.0">

<userName>[email protected]</userName><externalId>701984</externalId><emails>

<email><value>[email protected]</value><primary>true</primary><type>work</type></email>

</emails></scim:User>

API-Authentication-OAuth example

Page 26: Jan19 scim webinar-04

© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation

API-Response codes

• API uses/overrides HTTP Response codes to indicate

operation success or failure.

• In addition, Service Providers return errors in body of the

response and human-readable explanations.

HTTP/1.1 404 NOT FOUND

{"Errors":[

{ "description":"Resource 2819c223-7f76-453a-919d- not

found", "code":"404" } ]}

Page 27: Jan19 scim webinar-04

© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation

API-Error codes

Page 28: Jan19 scim webinar-04

© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation

API-Response operations

• SCIM defines a standard set of operations that can be used to

filter, sort, and paginate response results.

• Consumers may request a subset of Resources by specifying

the 'filter' URL query parameter containing a filter expression.

• Sorting allows Consumers to specify the order in which

Resources are returned by specifying a combination of sortBy

and sortOrder URL parameters

• Pagination parameters can be used together to "page through"

large numbers of Resources so as not to overwhelm the

Consumer or Service Provider

Page 29: Jan19 scim webinar-04

© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation

SAML Binding

• Supports a JIT provisioning model where users created in real

time (vs a priori via API)

• Binds SCIM User objects to SAML Attributes

• Expectation is that other SSO/JIT bindings will follow in time

• SAML binding not voted out with API and Core Schema, group

needs to resolve tension between

• SCIM push for simplicity

• Existing SAML Attribute Person Profiles

• Complex attributes don’t easily map into SAML Attributes

Page 30: Jan19 scim webinar-04

© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation

SAML Binding-Architecture

Client ServiceProvider

ResourcesResource representation

Browser

SAMLSP

SAMLIdP

Page 31: Jan19 scim webinar-04

© 2010 Ping Identity Corporation

<saml:AttributeStatement xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:scim="http://placeholder.scim.org/2011/schema/extension"><saml:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified" Name="SCIM.userName">

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

</saml:AttributeValue> </saml:Attribute>

<saml:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified" Name="SCIM.name.formatted">

<saml:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">Ms. Babs J Jensen III

</saml:AttributeValue> </saml:Attribute>

</saml:AttributeStatement>

SAML Binding-SAML Attributes

Page 32: Jan19 scim webinar-04

© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation

Conclusions

•SCIM has potential to be important IdM standard in & out of cloud

•But, if SCIM is to avoid SPML's fate, adoption is key

•Start demand ingIdM vendors and SaaS providers add support

Page 33: Jan19 scim webinar-04

© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation

Thank you

@pingcto, @paulmadsen

Page 34: Jan19 scim webinar-04

© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation

Demo

Page 35: Jan19 scim webinar-04

© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation© 2010 Ping Identity Corporation

Demo

Enterprise Salesforce

User StoreSCIM

AD

SFDC

Ping Cloud