SlideShare a Scribd company logo
1 of 35
INTRODUCTION TO UMA
My History with UMA
• 2009 Internet Identity Workshop session
• Person-to-person protected sharing
• Auto-updating digital photo frame
• Charter member of the working group
The UMA standard’s progress
3
2015 2016 2017 2018
Mar ‘15: UMA V1.0 ratified
as Recommendations
Dec ‘15:
UMA V1.0.1
ratified as
Recommendations
Jul ‘17:
1st Public Comment/
Review period ends
Sep ‘17:
2nd Public Comment/
Review period ends
Jan ‘18: Final
Recommendations
published
Specs refactored,
over 100 issues closed,
lots of implementation
input received, Disposition
of Comments doc written…
Jan ‘18:
UMA2 logo
(designed
by @domcat)
Feb ‘18:
Charter
update
Jan ‘18: Draft
UMA Business
Model Report
published
May ‘18:
Vendors
supporting
UMA2:
Gluu,
ForgeRock,
Keycloak
(WSO2
coming Q3)
Jun ‘18:
Business
model/
IRM
cxn jells
It has helped to kill the “password anti-pattern”
OAuth is for constrained delegation to apps
Authorizati
on server
Resource
server
Resource
owner
Client
Authorizes (consents) at run
time after authenticating, at
the AS
Standard OAuth endpoints for
authorization and access token
issuance
Some number of API
endpoints that deliver the
data or other value-add
App gets consent based on the
API scopes it requested; it has
its own identity distinct from the
RO’s
(A)
Authorization
Request
(B)
Authorization
Grant
(C)
Authorization
Grant
(D)
Access
Token
(E)
Access Token
(F)
Protected
Resource
This can come with a refresh
token for renewal without the
RO’s intervention
The RO can revoke the
token to withdraw
authorization (consent)
It is an OAuth-protected identity API, plus a bit more
OpenID Connect does modern-day federation
Authorizati
on server
Resource
server
Resource
owner
Client
= Federation user
= Relying party
= Identity provider
(“OpenID provider”)Standard UserInfo endpoint can be
called with an access token to look up
identity claims
Token endpoint typically delivers an “ID
token” similar to a SAML assertion
UX
UMA brings next-gen delegation and consent to OAuth
User-Managed Access is for cross-party sharing
Resource
server
Client
Authorizatio
n server
Resource
server
Resource
server
Requesting
party
Share Approve
Ahead of time After the fact
Monitor
Anytime
Withdraw
Anytime
Opt in
At run time
Resource
owner
What is User Managed Access?
• Owner definition and control of access
authorization policies for protected resources
• Access requests from arbitrary clients
• Centralized authorization policy
• Resource servers enforce policy decisions
• Binding obligations
• Profile of OAuth2
Why is this important?
• Next evolution beyond consent
• Consent not required at run-time
• Much richer set of policy components
• Audit and transparency
• Mutual consent between parties
Like OpenID Connect for identity, UMA adds an
API access management layer to OAuth2
Some use cases for UMA:
• Enterprise API protection
• For financial consumers
– Discovering and aggregating UK pension
accounts and sharing access to financial
advisors
• In industrial and consumer IoT
– For proactively or dynamically sharing smart
device control or data with others
• Healthcare
– As profiled in the Health Relationship Trust
(HEART) WG at OpenID Foundation
– Part of the new OpenMedReady framework for
trustworthy remote care
9
To sum up:
UMA enhances OAuth as follows
The UMA2 Grant spec
adds to OAuth2
• The resource owner authorizes protected
resource access to clients used by entities that
are in a requesting party role. This enables party-
to-party authorization, rather than authorization
of application access alone.
• The authorization server and resource server
interact with the client and requesting party in a
way that is asynchronous with respect to
resource owner interactions.
• This lets a resource owner configure an
authorization server with policy conditions at
will, rather than authorizing access token
issuance synchronously just after authenticating.
The UMA2 Federated Authorization
spec adds to the UMA2 Grant
• Multiple resource servers operating in different
domains can communicate with a single
authorization server operating in yet another
domain that acts on behalf of a resource owner.
• A service ecosystem can thus automate resource
protection, and the resource owner can monitor
and control authorization grant rules through the
authorization server over time.
• Authorization grants can increase and decrease
at the level of individual resources and scopes.
10
UMA V2.0 - THE PROTOCOL
Client requests resource
-- no RPT
-- needs_info response
-- permission ticket
Client redirects RqP to AS to
provide claims
-- claims interaction endpoint
-- permission ticket
Client requests RPT
-- extended OAuth2
-- special UMA grant
-- with client credentials
Client requests access to RS
-- standard OAuth2 flow
-- RPT == access token
-- from UMA grant
Decouple RS and AS
-- RO establishes relationship
-- standard OAuth
-- Register resources to be
protected by the AS
Resource registration
• Outsource authorization policy of RS endpoints to AS
• RS is final authority for releasing access
{
"name" : ”Calendar",
"icon_uri" : "http://mycals.example.com/icons/cal.png",
"scopes" : [
"http://mycals.example.com/dev/scopes/view_busy",
"http://mycals.example.com/dev/scopes/sched_normal"
],
"type" : "http://www.example.com/rsets/calendar"
}
The UMA2 grant of
OAuth: the basics
18
Authorizati
on server
A T
PR I
C
urn:ietf:params:oauth:grant-type:uma-ticket
D
(see also
tinyurl.com/uma2grantwsd)
TA authorization token D discovery R resource registration P permission I token introspection C claims interaction
Breaking apart the authorization server and resource
server (externalizing authorization)
(see also tinyurl.com/uma2fawsd)
19
Authorizati
on server
A T
PR I
CD
Resource
server
Protection
API
API
client
Resource owner of
OAuth security
over the
protection API
Producer of protection
API access token, or
“PAT”
scope = uma_protection
Protection API endpoints:
• Resource registration: Puts
resources under AS protection;
AS responds with resource IDs;
resources can have unique scopes
• Permission: Requests a
permission ticket to deliver to the
client after the tokenless resource
request
• Token introspection: Customizes
OAuth Token Introspection (RFC
7662) to enhance the token
introspection response object
UMA2 is not the end of our work
UMA Legal
• Exciting work on a legal
framework, a major
underlying portion of which
is just being completed
• We have been working with
legal expert Tim Reiniger,
who wrote the Virginia
digital identity law
Extensions and futures
• The Work Group has saved off a
variety of exploratory ideas for
future work in GitHub issues with
the label extension
• Examples:
– Integration points for consent
receipts
– Optimized flows that remove the
need for the permission ticket
Let’s Make it Real
Detailed use case
• Alice needs to coordinate a meeting with an
important client Bob
• Alice wants to allow Bob to view her calendar
so he can pick a time that works for both of
them
• Bob can schedule over normal calendar events
but not ones designated as high priority
Use Case Actors
authZ4me
(UMA AS)
scheduleMe
(cal client)
myCals
(cal srvc)
Alice
Bob
Alice registers protection for her calendar
authZ4me
(UMA AS)
scheduleMe
(cal client)
myCals
(cal srvc)
Alice
Bob
OAuth2
Flow
{PAT}
Register Calendar
endpoints and permissions
Alice UMA protects her calendar
• Standard OAuth2 flow between myCals and
authZ4me to obtain a “PAT”
• myCals registers Alice’s calendar
– https://mycals.example.com/cal/alice/work
• View, view_busy, delete, update, download, publish
• Schedule_all, schedule_normal
Alice defines authorization policy
authZ4me
(UMA AS)
scheduleMe
(cal client)
myCals
(cal srvc)
Alice
Bob
AuthZ Policy:
Must be Bob
Perm:
view_busy
schedule_normal
Alice sends Bob an email
Hi Bob,
Please view my calendar and schedule the
meeting we spoke about today.
https://mycals.example.com/cal/alice/work
Thanks,
Alice
Bob meets claims to access Alice’s calendar
authZ4me
(UMA AS)
scheduleMe
(cal client)
myCals
(cal srvc)
Alice
Bob
Claims negotiation
via
Permission ticket
Bob subscribes to Alice’s calendar
authZ4me
(UMA AS)
scheduleMe
(cal client)
myCals
(cal srvc)
Alice
Bob
Subscribe
{RPT}
Calendar View
Select Mtg
Time
Bob schedules a meeting with Alice
• Scheduleme POST’s to
– https://mycals/cal/alice/work/meeting
• Date, time, location
• Passes RPT in the HTTP Authorzation header
Meeting added to Alice’s calendar
authZ4me
(UMA AS)
scheduleMe
(cal client)
myCals
(cal srvc)
Alice
Bob
Add Mtg
{RPT}
Mtg Scheduled
Select Mtg
Time
Use case take-aways
• Resource and permission/scope definition very
flexible and extensible
– Resource server defined not AS defined
• Fine grained authorization across domains
• Rich set of authorization policy options
• Provides transparency for Alice as Bob walks
through the process
Standards
Certified device
identity
Strongly authenticated
user identity
1
2
User/device
association
3
Consented device data
sharing with others
4
Cryptographic
auditability
5
Strongly authenticated
third-party identity
UMA Working Group
• 2.0
– Grant (client perspective)
– Federated Authorization
• RS exporting AuthZ to AS
• Multiple implementations
• Testing suite in the works
Q&A
• UMA working group URL
– http://tinyurl.com/umawg
• UMA Grant for OAuth2
– https://docs.kantarainitiative.org/uma/wg/oauth-uma-grant-2.0-
08.html
• UMA Federated Authorization
– https://docs.kantarainitiative.org/uma/wg/oauth-uma-federated-
authz-2.0-08.html
• UMA Legal sub-group
– http://tinyurl.com/umalegal

More Related Content

Similar to Introduction to User-Managed Access (UMA) and its Role in Protecting Resources

Authorization Architecture Patterns: How to Avoid Pitfalls in #OAuth / #OIDC ...
Authorization Architecture Patterns: How to Avoid Pitfalls in #OAuth / #OIDC ...Authorization Architecture Patterns: How to Avoid Pitfalls in #OAuth / #OIDC ...
Authorization Architecture Patterns: How to Avoid Pitfalls in #OAuth / #OIDC ...Tatsuo Kudo
 
CNIT 128: 6: Mobile services and mobile Web (part 1: Beginning Through OAuth)
CNIT 128: 6: Mobile services and mobile Web (part 1: Beginning Through OAuth)CNIT 128: 6: Mobile services and mobile Web (part 1: Beginning Through OAuth)
CNIT 128: 6: Mobile services and mobile Web (part 1: Beginning Through OAuth)Sam Bowne
 
Oauth2 and OWSM OAuth2 support
Oauth2 and OWSM OAuth2 supportOauth2 and OWSM OAuth2 support
Oauth2 and OWSM OAuth2 supportGaurav Sharma
 
WSO2 MASTER CLASS ITALIA #11 - APIM 4.0 & approccio event based
WSO2 MASTER CLASS ITALIA #11 - APIM 4.0 & approccio event basedWSO2 MASTER CLASS ITALIA #11 - APIM 4.0 & approccio event based
WSO2 MASTER CLASS ITALIA #11 - APIM 4.0 & approccio event basedProfesia Srl, Lynx Group
 
Building a SaaS using WSO2 Stratos
Building a SaaS using WSO2 StratosBuilding a SaaS using WSO2 Stratos
Building a SaaS using WSO2 StratosWSO2
 
E5: Predix Security with ACS & UAA (Predix Transform 2016)
E5: Predix Security with ACS & UAA (Predix Transform 2016)E5: Predix Security with ACS & UAA (Predix Transform 2016)
E5: Predix Security with ACS & UAA (Predix Transform 2016)Predix
 
Building Research Data Portals (GlobusWorld Tour - UMich)
Building Research Data Portals (GlobusWorld Tour - UMich)Building Research Data Portals (GlobusWorld Tour - UMich)
Building Research Data Portals (GlobusWorld Tour - UMich)Globus
 
Governance and Security Solution Patterns
Governance and Security Solution Patterns Governance and Security Solution Patterns
Governance and Security Solution Patterns WSO2
 
Building the Services Ecosystem (GlobusWorld Tour - STFC)
Building the Services Ecosystem (GlobusWorld Tour - STFC)Building the Services Ecosystem (GlobusWorld Tour - STFC)
Building the Services Ecosystem (GlobusWorld Tour - STFC)Globus
 
Enabling Cloud Native Security with OAuth2 and Multi-Tenant UAA
Enabling Cloud Native Security with OAuth2 and Multi-Tenant UAA Enabling Cloud Native Security with OAuth2 and Multi-Tenant UAA
Enabling Cloud Native Security with OAuth2 and Multi-Tenant UAA Will Tran
 
OAuth 2.0 - The fundamentals, the good , the bad, technical primer and commo...
OAuth 2.0  - The fundamentals, the good , the bad, technical primer and commo...OAuth 2.0  - The fundamentals, the good , the bad, technical primer and commo...
OAuth 2.0 - The fundamentals, the good , the bad, technical primer and commo...Good Dog Labs, Inc.
 
Azure AD B2C Webinar Series: Custom Policies Part 1
Azure AD B2C Webinar Series: Custom Policies Part 1Azure AD B2C Webinar Series: Custom Policies Part 1
Azure AD B2C Webinar Series: Custom Policies Part 1Vinu Gunasekaran
 
SCIM: Why It’s More Important, and More Simple, Than You Think - CIS 2014
SCIM: Why It’s More Important, and More Simple, Than You Think - CIS 2014SCIM: Why It’s More Important, and More Simple, Than You Think - CIS 2014
SCIM: Why It’s More Important, and More Simple, Than You Think - CIS 2014Kelly Grizzle
 
Enterprise Use Case Webinar - PaaS Metering and Monitoring
Enterprise Use Case Webinar - PaaS Metering and Monitoring Enterprise Use Case Webinar - PaaS Metering and Monitoring
Enterprise Use Case Webinar - PaaS Metering and Monitoring WSO2
 
Identity Management Standardization in the cloud computing
Identity Management Standardization in the cloud computingIdentity Management Standardization in the cloud computing
Identity Management Standardization in the cloud computingOmerZia11
 
Introduction to OAuth
Introduction to OAuthIntroduction to OAuth
Introduction to OAuthWei-Tsung Su
 
CIS14: SCIM: Why It’s More Important, and More Simple, Than You Think
CIS14: SCIM: Why It’s More Important, and More Simple, Than You ThinkCIS14: SCIM: Why It’s More Important, and More Simple, Than You Think
CIS14: SCIM: Why It’s More Important, and More Simple, Than You ThinkCloudIDSummit
 

Similar to Introduction to User-Managed Access (UMA) and its Role in Protecting Resources (20)

Authorization Architecture Patterns: How to Avoid Pitfalls in #OAuth / #OIDC ...
Authorization Architecture Patterns: How to Avoid Pitfalls in #OAuth / #OIDC ...Authorization Architecture Patterns: How to Avoid Pitfalls in #OAuth / #OIDC ...
Authorization Architecture Patterns: How to Avoid Pitfalls in #OAuth / #OIDC ...
 
CNIT 128: 6: Mobile services and mobile Web (part 1: Beginning Through OAuth)
CNIT 128: 6: Mobile services and mobile Web (part 1: Beginning Through OAuth)CNIT 128: 6: Mobile services and mobile Web (part 1: Beginning Through OAuth)
CNIT 128: 6: Mobile services and mobile Web (part 1: Beginning Through OAuth)
 
Oauth2 and OWSM OAuth2 support
Oauth2 and OWSM OAuth2 supportOauth2 and OWSM OAuth2 support
Oauth2 and OWSM OAuth2 support
 
OAuth
OAuthOAuth
OAuth
 
WSO2 MASTER CLASS ITALIA #11 - APIM 4.0 & approccio event based
WSO2 MASTER CLASS ITALIA #11 - APIM 4.0 & approccio event basedWSO2 MASTER CLASS ITALIA #11 - APIM 4.0 & approccio event based
WSO2 MASTER CLASS ITALIA #11 - APIM 4.0 & approccio event based
 
Building a SaaS using WSO2 Stratos
Building a SaaS using WSO2 StratosBuilding a SaaS using WSO2 Stratos
Building a SaaS using WSO2 Stratos
 
E5: Predix Security with ACS & UAA (Predix Transform 2016)
E5: Predix Security with ACS & UAA (Predix Transform 2016)E5: Predix Security with ACS & UAA (Predix Transform 2016)
E5: Predix Security with ACS & UAA (Predix Transform 2016)
 
Oauth2.0
Oauth2.0Oauth2.0
Oauth2.0
 
Building Research Data Portals (GlobusWorld Tour - UMich)
Building Research Data Portals (GlobusWorld Tour - UMich)Building Research Data Portals (GlobusWorld Tour - UMich)
Building Research Data Portals (GlobusWorld Tour - UMich)
 
Governance and Security Solution Patterns
Governance and Security Solution Patterns Governance and Security Solution Patterns
Governance and Security Solution Patterns
 
Building the Services Ecosystem (GlobusWorld Tour - STFC)
Building the Services Ecosystem (GlobusWorld Tour - STFC)Building the Services Ecosystem (GlobusWorld Tour - STFC)
Building the Services Ecosystem (GlobusWorld Tour - STFC)
 
Enabling Cloud Native Security with OAuth2 and Multi-Tenant UAA
Enabling Cloud Native Security with OAuth2 and Multi-Tenant UAA Enabling Cloud Native Security with OAuth2 and Multi-Tenant UAA
Enabling Cloud Native Security with OAuth2 and Multi-Tenant UAA
 
OAuth 2.0 - The fundamentals, the good , the bad, technical primer and commo...
OAuth 2.0  - The fundamentals, the good , the bad, technical primer and commo...OAuth 2.0  - The fundamentals, the good , the bad, technical primer and commo...
OAuth 2.0 - The fundamentals, the good , the bad, technical primer and commo...
 
Introduction to OAuth2.0
Introduction to OAuth2.0Introduction to OAuth2.0
Introduction to OAuth2.0
 
Azure AD B2C Webinar Series: Custom Policies Part 1
Azure AD B2C Webinar Series: Custom Policies Part 1Azure AD B2C Webinar Series: Custom Policies Part 1
Azure AD B2C Webinar Series: Custom Policies Part 1
 
SCIM: Why It’s More Important, and More Simple, Than You Think - CIS 2014
SCIM: Why It’s More Important, and More Simple, Than You Think - CIS 2014SCIM: Why It’s More Important, and More Simple, Than You Think - CIS 2014
SCIM: Why It’s More Important, and More Simple, Than You Think - CIS 2014
 
Enterprise Use Case Webinar - PaaS Metering and Monitoring
Enterprise Use Case Webinar - PaaS Metering and Monitoring Enterprise Use Case Webinar - PaaS Metering and Monitoring
Enterprise Use Case Webinar - PaaS Metering and Monitoring
 
Identity Management Standardization in the cloud computing
Identity Management Standardization in the cloud computingIdentity Management Standardization in the cloud computing
Identity Management Standardization in the cloud computing
 
Introduction to OAuth
Introduction to OAuthIntroduction to OAuth
Introduction to OAuth
 
CIS14: SCIM: Why It’s More Important, and More Simple, Than You Think
CIS14: SCIM: Why It’s More Important, and More Simple, Than You ThinkCIS14: SCIM: Why It’s More Important, and More Simple, Than You Think
CIS14: SCIM: Why It’s More Important, and More Simple, Than You Think
 

Recently uploaded

VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call GirlVIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girladitipandeya
 
Radiant Call girls in Dubai O56338O268 Dubai Call girls
Radiant Call girls in Dubai O56338O268 Dubai Call girlsRadiant Call girls in Dubai O56338O268 Dubai Call girls
Radiant Call girls in Dubai O56338O268 Dubai Call girlsstephieert
 
Russian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl ServiceRussian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl Servicegwenoracqe6
 
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...APNIC
 
On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024APNIC
 
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort ServiceEnjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort ServiceDelhi Call girls
 
AlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with FlowsAlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with FlowsThierry TROUIN ☁
 
VIP Kolkata Call Girl Salt Lake 👉 8250192130 Available With Room
VIP Kolkata Call Girl Salt Lake 👉 8250192130  Available With RoomVIP Kolkata Call Girl Salt Lake 👉 8250192130  Available With Room
VIP Kolkata Call Girl Salt Lake 👉 8250192130 Available With Roomishabajaj13
 
How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)Damian Radcliffe
 
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark WebGDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark WebJames Anderson
 
Russian Call Girls in Kolkata Samaira 🤌 8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Samaira 🤌  8250192130 🚀 Vip Call Girls KolkataRussian Call Girls in Kolkata Samaira 🤌  8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Samaira 🤌 8250192130 🚀 Vip Call Girls Kolkataanamikaraghav4
 
AWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptxAWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptxellan12
 
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts servicevipmodelshub1
 
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...Diya Sharma
 
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607dollysharma2066
 
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024APNIC
 
Challengers I Told Ya ShirtChallengers I Told Ya Shirt
Challengers I Told Ya ShirtChallengers I Told Ya ShirtChallengers I Told Ya ShirtChallengers I Told Ya Shirt
Challengers I Told Ya ShirtChallengers I Told Ya Shirtrahman018755
 
VIP Kolkata Call Girl Dum Dum 👉 8250192130 Available With Room
VIP Kolkata Call Girl Dum Dum 👉 8250192130  Available With RoomVIP Kolkata Call Girl Dum Dum 👉 8250192130  Available With Room
VIP Kolkata Call Girl Dum Dum 👉 8250192130 Available With Roomdivyansh0kumar0
 
Russian Call Girls in Kolkata Ishita 🤌 8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Ishita 🤌  8250192130 🚀 Vip Call Girls KolkataRussian Call Girls in Kolkata Ishita 🤌  8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Ishita 🤌 8250192130 🚀 Vip Call Girls Kolkataanamikaraghav4
 

Recently uploaded (20)

VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call GirlVIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
 
Radiant Call girls in Dubai O56338O268 Dubai Call girls
Radiant Call girls in Dubai O56338O268 Dubai Call girlsRadiant Call girls in Dubai O56338O268 Dubai Call girls
Radiant Call girls in Dubai O56338O268 Dubai Call girls
 
Russian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl ServiceRussian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl Service
 
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
 
On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024
 
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort ServiceEnjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
 
AlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with FlowsAlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with Flows
 
VIP Kolkata Call Girl Salt Lake 👉 8250192130 Available With Room
VIP Kolkata Call Girl Salt Lake 👉 8250192130  Available With RoomVIP Kolkata Call Girl Salt Lake 👉 8250192130  Available With Room
VIP Kolkata Call Girl Salt Lake 👉 8250192130 Available With Room
 
How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)
 
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark WebGDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
 
Russian Call Girls in Kolkata Samaira 🤌 8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Samaira 🤌  8250192130 🚀 Vip Call Girls KolkataRussian Call Girls in Kolkata Samaira 🤌  8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Samaira 🤌 8250192130 🚀 Vip Call Girls Kolkata
 
Rohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No AdvanceRohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
 
AWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptxAWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptx
 
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
 
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
 
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
 
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
 
Challengers I Told Ya ShirtChallengers I Told Ya Shirt
Challengers I Told Ya ShirtChallengers I Told Ya ShirtChallengers I Told Ya ShirtChallengers I Told Ya Shirt
Challengers I Told Ya ShirtChallengers I Told Ya Shirt
 
VIP Kolkata Call Girl Dum Dum 👉 8250192130 Available With Room
VIP Kolkata Call Girl Dum Dum 👉 8250192130  Available With RoomVIP Kolkata Call Girl Dum Dum 👉 8250192130  Available With Room
VIP Kolkata Call Girl Dum Dum 👉 8250192130 Available With Room
 
Russian Call Girls in Kolkata Ishita 🤌 8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Ishita 🤌  8250192130 🚀 Vip Call Girls KolkataRussian Call Girls in Kolkata Ishita 🤌  8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Ishita 🤌 8250192130 🚀 Vip Call Girls Kolkata
 

Introduction to User-Managed Access (UMA) and its Role in Protecting Resources

  • 2. My History with UMA • 2009 Internet Identity Workshop session • Person-to-person protected sharing • Auto-updating digital photo frame • Charter member of the working group
  • 3. The UMA standard’s progress 3 2015 2016 2017 2018 Mar ‘15: UMA V1.0 ratified as Recommendations Dec ‘15: UMA V1.0.1 ratified as Recommendations Jul ‘17: 1st Public Comment/ Review period ends Sep ‘17: 2nd Public Comment/ Review period ends Jan ‘18: Final Recommendations published Specs refactored, over 100 issues closed, lots of implementation input received, Disposition of Comments doc written… Jan ‘18: UMA2 logo (designed by @domcat) Feb ‘18: Charter update Jan ‘18: Draft UMA Business Model Report published May ‘18: Vendors supporting UMA2: Gluu, ForgeRock, Keycloak (WSO2 coming Q3) Jun ‘18: Business model/ IRM cxn jells
  • 4. It has helped to kill the “password anti-pattern” OAuth is for constrained delegation to apps Authorizati on server Resource server Resource owner Client Authorizes (consents) at run time after authenticating, at the AS Standard OAuth endpoints for authorization and access token issuance Some number of API endpoints that deliver the data or other value-add App gets consent based on the API scopes it requested; it has its own identity distinct from the RO’s (A) Authorization Request (B) Authorization Grant (C) Authorization Grant (D) Access Token (E) Access Token (F) Protected Resource This can come with a refresh token for renewal without the RO’s intervention The RO can revoke the token to withdraw authorization (consent)
  • 5. It is an OAuth-protected identity API, plus a bit more OpenID Connect does modern-day federation Authorizati on server Resource server Resource owner Client = Federation user = Relying party = Identity provider (“OpenID provider”)Standard UserInfo endpoint can be called with an access token to look up identity claims Token endpoint typically delivers an “ID token” similar to a SAML assertion
  • 6. UX UMA brings next-gen delegation and consent to OAuth User-Managed Access is for cross-party sharing Resource server Client Authorizatio n server Resource server Resource server Requesting party Share Approve Ahead of time After the fact Monitor Anytime Withdraw Anytime Opt in At run time Resource owner
  • 7. What is User Managed Access? • Owner definition and control of access authorization policies for protected resources • Access requests from arbitrary clients • Centralized authorization policy • Resource servers enforce policy decisions • Binding obligations • Profile of OAuth2
  • 8. Why is this important? • Next evolution beyond consent • Consent not required at run-time • Much richer set of policy components • Audit and transparency • Mutual consent between parties
  • 9. Like OpenID Connect for identity, UMA adds an API access management layer to OAuth2 Some use cases for UMA: • Enterprise API protection • For financial consumers – Discovering and aggregating UK pension accounts and sharing access to financial advisors • In industrial and consumer IoT – For proactively or dynamically sharing smart device control or data with others • Healthcare – As profiled in the Health Relationship Trust (HEART) WG at OpenID Foundation – Part of the new OpenMedReady framework for trustworthy remote care 9
  • 10. To sum up: UMA enhances OAuth as follows The UMA2 Grant spec adds to OAuth2 • The resource owner authorizes protected resource access to clients used by entities that are in a requesting party role. This enables party- to-party authorization, rather than authorization of application access alone. • The authorization server and resource server interact with the client and requesting party in a way that is asynchronous with respect to resource owner interactions. • This lets a resource owner configure an authorization server with policy conditions at will, rather than authorizing access token issuance synchronously just after authenticating. The UMA2 Federated Authorization spec adds to the UMA2 Grant • Multiple resource servers operating in different domains can communicate with a single authorization server operating in yet another domain that acts on behalf of a resource owner. • A service ecosystem can thus automate resource protection, and the resource owner can monitor and control authorization grant rules through the authorization server over time. • Authorization grants can increase and decrease at the level of individual resources and scopes. 10
  • 11. UMA V2.0 - THE PROTOCOL
  • 12. Client requests resource -- no RPT -- needs_info response -- permission ticket
  • 13. Client redirects RqP to AS to provide claims -- claims interaction endpoint -- permission ticket
  • 14. Client requests RPT -- extended OAuth2 -- special UMA grant -- with client credentials
  • 15. Client requests access to RS -- standard OAuth2 flow -- RPT == access token -- from UMA grant
  • 16. Decouple RS and AS -- RO establishes relationship -- standard OAuth -- Register resources to be protected by the AS
  • 17. Resource registration • Outsource authorization policy of RS endpoints to AS • RS is final authority for releasing access { "name" : ”Calendar", "icon_uri" : "http://mycals.example.com/icons/cal.png", "scopes" : [ "http://mycals.example.com/dev/scopes/view_busy", "http://mycals.example.com/dev/scopes/sched_normal" ], "type" : "http://www.example.com/rsets/calendar" }
  • 18. The UMA2 grant of OAuth: the basics 18 Authorizati on server A T PR I C urn:ietf:params:oauth:grant-type:uma-ticket D (see also tinyurl.com/uma2grantwsd) TA authorization token D discovery R resource registration P permission I token introspection C claims interaction
  • 19. Breaking apart the authorization server and resource server (externalizing authorization) (see also tinyurl.com/uma2fawsd) 19 Authorizati on server A T PR I CD Resource server Protection API API client Resource owner of OAuth security over the protection API Producer of protection API access token, or “PAT” scope = uma_protection Protection API endpoints: • Resource registration: Puts resources under AS protection; AS responds with resource IDs; resources can have unique scopes • Permission: Requests a permission ticket to deliver to the client after the tokenless resource request • Token introspection: Customizes OAuth Token Introspection (RFC 7662) to enhance the token introspection response object
  • 20. UMA2 is not the end of our work UMA Legal • Exciting work on a legal framework, a major underlying portion of which is just being completed • We have been working with legal expert Tim Reiniger, who wrote the Virginia digital identity law Extensions and futures • The Work Group has saved off a variety of exploratory ideas for future work in GitHub issues with the label extension • Examples: – Integration points for consent receipts – Optimized flows that remove the need for the permission ticket
  • 22. Detailed use case • Alice needs to coordinate a meeting with an important client Bob • Alice wants to allow Bob to view her calendar so he can pick a time that works for both of them • Bob can schedule over normal calendar events but not ones designated as high priority
  • 23. Use Case Actors authZ4me (UMA AS) scheduleMe (cal client) myCals (cal srvc) Alice Bob
  • 24. Alice registers protection for her calendar authZ4me (UMA AS) scheduleMe (cal client) myCals (cal srvc) Alice Bob OAuth2 Flow {PAT} Register Calendar endpoints and permissions
  • 25. Alice UMA protects her calendar • Standard OAuth2 flow between myCals and authZ4me to obtain a “PAT” • myCals registers Alice’s calendar – https://mycals.example.com/cal/alice/work • View, view_busy, delete, update, download, publish • Schedule_all, schedule_normal
  • 26. Alice defines authorization policy authZ4me (UMA AS) scheduleMe (cal client) myCals (cal srvc) Alice Bob AuthZ Policy: Must be Bob Perm: view_busy schedule_normal
  • 27. Alice sends Bob an email Hi Bob, Please view my calendar and schedule the meeting we spoke about today. https://mycals.example.com/cal/alice/work Thanks, Alice
  • 28. Bob meets claims to access Alice’s calendar authZ4me (UMA AS) scheduleMe (cal client) myCals (cal srvc) Alice Bob Claims negotiation via Permission ticket
  • 29. Bob subscribes to Alice’s calendar authZ4me (UMA AS) scheduleMe (cal client) myCals (cal srvc) Alice Bob Subscribe {RPT} Calendar View Select Mtg Time
  • 30. Bob schedules a meeting with Alice • Scheduleme POST’s to – https://mycals/cal/alice/work/meeting • Date, time, location • Passes RPT in the HTTP Authorzation header
  • 31. Meeting added to Alice’s calendar authZ4me (UMA AS) scheduleMe (cal client) myCals (cal srvc) Alice Bob Add Mtg {RPT} Mtg Scheduled Select Mtg Time
  • 32. Use case take-aways • Resource and permission/scope definition very flexible and extensible – Resource server defined not AS defined • Fine grained authorization across domains • Rich set of authorization policy options • Provides transparency for Alice as Bob walks through the process
  • 33. Standards Certified device identity Strongly authenticated user identity 1 2 User/device association 3 Consented device data sharing with others 4 Cryptographic auditability 5 Strongly authenticated third-party identity
  • 34. UMA Working Group • 2.0 – Grant (client perspective) – Federated Authorization • RS exporting AuthZ to AS • Multiple implementations • Testing suite in the works
  • 35. Q&A • UMA working group URL – http://tinyurl.com/umawg • UMA Grant for OAuth2 – https://docs.kantarainitiative.org/uma/wg/oauth-uma-grant-2.0- 08.html • UMA Federated Authorization – https://docs.kantarainitiative.org/uma/wg/oauth-uma-federated- authz-2.0-08.html • UMA Legal sub-group – http://tinyurl.com/umalegal

Editor's Notes

  1. OAuth is the underlying technology of nearly all the social sign-in you have seen or experienced It’s not about authentication, but requires it It turns out to resemble a subset of federated SSO very closely It was designed to solve problems for mobile flows in elegant ways That led people to want to use it instead of SAML! And then they developed…
  2. Sectors adopting OIDC: Government Healthcare Financial
  3. Most of the ways to use OAuth are about letting someone share access with an app they are personally using themselves Organizations using OAuth generally deploy their own authorization server and resource server(s) BUILD But UMA enables them to reside in different domains BUILD UMA defines an OAuth grant to let the resource owner give access to someone else BUILD So the client app is used by someone it calls a requesting party Which lets the AS protect resources from a wide variety of data hosts so the RO can treat it as a convenient central console for control This could amount to serious functionality that traditional opt-in consent doesn’t enable The RO can get a lot of key benefits through flows such as: BUILDs
  4. OAuth2 is Alice to Alice, UMA is Alice to Bob Internet scale, dynamic client registration Authorization policy is not spread across the web as it is today Resource servers are not just blind enforcement points but can add their own information to the decision. Example: protecting against brute force attacks… “legal” obligations for the parties involved in the transaction
  5. Evolution of consent: All reg data, password anti-pattern, oauth2 Pre-consent supported Consent is pretty much all or nothing. Do I agree to allow XYZ to access my data. What about things like… only if the client agrees to not sell my data to an advertiser. What about consent from the requesting party? Does “Bob” agree to my policy? Real-time out of band approval Because consent is centrally managed, the owner of the resource has a lot more visibility into who is requesting access, who is granted access, It’s not just about Alice? What about Bob? Alice is entering into a commitment that if Bob meets all the authorization requirements, she will provide him access.
  6. Externalizing authorization policy from the RS to the AS as instructed by the RO
  7. Need to add URL to OAuth2 proposal
  8. The claims interaction endpoint is like a more-flexible OAuth authorization endpoint When policy is met, access token (RPT = requesting party token) is issued according to scope set math in spec RO need not be present
  9. The claims interaction endpoint is like a more-flexible OAuth authorization endpoint When policy is met, access token (RPT = requesting party token) is issued according to scope set math in spec RO need not be present
  10. Distributed authorization across domains? Scary! The Legal subgroup is working with legal expert Tim Reiniger, who wrote the Virginia digital identity law, to help us: 1. Build a legal framework... 2. So that we can next build "toolkits" (such as model contract clauses) that are friction-reducing building blocks... 3. So that third parties can deploy UMA-enabled service systems in a manner consistent with protecting privacy rights using contractual mechanisms that adhere to the laws and regulations of their jurisdictions The framework will be based on licensing access. We plan to leverage CommonAccord.org (CmA for short)for the model clauses toolkit. So far, we have use cases (including things like proxy access) and a draft matrix with an analysis of functional, liability, and legal elements of access relationships. I collect lawyers! :-)
  11. Alice uses a SaaS calendar service myCals.example.com Alice manages her authorizations via her UMA AS authZ4me.example.com Bob uses a SaaS calendar service scheduleMe.example.net Both myCals and scheduleMe are UMA-aware
  12. Maybe add a slide with sample JSON
  13. Logs into account at authZ4me Finds her calendar resource from mycals Defines policy for Bob User must be Bob (verified email address?) Access permissions: View_busy Schedule_normal Requests notifications
  14. Image of email
  15. Alice uses a SaaS calendar service myCals.example.com Alice manages her authorizations via her UMA AS authZ4me.example.com Bob uses a SaaS calendar service scheduleMe.example.net Both myCals and scheduleMe are UMA-aware
  16. Scheduleme subscribes to Alice’s calendar Scheduleme shows Bob Alice’s calendar Priority meetings are shown in red Normal meetings are shown in blue Bob finds a time slot that works with both schedules
  17. Insert flow diagram
  18. Mycals introspects RPT Bob can view_busy and schedule_normal Mycal verifies meeting date and time don’t conflict with a high priority meeting Mycal creates the meeting, notifies Alice and returns success {meeting-id} Scheduleme notifies Bob and displays the meeting on Bob’s calendar
  19. Trust elevation Pre-authorization
  20. Greater Oauth alignment Better IoT support Wide ecosystem support