Kantara Workshop: Making the World Safe for User-Managed Access - - PowerPoint PPT Presentation

kantara workshop making the world safe for user managed
SMART_READER_LITE
LIVE PREVIEW

Kantara Workshop: Making the World Safe for User-Managed Access - - PowerPoint PPT Presentation

Kantara Workshop: Making the World Safe for User-Managed Access Eve Maler Kantara UMA Work Group Chair 4 May 2010 1 About Kantara Initiative http://kantarainitiative.org Participation: Open global identity, web, and developer community


slide-1
SLIDE 1

Kantara Workshop: Making the World Safe for User-Managed Access

Eve Maler Kantara UMA Work Group Chair 4 May 2010

1

slide-2
SLIDE 2

About Kantara Initiative

  • Participation: Open global identity, web, and developer

community of individuals and organizations, such as:

  • Deployers, operators, Web 2.0 service providers, eGovernment

agencies, IT vendors, consumer electronics vendors

  • Developers and members of the open source, legal, and privacy

communities

  • Goal: Harmonize identity community activities to help ensure

secure, identity-based, online interactions

  • While preventing misuse of personal information so that networks will

become privacy protecting and more natively trustworthy environments.

  • Work: 18 Work Groups and Discussion Groups (including UMA)

and two certification oversight bodies (Assurance and Interop)

2

http://kantarainitiative.org

slide-3
SLIDE 3

How to participate

  • It’s absolutely free to participate in any group
  • You can also support the overall goals of the Initiative with

an individual or organizational Membership

  • Today is a public workshop
  • You are invited to become an UMA WG participant

(“UMAnitarian”!) to contribute actively to our work

  • To become a participant right now, visit

kantarainitiative.org, select the User-Managed Access Group, and click on Join This Group

  • We operate under reciprocal royalty-free rules

3

slide-4
SLIDE 4

Suggested agenda for today

  • Introductions
  • UMA in a nutshell
  • The landscape and requirements
  • Scenarios, use cases, and user experiences
  • The UMA protocol
  • Policies, claims, and agreements

4

slide-5
SLIDE 5

Introductions

5

slide-6
SLIDE 6

UMA in a nutshell

6

slide-7
SLIDE 7

UMA is...

  • A web protocol that lets you control authorization of

data sharing and service access made on your behalf

  • A Work Group of the Kantara Initiative that is free for

anyone to join and contribute to

  • A set of draft specifications that is free for anyone to

implement

  • Heading towards multiple implementation efforts
  • Going to be contributed to the IETF
  • Striving to be simple, OAuth-based, identifier-agnostic,

RESTful, modular, generative, and developed rapidly

7

slide-8
SLIDE 8

The players

(definitions come from core protocol spec)

8

slide-9
SLIDE 9

The players

(definitions come from core protocol spec)

8

a web user who configures an authorization manager with policies that control how it makes access decisions when a requester attempts to access a protected resource at a host

slide-10
SLIDE 10

The players

(definitions come from core protocol spec)

8

a web user who configures an authorization manager with policies that control how it makes access decisions when a requester attempts to access a protected resource at a host carries out an authorizing user's policies governing access to a protected resource

slide-11
SLIDE 11

The players

(definitions come from core protocol spec)

8

a web user who configures an authorization manager with policies that control how it makes access decisions when a requester attempts to access a protected resource at a host carries out an authorizing user's policies governing access to a protected resource enforces access to the protected resources it hosts, as decided by an authorization manager

slide-12
SLIDE 12

The players

(definitions come from core protocol spec)

8

a web user who configures an authorization manager with policies that control how it makes access decisions when a requester attempts to access a protected resource at a host carries out an authorizing user's policies governing access to a protected resource enforces access to the protected resources it hosts, as decided by an authorization manager seeks access to a protected resource

slide-13
SLIDE 13

The players

(definitions come from core protocol spec)

8

a web user who configures an authorization manager with policies that control how it makes access decisions when a requester attempts to access a protected resource at a host carries out an authorizing user's policies governing access to a protected resource enforces access to the protected resources it hosts, as decided by an authorization manager seeks access to a protected resource requesting party: a web user,

  • r a corporation (or other

legal person), that uses a requester to seek access to a protected resource

slide-14
SLIDE 14

Some starter scenarios

9 Requester Authorization Manager

Host Protected Resource Authorizing User

PEP

user agent

Grant Access

Protect

Access Authorize Store Enforce

PDP

Hi, I’m Alice Adams.

TravelIt.com

Keep your itineraries here

Schedewl

Hi, I’m Bob Baker.

AIRPLANR

slide-15
SLIDE 15

Landscape and requirements

10

slide-16
SLIDE 16

11

slide-17
SLIDE 17

11

informational self- determination user centricity privacy policy decision-making

slide-18
SLIDE 18

11

informational self- determination user centricity privacy policy decision-making valet keys the “Connect” phenomenon the “Open Stack”

slide-19
SLIDE 19

11

volunteered personal information personal datastores informational self- determination user centricity privacy policy decision-making valet keys the “Connect” phenomenon the “Open Stack”

slide-20
SLIDE 20

11

volunteered personal information personal datastores intentional vs. behaviorial data digital footprint dashboard informational self- determination user centricity privacy policy decision-making valet keys the “Connect” phenomenon the “Open Stack”

slide-21
SLIDE 21

Provisioning data “by hand and by value” is broken

12

slide-22
SLIDE 22

Comparing models

Classic web form model

13

slide-23
SLIDE 23

Comparing models

site that consumes data

disclose

Classic web form model

13

slide-24
SLIDE 24

Comparing models

Classic federated identity model

14

slide-25
SLIDE 25

Comparing models

identity provider, discovery service... consumer, relying party, web service consumer... service provider, attribute authority, web service provider...

disclose store (authorize)

Classic federated identity model

14

slide-26
SLIDE 26

Comparing models

OAuth-style model

15

slide-27
SLIDE 27

Comparing models

client server

disclose store authorize

OAuth-style model

15

slide-28
SLIDE 28

authz server

Comparing models

client server

disclose store authorize

OAuth-style model

resource server

15

slide-29
SLIDE 29

Comparing models

UMA model

16

slide-30
SLIDE 30

Comparing models

requester host

authorization manager

authorize contract disclose store

UMA model

16

slide-31
SLIDE 31

identity provider, discovery service

Comparing models

requester host

authorization manager

authorize contract disclose store

UMA model

16

slide-32
SLIDE 32

Comparing models

Classic access management model

17

slide-33
SLIDE 33

Comparing models

Classic access management model

requester PEP PDP, PAP, PIP

authorize

policy admin

17

slide-34
SLIDE 34

Design principles and requirements

(see also requirements doc)

  • Original DPs: simple; OAuth; ID-agnostic;

RESTful; modular; generative; fast

  • Emergent DPs: cryptography; privacy;

complexity; authentication; user experience

  • Original reqs: access relationship service; user-

driven policies and terms; user management of relationship; auditing; direct access; multiple hosts

  • Emergent reqs: host/AM separation; resource
  • rientation; correlation of authorizing user by

multiple hosts; representation-agnostic AM

18

slide-35
SLIDE 35

User experiences, scenarios, and use cases

19

slide-36
SLIDE 36

User experiences imagined – and real

  • Newcastle University SMART project

(presented by Maciej Machulak)

  • “Vision wireframes” (thanks to Domenico

Catalano)

20

slide-37
SLIDE 37

A sampling of scenarios

(see also scenarios and use cases doc)

  • Sharing a Calendar with Vendors (Accepted)
  • Packaging Resources for E-Commerce Vendors

(Accepted)

  • Online Personal Loan request scenario (Accepted)
  • Distributed Services (Pending)
  • Managing Information in Which Employers and Employees

Both Have a Stake (Pending)

  • Delegating Access Management to Custodians (Pending)
  • Moving Resources Between Hosts (Pending)
  • Controlling Access to Health Data (Pending)

21

slide-38
SLIDE 38

The protocol

22

slide-39
SLIDE 39

First, a little bit about OAuth

23

Classic Google Code diagram get a token use a token

slide-40
SLIDE 40

First, a little bit about OAuth

23

Classic Google Code diagram

The client has already “met” the server to get unique credentials

get a token use a token

slide-41
SLIDE 41

First, a little bit about OAuth

23

Classic Google Code diagram

Along with user- delegation use cases, there are autonomous-client use cases without this part The client has already “met” the server to get unique credentials

get a token use a token

slide-42
SLIDE 42

First, a little bit about OAuth

23

Classic Google Code diagram

OAuth 2.0 has unique flows per client/ device type, and no request token Along with user- delegation use cases, there are autonomous-client use cases without this part The client has already “met” the server to get unique credentials

get a token use a token

slide-43
SLIDE 43

First, a little bit about OAuth

23

Classic Google Code diagram

OAuth 2.0 has unique flows per client/ device type, and no request token Along with user- delegation use cases, there are autonomous-client use cases without this part The client has already “met” the server to get unique credentials OAuth 1.0 relies on signed messages over insecure channels; OAuth2.0 relies

  • n (mostly short-lived) opaque bearer tokens,

borne by client over SSL

get a token use a token

slide-44
SLIDE 44

First, a little bit about OAuth

23

Classic Google Code diagram

OAuth 2.0 has unique flows per client/ device type, and no request token Along with user- delegation use cases, there are autonomous-client use cases without this part The client has already “met” the server to get unique credentials OAuth 2.0 allows short-lived access tokens to be reissued through a long-lived refresh token OAuth 1.0 relies on signed messages over insecure channels; OAuth2.0 relies

  • n (mostly short-lived) opaque bearer tokens,

borne by client over SSL

get a token use a token

slide-45
SLIDE 45

UMA’s history with OAuth

24

we’re right about here

slide-46
SLIDE 46

UMA’s history with OAuth

24

we’re right about here

slide-47
SLIDE 47

Comparing OAuth2 and UMA

  • Resource owner
  • Resource server
  • Authorization server
  • Client
  • The two servers meet
  • ut of band
  • Authz is binary: you get a

token or you don’t

  • Token validation process

is unspecified

25

➡ Authorizing user ➡ Host ➡ Authorization manager ➡ Requester ➡ Host and AM can meet

dynamically (using OAuth!)

➡ Authz can depend on

requester “claims”

➡ Host can ask AM to

validate token at run time

slide-48
SLIDE 48

The UMA protocol in a nutshell: trust a token, get a token, use a token

26

Host Authorizing User Requester Authorization Manager (AM)

(user at browser or other user agent)

Requesting Party

  • or -
slide-49
SLIDE 49

The UMA protocol in a nutshell: trust a token, get a token, use a token

26

Host Authorizing User Requester Authorization Manager (AM)

(user at browser or other user agent)

Requesting Party

  • or -

Client

  • 1a. provision

AM location

Step 1. User Introduces Host to AM

Authorization Server Protected Resource Policy Analytics

  • 1c. authorize Host to trust AM

metadata

  • 1b. get metadata
  • 1d. define

policies

WRAP/OAuth2

slide-50
SLIDE 50

The UMA protocol in a nutshell: trust a token, get a token, use a token

26

Host Authorizing User Requester Authorization Manager (AM)

(user at browser or other user agent)

Requesting Party

  • or -

Client

  • 1a. provision

AM location

Step 1. User Introduces Host to AM

Authorization Server Protected Resource Policy Analytics

  • 1c. authorize Host to trust AM

metadata

  • 1b. get metadata
  • 1d. define

policies

WRAP/OAuth2

Protected Resource

Client

  • 2a. provision

Resource location

Step 2. Requester Gets Access Token

WRAP/OAuth2

  • 2b. attempt access
  • 2c. ask for access token, supplying claims as demanded
slide-51
SLIDE 51

The UMA protocol in a nutshell: trust a token, get a token, use a token

26

Host Authorizing User Requester Authorization Manager (AM)

(user at browser or other user agent)

Requesting Party

  • or -

Client

  • 1a. provision

AM location

Step 1. User Introduces Host to AM

Authorization Server Protected Resource Policy Analytics

  • 1c. authorize Host to trust AM

metadata

  • 1b. get metadata
  • 1d. define

policies

WRAP/OAuth2

Step 3. Requester Accesses Resource

  • 3b. validate

token (opt)

Protected Resource

Client

  • 2a. provision

Resource location

Step 2. Requester Gets Access Token

WRAP/OAuth2

  • 2b. attempt access
  • 2c. ask for access token, supplying claims as demanded
slide-52
SLIDE 52

Some current protocol issues

(see also protocol issues list)

  • Spec modularity
  • Flows for getting a token: user delegation?

autonomous client? others?

  • Token validation models
  • Claims about requesting-party identity
  • Inter-entity info discovery
  • Resource basket optimizations

27

slide-53
SLIDE 53

Policies, claims, and agreements

28

slide-54
SLIDE 54

Policies can be unilateral or can require claims

  • Unilateral:
  • “Allow access for a week”
  • Claims-requiring:
  • “Allow access to anyone who agrees to my licensing

terms” (promissory statement)

  • “Allow access to someone who can prove

themselves to be bob@gmail.com” (affirmative statement)

  • “Allow access to anyone who says they’re 18 or
  • lder” (affirmative statement)

29

slide-55
SLIDE 55

Claims are about requesting parties (not requesters)

30

Sharing Scenario

Authorizing User Requesting Party

Person-to-Person Person-to-Vendor

a party to access authorization

Natural Person - Bob Legal Person - VendorCo Natural Person - Alice

a party to access authorization

Hi, I’m Alice Adams. Hi, I’m Bob Baker.

AIRPLANR

slide-56
SLIDE 56

Alice uses some intermediary services

31

Sharing Scenario

an intermediary, possibly a third-party beneficiary

Authorizing User Requesting Party

Person-to-Person Person-to-Vendor

a party to access authorization

Natural Person - Bob Legal Person - VendorCo Natural Person - Alice

Host Service Vendor AM Service Vendor

a party to access authorization

TOS TOS

pairwise terms of service

TravelIt.com

slide-57
SLIDE 57

Bob uses intermediary services too

32

Sharing Scenario

an intermediary, possibly a third-party beneficiary

Authorizing User Requesting Party

Natural Person - Alice

Host Service Vendor AM Service Vendor

TOS TOS TOS

Requester Service Vendor

Person-to-Person

a party to access authorization an intermediary, possibly a third-party beneficiary pairwise terms of service

Natural Person - Bob

pairwise terms of service a party to access authorization

Schedewl

slide-58
SLIDE 58

When the requesting party is a company...

33

Sharing Sub-Scenario

an intermediary, possibly a third-party beneficiary

Authorizing User Requesting Party

Natural Person - Alice

Host Service Vendor AM Service Vendor

a party to access authorization

TOS TOS

Person-to-Vendor

VendorCo acting on Alice's behalf, à la OAuth

Legal Person - VendorCo

a party to access authorization pairwise terms of service pairwise terms of service the same user, possibly a third-party beneficiary

TOS

Requester Service Vendor

AIRPLANR

slide-59
SLIDE 59

Or the company might be acting on its own behalf

34

deployed either in-house

  • r through a third party

Sharing Sub-Scenario

an intermediary, possibly a third-party beneficiary

Authorizing User Requesting Party

Natural Person - Alice

Host Service Vendor AM Service Vendor

a party to access authorization

TOS TOS

Person-to-Vendor

VendorCo acting on its own behalf

Legal Person - VendorCo

pairwise terms of service a party to access authorization

Requester Service FrodoReviews