kantara workshop: making the world safe for user ......already “met” the server to get unique...

59
Kantara Workshop: Making the World Safe for User-Managed Access Eve Maler Kantara UMA Work Group Chair 4 May 2010 1

Upload: others

Post on 18-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 2: Kantara Workshop: Making the World Safe for User ......already “met” the server to get unique credentials OAuth 2.0 allows short-lived access tokens to be reissued through a long-lived

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

Page 3: Kantara Workshop: Making the World Safe for User ......already “met” the server to get unique credentials OAuth 2.0 allows short-lived access tokens to be reissued through a long-lived

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

Page 4: Kantara Workshop: Making the World Safe for User ......already “met” the server to get unique credentials OAuth 2.0 allows short-lived access tokens to be reissued through a long-lived

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

Page 9: Kantara Workshop: Making the World Safe for User ......already “met” the server to get unique credentials OAuth 2.0 allows short-lived access tokens to be reissued through a long-lived

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

Page 10: Kantara Workshop: Making the World Safe for User ......already “met” the server to get unique credentials OAuth 2.0 allows short-lived access tokens to be reissued through a long-lived

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

Page 11: Kantara Workshop: Making the World Safe for User ......already “met” the server to get unique credentials OAuth 2.0 allows short-lived access tokens to be reissued through a long-lived

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

Page 12: Kantara Workshop: Making the World Safe for User ......already “met” the server to get unique credentials OAuth 2.0 allows short-lived access tokens to be reissued through a long-lived

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

Page 13: Kantara Workshop: Making the World Safe for User ......already “met” the server to get unique credentials OAuth 2.0 allows short-lived access tokens to be reissued through a long-lived

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, or a corporation (or other legal person), that uses a requester to seek access to a protected resource

Page 14: Kantara Workshop: Making the World Safe for User ......already “met” the server to get unique credentials OAuth 2.0 allows short-lived access tokens to be reissued through a long-lived

Some starter scenarios

9

Requester

AuthorizationManager

HostProtectedResource

Authorizing User

PEP

user agent

Grant AccessProtect

Access

AuthorizeStore

Enforce

PDP

Hi, I’m Alice Adams.

TravelIt.comKeep your itineraries here

Schedewl

Hi, I’m Bob Baker.

AIRPLANR

Page 16: Kantara Workshop: Making the World Safe for User ......already “met” the server to get unique credentials OAuth 2.0 allows short-lived access tokens to be reissued through a long-lived

11

Page 17: Kantara Workshop: Making the World Safe for User ......already “met” the server to get unique credentials OAuth 2.0 allows short-lived access tokens to be reissued through a long-lived

11

informational self-

determinationuser

centricity

privacy

policy decision-making

Page 18: Kantara Workshop: Making the World Safe for User ......already “met” the server to get unique credentials OAuth 2.0 allows short-lived access tokens to be reissued through a long-lived

11

informational self-

determinationuser

centricity

privacy

policy decision-making

valet keys

the “Connect” phenomenon

the “Open Stack”

Page 19: Kantara Workshop: Making the World Safe for User ......already “met” the server to get unique credentials OAuth 2.0 allows short-lived access tokens to be reissued through a long-lived

11

volunteered personal

informationpersonal

datastores

informational self-

determinationuser

centricity

privacy

policy decision-making

valet keys

the “Connect” phenomenon

the “Open Stack”

Page 20: Kantara Workshop: Making the World Safe for User ......already “met” the server to get unique credentials OAuth 2.0 allows short-lived access tokens to be reissued through a long-lived

11

volunteered personal

informationpersonal

datastores

intentional vs. behaviorial data

digital footprint dashboard

informational self-

determinationuser

centricity

privacy

policy decision-making

valet keys

the “Connect” phenomenon

the “Open Stack”

Page 21: Kantara Workshop: Making the World Safe for User ......already “met” the server to get unique credentials OAuth 2.0 allows short-lived access tokens to be reissued through a long-lived

Provisioning data “by hand and by value” is broken

12

Page 22: Kantara Workshop: Making the World Safe for User ......already “met” the server to get unique credentials OAuth 2.0 allows short-lived access tokens to be reissued through a long-lived

Comparing modelsClassic web form model

13

Page 23: Kantara Workshop: Making the World Safe for User ......already “met” the server to get unique credentials OAuth 2.0 allows short-lived access tokens to be reissued through a long-lived

Comparing models

site thatconsumes data

disclose

Classic web form model

13

Page 24: Kantara Workshop: Making the World Safe for User ......already “met” the server to get unique credentials OAuth 2.0 allows short-lived access tokens to be reissued through a long-lived

Comparing modelsClassic federated identity model

14

Page 25: Kantara Workshop: Making the World Safe for User ......already “met” the server to get unique credentials OAuth 2.0 allows short-lived access tokens to be reissued through a long-lived

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

Page 26: Kantara Workshop: Making the World Safe for User ......already “met” the server to get unique credentials OAuth 2.0 allows short-lived access tokens to be reissued through a long-lived

Comparing modelsOAuth-style model

15

Page 27: Kantara Workshop: Making the World Safe for User ......already “met” the server to get unique credentials OAuth 2.0 allows short-lived access tokens to be reissued through a long-lived

Comparing models

client server

disclose store

authorize

OAuth-style model

15

Page 28: Kantara Workshop: Making the World Safe for User ......already “met” the server to get unique credentials OAuth 2.0 allows short-lived access tokens to be reissued through a long-lived

authzserver

Comparing models

client server

disclose store

authorize

OAuth-style model

resourceserver

15

Page 29: Kantara Workshop: Making the World Safe for User ......already “met” the server to get unique credentials OAuth 2.0 allows short-lived access tokens to be reissued through a long-lived

Comparing modelsUMA model

16

Page 30: Kantara Workshop: Making the World Safe for User ......already “met” the server to get unique credentials OAuth 2.0 allows short-lived access tokens to be reissued through a long-lived

Comparing models

requester host

authorizationmanager

authorizecontract

disclose store

UMA model

16

Page 31: Kantara Workshop: Making the World Safe for User ......already “met” the server to get unique credentials OAuth 2.0 allows short-lived access tokens to be reissued through a long-lived

identity provider,discovery service

Comparing models

requester host

authorizationmanager

authorizecontract

disclose store

UMA model

16

Page 32: Kantara Workshop: Making the World Safe for User ......already “met” the server to get unique credentials OAuth 2.0 allows short-lived access tokens to be reissued through a long-lived

Comparing modelsClassic access management model

17

Page 33: Kantara Workshop: Making the World Safe for User ......already “met” the server to get unique credentials OAuth 2.0 allows short-lived access tokens to be reissued through a long-lived

Comparing modelsClassic access management model

requester PEP

PDP,PAP,PIP

authorize

policyadmin

17

Page 34: Kantara Workshop: Making the World Safe for User ......already “met” the server to get unique credentials OAuth 2.0 allows short-lived access tokens to be reissued through a long-lived

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 orientation; correlation of authorizing user by multiple hosts; representation-agnostic AM

18

Page 36: Kantara Workshop: Making the World Safe for User ......already “met” the server to get unique credentials OAuth 2.0 allows short-lived access tokens to be reissued through a long-lived

User experiencesimagined – and real

•Newcastle University SMART project (presented by Maciej Machulak)

• “Vision wireframes” (thanks to Domenico Catalano)

20

Page 37: Kantara Workshop: Making the World Safe for User ......already “met” the server to get unique credentials OAuth 2.0 allows short-lived access tokens to be reissued through a long-lived

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

Page 39: Kantara Workshop: Making the World Safe for User ......already “met” the server to get unique credentials OAuth 2.0 allows short-lived access tokens to be reissued through a long-lived

First, a little bit about OAuth

23

Classic Google Code diagram

get a token

use a token

Page 40: Kantara Workshop: Making the World Safe for User ......already “met” the server to get unique credentials OAuth 2.0 allows short-lived access tokens to be reissued through a long-lived

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

Page 41: Kantara Workshop: Making the World Safe for User ......already “met” the server to get unique credentials OAuth 2.0 allows short-lived access tokens to be reissued through a long-lived

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

Page 42: Kantara Workshop: Making the World Safe for User ......already “met” the server to get unique credentials OAuth 2.0 allows short-lived access tokens to be reissued through a long-lived

First, a little bit about OAuth

23

Classic Google Code diagram

OAuth 2.0 has unique flows per client/

device type, andno 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

Page 43: Kantara Workshop: Making the World Safe for User ......already “met” the server to get unique credentials OAuth 2.0 allows short-lived access tokens to be reissued through a long-lived

First, a little bit about OAuth

23

Classic Google Code diagram

OAuth 2.0 has unique flows per client/

device type, andno 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

on (mostly short-lived) opaque bearer tokens, borne by client over SSL

get a token

use a token

Page 44: Kantara Workshop: Making the World Safe for User ......already “met” the server to get unique credentials OAuth 2.0 allows short-lived access tokens to be reissued through a long-lived

First, a little bit about OAuth

23

Classic Google Code diagram

OAuth 2.0 has unique flows per client/

device type, andno 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

on (mostly short-lived) opaque bearer tokens, borne by client over SSL

get a token

use a token

Page 45: Kantara Workshop: Making the World Safe for User ......already “met” the server to get unique credentials OAuth 2.0 allows short-lived access tokens to be reissued through a long-lived

UMA’s history with OAuth

24

we’re right about here

Page 46: Kantara Workshop: Making the World Safe for User ......already “met” the server to get unique credentials OAuth 2.0 allows short-lived access tokens to be reissued through a long-lived

UMA’s history with OAuth

24

we’re right about here

Page 47: Kantara Workshop: Making the World Safe for User ......already “met” the server to get unique credentials OAuth 2.0 allows short-lived access tokens to be reissued through a long-lived

Comparing OAuth2 and UMA

• Resource owner

• Resource server

• Authorization server

• Client

• The two servers meet out 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

Page 48: Kantara Workshop: Making the World Safe for User ......already “met” the server to get unique credentials OAuth 2.0 allows short-lived access tokens to be reissued through a long-lived

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

26

Host

Authorizing User

RequesterAuthorization Manager (AM)

(user at browser or other user agent)

RequestingParty

- or -

Page 49: Kantara Workshop: Making the World Safe for User ......already “met” the server to get unique credentials OAuth 2.0 allows short-lived access tokens to be reissued through a long-lived

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

26

Host

Authorizing User

RequesterAuthorization Manager (AM)

(user at browser or other user agent)

RequestingParty

- or -

Client

1a. provisionAM location

Step 1. User Introduces Host to AM

Authorization Server

Protected ResourcePolicy

Analytics

1c. authorize Host to trust AM

metadata 1b. get metadata

1d. definepolicies

WRAP/OAuth2

Page 50: Kantara Workshop: Making the World Safe for User ......already “met” the server to get unique credentials OAuth 2.0 allows short-lived access tokens to be reissued through a long-lived

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

26

Host

Authorizing User

RequesterAuthorization Manager (AM)

(user at browser or other user agent)

RequestingParty

- or -

Client

1a. provisionAM location

Step 1. User Introduces Host to AM

Authorization Server

Protected ResourcePolicy

Analytics

1c. authorize Host to trust AM

metadata 1b. get metadata

1d. definepolicies

WRAP/OAuth2

Protected Resource

Client

2a. provision Resourcelocation

Step 2. Requester Gets Access Token

WRAP/OAuth2

2b. attempt access

2c. ask for access token, supplying claims as demanded

Page 51: Kantara Workshop: Making the World Safe for User ......already “met” the server to get unique credentials OAuth 2.0 allows short-lived access tokens to be reissued through a long-lived

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

26

Host

Authorizing User

RequesterAuthorization Manager (AM)

(user at browser or other user agent)

RequestingParty

- or -

Client

1a. provisionAM location

Step 1. User Introduces Host to AM

Authorization Server

Protected ResourcePolicy

Analytics

1c. authorize Host to trust AM

metadata 1b. get metadata

1d. definepolicies

WRAP/OAuth2

Step 3. RequesterAccesses Resource

3b. validatetoken (opt)

Protected Resource

Client

2a. provision Resourcelocation

Step 2. Requester Gets Access Token

WRAP/OAuth2

2b. attempt access

2c. ask for access token, supplying claims as demanded

Page 52: Kantara Workshop: Making the World Safe for User ......already “met” the server to get unique credentials OAuth 2.0 allows short-lived access tokens to be reissued through a long-lived

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

Page 54: Kantara Workshop: Making the World Safe for User ......already “met” the server to get unique credentials OAuth 2.0 allows short-lived access tokens to be reissued through a long-lived

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 [email protected]” (affirmative statement)

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

29

Page 55: Kantara Workshop: Making the World Safe for User ......already “met” the server to get unique credentials OAuth 2.0 allows short-lived access tokens to be reissued through a long-lived

Claims are about requesting parties (not requesters)

30

Sharing Scenario

AuthorizingUser

RequestingParty

Person-to-PersonPerson-to-Vendor

a party to accessauthorization

Natural Person - BobLegal Person - VendorCo

Nat

ural

Per

son

- Alic

e

a party to accessauthorization

Hi, I’m Alice Adams.

Hi, I’m Bob Baker.AIRPLANR

Page 56: Kantara Workshop: Making the World Safe for User ......already “met” the server to get unique credentials OAuth 2.0 allows short-lived access tokens to be reissued through a long-lived

Alice uses some intermediary services

31

Sharing Scenario

an intermediary, possiblya third-party beneficiary

AuthorizingUser

RequestingParty

Person-to-PersonPerson-to-Vendor

a party to accessauthorization

Natural Person - BobLegal Person - VendorCo

Nat

ural

Per

son

- Alic

e

Host Service Vendor

AM Service Vendor

a party to accessauthorization

TOS

TOS

pairwise terms of service

TravelIt.com

Page 57: Kantara Workshop: Making the World Safe for User ......already “met” the server to get unique credentials OAuth 2.0 allows short-lived access tokens to be reissued through a long-lived

Bob uses intermediary services too

32

Sharing Scenario

an intermediary, possiblya third-party beneficiary

AuthorizingUser

RequestingParty

Nat

ural

Per

son

- Alic

e

Host ServiceVendor

AM ServiceVendor

TOS

TOS

TOS

Requester Service Vendor

Person-to-Person

a party to accessauthorization

an intermediary, possiblya third-party beneficiary

pairwise terms of service

Natural Person - Bob

pairwise terms of service

a party to accessauthorization

Schedewl

Page 58: Kantara Workshop: Making the World Safe for User ......already “met” the server to get unique credentials OAuth 2.0 allows short-lived access tokens to be reissued through a long-lived

When the requesting party is a company...

33

SharingSub-Scenario

an intermediary, possiblya third-party beneficiary

AuthorizingUser

RequestingParty

Nat

ural

Per

son

- Alic

e

Host ServiceVendor

AM ServiceVendor

a party to accessauthorization

TOS

TOS

Person-to-VendorVendorCo acting on

Alice's behalf, à la OAuth

Legal Person - VendorCo

a party to accessauthorization

pairwise terms of service

pairwise terms of service

the same user, possiblya third-party beneficiary

TOS

RequesterService Vendor AIRPLANR

Page 59: Kantara Workshop: Making the World Safe for User ......already “met” the server to get unique credentials OAuth 2.0 allows short-lived access tokens to be reissued through a long-lived

Or the company might be acting on its own behalf

34

deployed either in-house or through a third party

SharingSub-Scenario

an intermediary, possiblya third-party beneficiary

AuthorizingUser

RequestingParty

Nat

ural

Per

son

- Alic

e

Host ServiceVendor

AM ServiceVendor

a party to accessauthorization

TOS

TOS

Person-to-VendorVendorCo acting on

its own behalf

Legal Person - VendorCo

pairwise terms of service

a party to accessauthorization

Requester Service FrodoReviews