SlideShare a Scribd company logo
1 of 44
Globus Auth: A Research Identity and
Access Management Platform
Rachana Ananthakrishnan, Kyle Chard,
Ian Foster, Mattias Lidman, Brendan McCollam,
Stephen Rosen, Steven Tuecke
The University of Chicago
Argonne National Laboratory
S. Tuecke, R. Ananthakrishnan, K. Chard, M. Lidman, B. McCollam, S. Rosen, I. Foster, “Globus Auth: A Research
Identity and Access Management Platform,” 12th IEEE International Conference on eScience, October 25, 2016.
2
Thank you to our sponsors!
3
U . S . D E P A R T M E N T O F
ENERGY
Researcher
initiates transfer
request; or requested
automatically by script,
science gateway
Curator reviews and
approves; data set published
on campus or other system
Researcher
selects files to
share, selects user
or group, and sets
access permissions
Collaborator logs in
to access shared
files; no local
account needed;
download via
Globus
Researcher
assembles data set;
attaches metadata
(Dublin core,
domain-specific)
Peers, collaborators
search and discover
datasets; transfer and
share using Globus
Publication
repository
Personal Computer
• Only Web browser required
• Use any storage system
• Access using any credential 5
1 3
Share
Publish
Discover
5
6
6
7
8
Compute facilityGlobus transfers
files reliably,
securely
2
Transfer
Sequencing center
Globus controls access to
shared files on existing
storage; no need to move
files to cloud storage!
4
www.globus.org
Globus has the best numbers
5
major services
13
national labs
200 PB
transferred
10,000
active endpoints
35 billion
files processed
10,000
active users
50,000
registered users
99.9%
uptime
60+
institutional
subscribers
1 PB
largest single
transfer to date
3 months
longest
continuously
managed transfer
130
federated
campus identities
Globus as a platform
Can we enable researchers to leverage Globus services
in their own applications?
And, also, extend Globus with other services?
How do we empower the research community to create
an integrated ecosystem of services and applications?
7
Dependent Services
(Resource Servers)
A world of many services, identities, and more
8
Service
(Resource Server)
App
(Client)User
Dependent Services
(Resource Servers)
Resource
server
operator
Identity providers
Dependent Services
(Resource Servers)
Identity
Provider
A world of many services, identities, and more
9
Service
(Resource Server)
Identity
Provider
App
(Client)
Dependent Services
(Resource Servers)
Resource
server
operator
Common practice today:
• Services issue identities
• Hard to use external identities
• Username-password authentication
• Expensive, insecure, non-interoperable
• Poor or no treatment of delegation
User
Dependent Services
(Resource Servers)
Identity
Provider
A world of many services, identities, and more
10
Service
(Resource Server)
Identity
Provider
App
(Client)
Dependent Services
(Resource Servers)
Resource
server
operator
We need new approaches:
• Slash costs of developing
and operating secure services
• Enhance security in complex,
rapidly changing world
• Enable interoperability among services
User
The authentication and authorization challenge
We need to:
• Provide login to apps
– Web, mobile, desktop,
command line
• Protect all REST API
communications
– App  Globus service
– App  non-Globus service
– Service  service
11
While:
• Not introducing more identities
• Providing least privileges security
model
• Being agnostic to programming
language and framework
• Being web friendly
• Making it easy for users and
developers
• Following security best practices
Abbreviated historical perspectives
• Kerberos
• Grid Security Infrastructure, Intl Grid Trust Federation
– Secure authentication, multiple IDPs, delegation
• SAML, InCommon, etc.
– Identity management federation, integration with campuses
• Web security infrastructure: OAuth2, OIDC, etc.
– OIDC for retrieving user identity and attributes from IDPs
– OAuth2 defines an authorization service
– We integrate, extend to handle delegation, and apply
12
Globus Auth
• Foundational identity and access management (IAM) platform
service
• Simplifies creation and integration of advanced apps and
services
• Brokers authentication and authorization interactions
between:
– End users
– Identity providers: InCommon, XSEDE, Google, portals
– Services: resource servers with REST APIs
– Apps: web, mobile, desktop, command line clients
– Services acting as clients to other services 13
Based on widely used web standards
• OAuth 2.0 Authorization Framework (“OAuth2”)
• OpenID Connect Core 1.0 (“OIDC”)
• Allows use of standard OAuth2 and OIDC libraries
– E.g., Google OAuth Client Libraries (Java, Python, etc.),
Apache mod_auth_openidc
14
Globus account
• A Globus account is a set
of identities
– A primary identity
o Identity can be primary of only
one account
– One or more linked identities
o Identity can (currently) be linked
to only one account
• Account does not have
own identifier
– Account is uniquely identified
using its primary identity
15
Globus Auth integration models:
(1) Client credentials grant
16
Third-Party
Service
(Client)
1. Authenticate (credentials)
Globus Auth
(Authorization Server)
2. Access Tokens
Globus Auth integration models:
(2) Authentication grant with delegation
17
Globus
Transfer
(Resource Server)
Third-Party
Service
(Client)
2. Redirect (Authenticate)
4. Auth Code
5. Exchange Code
6. Access
Tokens
External
Service
3.Authenticate
Globus Auth
(Authorization Server)
Globus Auth integration models:
(3) Native app grant
18
Native App
4. Auth Code
3.Authenticate
6. Exchange Code
7. Access
Tokens
Globus Auth
(Authorization Server)
Globus Auth interactions
19
Service
(Resource Server)
Identity
Provider
Authorization Server
(Globus Auth)
App
(Client)
User*
HTTPS/REST call
Login
* “Resource Owner” in OAuth2 terminology
Globus Auth interactions
20
Service
(Resource Server)
Identity
Provider
• For a set of scopes
– Login: openid, email, profile
– HTTPS/REST APIs
• User selects identity provider
Authorization Server
(Globus Auth)
App
(Client)
1) Request authorization
User
HTTPS/REST call
Login
Globus Auth interactions
21
Service
(Resource Server)
Identity
Provider
• Using existing identities
– E.g., XSEDE, University (via
InCommon), Google, web app
• User can link multiple
identities into a single
Globus Account
• No Globus username
(Globus ID) required
• Globus Auth handles naming
details, e.g., ePPN vs ePTID
Authorization Server
(Globus Auth)
App
(Client)
1) Request authorization
2) Authenticate resource owner
User
HTTPS/REST call
Login
Globus Auth interactions
22
Service
(Resource Server)
Identity
Provider
• Resource is provided by a
resource server
• Limited by a scope
consent
Authorization Server
(Globus Auth)
App
(Client)
1) Request authorization
2) Authenticate resource owner
3) Obtain authorization (consent)
for client to access a resource
User
HTTPS/REST call
Login
Globus Auth interactions
23
Service
(Resource Server)
Identity
Provider
App
(Client)
• Some grant types issue
authorization code, which
client exchanges for access
token
• Access token is opaque to
client
• May include a refresh
token, for offline access
access_token
Authorization Server
(Globus Auth)
1) Request authorization
2) Authenticate resource owner
3) Obtain authorization (consent)
for client to access a resource
4) Issue OAuth2 access_token to client
User
HTTPS/REST call
Login
Globus Auth interactions
24
Service
(Resource Server)
Identity
Provider
App
(Client)
JWT id_token:
• sub: Globus Auth identity id
• iss: https://auth.globus.org
• name: full name
• preferred_username:
e.g., tuecke@uchicago.edu
• email: email contact
• other standard OIDC claims
id_token
Authorization Server
(Globus Auth)
1) Request authorization
2) Authenticate resource owner
3) Obtain authorization (consent)
for client to access a resource
4) Issue OAuth2 access_token to client
5) May issue OIDC id_token to client
with resource owner identity
User
HTTPS/REST call
Login
Globus Auth interactions
25
Service
(Resource Server)
Authorization Server
(Globus Auth)
Identity
Provider
App
(Client) Authorization:
Bearer <access_token>
1) Request authorization
2) Authenticate resource owner
3) Obtain authorization (consent)
for client to access a resource
4) Issue OAuth2 access_token to client
5) May issue OIDC id_token to client
with resource owner identity
6) HTTPS/REST call with access_token
User
HTTPS/REST call
Login
Globus Auth interactions
26
Authorization Server
(Globus Auth)
Identity
Provider
App
(Client)
RFC 7662: OAuth 2.0 Token
Introspection response:
• active: true or false
• client_id
• scope
• sub: Globus Auth identity id
• username: user@myu.edu
• identity_set: linked identities
• email
• name
• other standard claims
access_token
Service
(Resource Server)
1) Request authorization
2) Authenticate resource owner
3) Obtain authorization (consent)
for client to access a resource
4) Issue OAuth2 access_token to client
5) May issue OIDC id_token to client
with resource owner identity
6) HTTPS/REST call with access_token
7) Validate access_token for resource server,
obtain additional info
User
HTTPS/REST call
Login
Globus Auth interactions
27
• Allows resource server to act as
client to other resource servers
• Service uses request
access_token to get a
dependent access_token for
each dependent service
• Service acts as client to its
dependent services
Service
(Resource Server)
Authorization Server
(Globus Auth)
Identity
Provider
App
(Client)
HTTPS/REST call
User
Dependent Services
(Resource Servers)
1) Request authorization
2) Authenticate resource owner
3) Obtain authorization (consent)
for client to access a resource
4) Issue OAuth2 access_token to client
5) May issue OIDC id_token to client
with resource owner identity
6) HTTPS/REST call with access_token
7) Validate access_token for resource server,
obtain additional info
8) Issue dependent access tokens to resource server
Login
Dependent
access_token
Log in with Globus
• Use existing identities
(Globus Auth acts as broker)
• Then enable access to
community services
Simple APIs enable integration into apps
• Identity and access management PaaS
docs.globus.org/api/auth
• Works with any compliant OAuth2/OIDC client
– We recommend Google OAuth client libraries
– Python, Java, PHP, Javascript, .NET
developers.google.com/api-client/library
• Python client library for Globus Auth REST API
globus.github.io/globus-sdk-python
29
(and Globus
transfer API)
Creating a REST API service with Globus Auth
• Outsource all identity management and authentication
– Federated identity with InCommon, Google, etc.
• Outsource your REST API security
– Consent, token issuance, validation, revocation
– You provide service-specific authorization
• Apps use your service like all others
– It is standard OAuth2 and OIDC
• Your service can seamlessly leverage other services
• Other services can leverage your service
• Implement your service using any language and framework 30
Typical service interactions
• Service receives HTTPS request with header
– Authorization: Bearer <request-access-token>
• Introspects the request access token
– Auth API: POST /v2/oauth2/token/introspect
– Authorized by client_id and client_secret
– Returns: validity, client, scope, effective_identity, identities_set
• Verifies token info
• Authorizes request
• If service needs to act as client to other services:
– Calls Globus Auth Dependent Token Grant
o Returns a token for each dependent service
– Uses correct dependent token for downstream REST call
• Responds to client HTTPS request as appropriate 31
32
You can find sample code on GitHub
https://github.com/globus/globus-sample-data-portal.git 33
Desktop
Globus Cloud
Firewall
Science DMZ
Prototypical research data portal
34
Globus
Transfer
Service
Portal Web
Server (Client)
Globus AuthBrowser
User’s
Endpoint
(optional)
Portal
Endpoint
Other
Endpoints
HTTPS
GridFTP
REST Other
Services
Globus Web
Helper Pages
Identity
Providers
Identity
Providers
Identity
Provider
Login
Desktop
Globus Cloud
Firewall
Science DMZ
Role of Globus Auth
35
Globus
Transfer
Service
Portal Web
Server (Client)
Globus AuthBrowser
User’s
Endpoint
(optional)
Portal
Endpoint
Other
Endpoints
HTTPS
GridFTP
REST Other
Services
Globus Web
Helper Pages
Identity
Providers
Identity
Providers
Identity
Provider
Login
Desktop
Globus Cloud
Firewall
Science DMZ
Role of Globus Transfer and Sharing
36
Globus
Transfer
Service
Portal Web
Server (Client)
Globus AuthBrowser
User’s
Endpoint
(optional)
Portal
Endpoint
Other
Endpoints
HTTPS
GridFTP
REST Other
Services
Globus Web
Helper Pages
Identity
Providers
Identity
Providers
Identity
Provider
Login
Desktop
Globus Cloud
Firewall
Science DMZ
Role of Globus web helper pages
37
Globus
Transfer
Service
Portal Web
Server (Client)
Globus AuthBrowser
User’s
Endpoint
(optional)
Portal
Endpoint
Other
Endpoints
HTTPS
GridFTP
REST Other
Services
Globus Web
Helper Pages
Identity
Providers
Identity
Providers
Identity
Provider
Login
Globus web helper pages
Globus-provided web pages designed for use by your
web apps. See https://docs.globus.org/api/helper-pages/
– Browse Endpoint
– Select Group
– Logout
38
User identity vs. portal identity
User logging into portal results in portal having user’s
identity and access token
– Used to make requests on the user’s behalf
– Use OAuth2 Authorization Code Grant
– User authenticates using their portal identity
Portal may also need its own identity
– Access and refresh tokens for this identity
– Used to make requests on its own behalf
– Use OAuth2 Client Credentials Grant to authenticate the
portal client identity and secret
39
Desktop
Globus Cloud
Firewall
Science DMZ
Prototypical research data portal
40
Globus
Transfer
Service
Portal Web
Server (Client)
Globus AuthBrowser
User’s
Endpoint
(optional)
Portal
Endpoint
Other
Endpoints
HTTPS
GridFTP
REST Other
Services
Globus Web
Helper Pages
Identity
Providers
Identity
Providers
Identity
Provider
Login
Adding portal as identity provider
If your portal has identities already:
• Deploy OIDC server in front of it
– Globus Python OIDC (coming soon)
– Any standard OIDC server should work
– Requires claim that can map to username
– Optional claims: name, email, organization
• Can register apps and services with an effective identity
policy
– Requires account to have identity from your identity provider
when logging into your app
41
Desktop
Globus Cloud
Firewall
Science DMZ
Prototypical research data portal
42
Globus
Transfer
Service
Portal Web
Server (Client)
Globus AuthBrowser
User’s
Endpoint
(optional)
Portal
Endpoint
Other
Endpoints
HTTPS
GridFTP
REST Other
Services
Globus Web
Helper Pages
Identity
Providers
Identity
Providers
Identity
Provider
Login
HTTPS to Endpoints
• Each endpoint HTTPS server is a Globus Auth service
(resource server)
– HTTPS requests authorized via Globus Auth issued OAuth2
access tokens
• Web page can link to file on server
– Browser GET will cause HTTPS server to authorize request via
Globus Auth (note SSO)
• Portal (client) can request scope for endpoint
resource server
– Use access token in requests
43
Summary
Globus Auth makes it easy to:
• Add user login to your
applications
• Integrate with Globus,
XSEDE, and other services
• Add OAuth2 support to your
service’s REST API
• Create services that leverage other services
Building on this foundation, we can together create an
integrated ecosystem of research services and applications44
Learn more at globus.org!

More Related Content

What's hot

A Novel methodology for handling Document Level Security in Search Based Appl...
A Novel methodology for handling Document Level Security in Search Based Appl...A Novel methodology for handling Document Level Security in Search Based Appl...
A Novel methodology for handling Document Level Security in Search Based Appl...lucenerevolution
 
GlobusWorld 2020 Keynote
GlobusWorld 2020 KeynoteGlobusWorld 2020 Keynote
GlobusWorld 2020 KeynoteGlobus
 
Gateways 2020 Tutorial - Introduction to Globus
Gateways 2020 Tutorial - Introduction to GlobusGateways 2020 Tutorial - Introduction to Globus
Gateways 2020 Tutorial - Introduction to GlobusGlobus
 
Globus: Beyond File Transfer
Globus: Beyond File TransferGlobus: Beyond File Transfer
Globus: Beyond File TransferGlobus
 
Gateways 2020 Tutorial - Instrument Data Distribution with Globus
Gateways 2020 Tutorial - Instrument Data Distribution with GlobusGateways 2020 Tutorial - Instrument Data Distribution with Globus
Gateways 2020 Tutorial - Instrument Data Distribution with GlobusGlobus
 
Gateways 2020 Tutorial - Automated Data Ingest and Search with Globus
Gateways 2020 Tutorial - Automated Data Ingest and Search with GlobusGateways 2020 Tutorial - Automated Data Ingest and Search with Globus
Gateways 2020 Tutorial - Automated Data Ingest and Search with GlobusGlobus
 
Enabling Cloud Bursting for Life Sciences within Galaxy
Enabling Cloud Bursting for Life Sciences within GalaxyEnabling Cloud Bursting for Life Sciences within Galaxy
Enabling Cloud Bursting for Life Sciences within GalaxyEnis Afgan
 
Research Automation for Data-Driven Discovery
Research Automationfor Data-Driven DiscoveryResearch Automationfor Data-Driven Discovery
Research Automation for Data-Driven DiscoveryGlobus
 
Instrument Data Orchestration with Globus Search and Flows
Instrument Data Orchestration with Globus Search and FlowsInstrument Data Orchestration with Globus Search and Flows
Instrument Data Orchestration with Globus Search and FlowsGlobus
 
Introduction to the Globus Platform (APS Workshop)
Introduction to the Globus Platform (APS Workshop)Introduction to the Globus Platform (APS Workshop)
Introduction to the Globus Platform (APS Workshop)Globus
 
What's New in Globus - Internet2 TechEXtra
What's New in Globus - Internet2 TechEXtraWhat's New in Globus - Internet2 TechEXtra
What's New in Globus - Internet2 TechEXtraGlobus
 
Connecting Your System to Globus (APS Workshop)
Connecting Your System to Globus (APS Workshop)Connecting Your System to Globus (APS Workshop)
Connecting Your System to Globus (APS Workshop)Globus
 
re:Invent 2013-foster-madduri
re:Invent 2013-foster-maddurire:Invent 2013-foster-madduri
re:Invent 2013-foster-madduriRavi Madduri
 
WoSC19: Serverless Workflows for Indexing Large Scientific Data
WoSC19: Serverless Workflows for Indexing Large Scientific DataWoSC19: Serverless Workflows for Indexing Large Scientific Data
WoSC19: Serverless Workflows for Indexing Large Scientific DataUniversity of Chicago
 
Globus: Research Data Management as Service and Platform - pearc17
Globus: Research Data Management as Service and Platform - pearc17Globus: Research Data Management as Service and Platform - pearc17
Globus: Research Data Management as Service and Platform - pearc17Mary Bass
 
Globus Genomics: How Science-as-a-Service is Accelerating Discovery (BDT310) ...
Globus Genomics: How Science-as-a-Service is Accelerating Discovery (BDT310) ...Globus Genomics: How Science-as-a-Service is Accelerating Discovery (BDT310) ...
Globus Genomics: How Science-as-a-Service is Accelerating Discovery (BDT310) ...Amazon Web Services
 
Benchmarking Cloud-based Tagging Services
Benchmarking Cloud-based Tagging ServicesBenchmarking Cloud-based Tagging Services
Benchmarking Cloud-based Tagging ServicesTanu Malik
 
GlobusWorld 2021 Tutorial: Building with the Globus Platform
GlobusWorld 2021 Tutorial: Building with the Globus PlatformGlobusWorld 2021 Tutorial: Building with the Globus Platform
GlobusWorld 2021 Tutorial: Building with the Globus PlatformGlobus
 
Automating Research Data Flows with the Globus Command Line Interface (CLI)
Automating Research Data Flows with the Globus Command Line Interface (CLI)Automating Research Data Flows with the Globus Command Line Interface (CLI)
Automating Research Data Flows with the Globus Command Line Interface (CLI)Globus
 

What's hot (20)

A Novel methodology for handling Document Level Security in Search Based Appl...
A Novel methodology for handling Document Level Security in Search Based Appl...A Novel methodology for handling Document Level Security in Search Based Appl...
A Novel methodology for handling Document Level Security in Search Based Appl...
 
GlobusWorld 2020 Keynote
GlobusWorld 2020 KeynoteGlobusWorld 2020 Keynote
GlobusWorld 2020 Keynote
 
Gateways 2020 Tutorial - Introduction to Globus
Gateways 2020 Tutorial - Introduction to GlobusGateways 2020 Tutorial - Introduction to Globus
Gateways 2020 Tutorial - Introduction to Globus
 
Globus: Beyond File Transfer
Globus: Beyond File TransferGlobus: Beyond File Transfer
Globus: Beyond File Transfer
 
Gateways 2020 Tutorial - Instrument Data Distribution with Globus
Gateways 2020 Tutorial - Instrument Data Distribution with GlobusGateways 2020 Tutorial - Instrument Data Distribution with Globus
Gateways 2020 Tutorial - Instrument Data Distribution with Globus
 
Gateways 2020 Tutorial - Automated Data Ingest and Search with Globus
Gateways 2020 Tutorial - Automated Data Ingest and Search with GlobusGateways 2020 Tutorial - Automated Data Ingest and Search with Globus
Gateways 2020 Tutorial - Automated Data Ingest and Search with Globus
 
Data automation 101
Data automation 101Data automation 101
Data automation 101
 
Enabling Cloud Bursting for Life Sciences within Galaxy
Enabling Cloud Bursting for Life Sciences within GalaxyEnabling Cloud Bursting for Life Sciences within Galaxy
Enabling Cloud Bursting for Life Sciences within Galaxy
 
Research Automation for Data-Driven Discovery
Research Automationfor Data-Driven DiscoveryResearch Automationfor Data-Driven Discovery
Research Automation for Data-Driven Discovery
 
Instrument Data Orchestration with Globus Search and Flows
Instrument Data Orchestration with Globus Search and FlowsInstrument Data Orchestration with Globus Search and Flows
Instrument Data Orchestration with Globus Search and Flows
 
Introduction to the Globus Platform (APS Workshop)
Introduction to the Globus Platform (APS Workshop)Introduction to the Globus Platform (APS Workshop)
Introduction to the Globus Platform (APS Workshop)
 
What's New in Globus - Internet2 TechEXtra
What's New in Globus - Internet2 TechEXtraWhat's New in Globus - Internet2 TechEXtra
What's New in Globus - Internet2 TechEXtra
 
Connecting Your System to Globus (APS Workshop)
Connecting Your System to Globus (APS Workshop)Connecting Your System to Globus (APS Workshop)
Connecting Your System to Globus (APS Workshop)
 
re:Invent 2013-foster-madduri
re:Invent 2013-foster-maddurire:Invent 2013-foster-madduri
re:Invent 2013-foster-madduri
 
WoSC19: Serverless Workflows for Indexing Large Scientific Data
WoSC19: Serverless Workflows for Indexing Large Scientific DataWoSC19: Serverless Workflows for Indexing Large Scientific Data
WoSC19: Serverless Workflows for Indexing Large Scientific Data
 
Globus: Research Data Management as Service and Platform - pearc17
Globus: Research Data Management as Service and Platform - pearc17Globus: Research Data Management as Service and Platform - pearc17
Globus: Research Data Management as Service and Platform - pearc17
 
Globus Genomics: How Science-as-a-Service is Accelerating Discovery (BDT310) ...
Globus Genomics: How Science-as-a-Service is Accelerating Discovery (BDT310) ...Globus Genomics: How Science-as-a-Service is Accelerating Discovery (BDT310) ...
Globus Genomics: How Science-as-a-Service is Accelerating Discovery (BDT310) ...
 
Benchmarking Cloud-based Tagging Services
Benchmarking Cloud-based Tagging ServicesBenchmarking Cloud-based Tagging Services
Benchmarking Cloud-based Tagging Services
 
GlobusWorld 2021 Tutorial: Building with the Globus Platform
GlobusWorld 2021 Tutorial: Building with the Globus PlatformGlobusWorld 2021 Tutorial: Building with the Globus Platform
GlobusWorld 2021 Tutorial: Building with the Globus Platform
 
Automating Research Data Flows with the Globus Command Line Interface (CLI)
Automating Research Data Flows with the Globus Command Line Interface (CLI)Automating Research Data Flows with the Globus Command Line Interface (CLI)
Automating Research Data Flows with the Globus Command Line Interface (CLI)
 

Similar to Globus Auth: A Research Identity and Access Management Platform

Getting Started with Globus for Developers
Getting Started with Globus for DevelopersGetting Started with Globus for Developers
Getting Started with Globus for DevelopersGlobus
 
Introduction to the Globus Platform for Developers
Introduction to the Globus Platform for DevelopersIntroduction to the Globus Platform for Developers
Introduction to the Globus Platform for DevelopersGlobus
 
Intro to OAuth2 and OpenID Connect
Intro to OAuth2 and OpenID ConnectIntro to OAuth2 and OpenID Connect
Intro to OAuth2 and OpenID ConnectLiamWadman
 
Identity Access and Management with Globus
Identity Access and Management with GlobusIdentity Access and Management with Globus
Identity Access and Management with GlobusGlobus
 
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
 
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
 
Scalable Data Management: Automation and the Modern Research Data Portal
Scalable Data Management: Automation and the Modern Research Data PortalScalable Data Management: Automation and the Modern Research Data Portal
Scalable Data Management: Automation and the Modern Research Data PortalGlobus
 
Stateless Auth using OAuth2 & JWT
Stateless Auth using OAuth2 & JWTStateless Auth using OAuth2 & JWT
Stateless Auth using OAuth2 & JWTGaurav Roy
 
Foundational Identity Management Services for Research Computing - ARCC Works...
Foundational Identity Management Services for Research Computing - ARCC Works...Foundational Identity Management Services for Research Computing - ARCC Works...
Foundational Identity Management Services for Research Computing - ARCC Works...Mary Bass
 
Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On
Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign OnHelp! I Have An Identity Crisis: A look at various mechanisms of Single Sign On
Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign OnSaloni Shah
 
Building Research Applications with Globus PaaS
Building Research Applications with Globus PaaSBuilding Research Applications with Globus PaaS
Building Research Applications with Globus PaaSGlobus
 
Stateless Auth using OAUTH2 & JWT
Stateless Auth using OAUTH2 & JWTStateless Auth using OAUTH2 & JWT
Stateless Auth using OAUTH2 & JWTMobiliya
 
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
 
Keycloak for Science Gateways - SGCI Technology Sampler Webinar
Keycloak for Science Gateways - SGCI Technology Sampler WebinarKeycloak for Science Gateways - SGCI Technology Sampler Webinar
Keycloak for Science Gateways - SGCI Technology Sampler Webinarmarcuschristie
 
2019 - Tech Talk DC - Token-based security for web applications using OAuth2 ...
2019 - Tech Talk DC - Token-based security for web applications using OAuth2 ...2019 - Tech Talk DC - Token-based security for web applications using OAuth2 ...
2019 - Tech Talk DC - Token-based security for web applications using OAuth2 ...Vladimir Bychkov
 
OAuth 2.0 and Mobile Devices: Is that a token in your phone in your pocket or...
OAuth 2.0 and Mobile Devices: Is that a token in your phone in your pocket or...OAuth 2.0 and Mobile Devices: Is that a token in your phone in your pocket or...
OAuth 2.0 and Mobile Devices: Is that a token in your phone in your pocket or...Brian Campbell
 
Introduction to the Globus Platform (GlobusWorld Tour - UMich)
Introduction to the Globus Platform (GlobusWorld Tour - UMich)Introduction to the Globus Platform (GlobusWorld Tour - UMich)
Introduction to the Globus Platform (GlobusWorld Tour - UMich)Globus
 

Similar to Globus Auth: A Research Identity and Access Management Platform (20)

Getting Started with Globus for Developers
Getting Started with Globus for DevelopersGetting Started with Globus for Developers
Getting Started with Globus for Developers
 
Introduction to the Globus Platform for Developers
Introduction to the Globus Platform for DevelopersIntroduction to the Globus Platform for Developers
Introduction to the Globus Platform for Developers
 
Intro to OAuth2 and OpenID Connect
Intro to OAuth2 and OpenID ConnectIntro to OAuth2 and OpenID Connect
Intro to OAuth2 and OpenID Connect
 
Identity Access and Management with Globus
Identity Access and Management with GlobusIdentity Access and Management with Globus
Identity Access and Management with Globus
 
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)
 
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)
 
Scalable Data Management: Automation and the Modern Research Data Portal
Scalable Data Management: Automation and the Modern Research Data PortalScalable Data Management: Automation and the Modern Research Data Portal
Scalable Data Management: Automation and the Modern Research Data Portal
 
Stateless Auth using OAuth2 & JWT
Stateless Auth using OAuth2 & JWTStateless Auth using OAuth2 & JWT
Stateless Auth using OAuth2 & JWT
 
Foundational Identity Management Services for Research Computing - ARCC Works...
Foundational Identity Management Services for Research Computing - ARCC Works...Foundational Identity Management Services for Research Computing - ARCC Works...
Foundational Identity Management Services for Research Computing - ARCC Works...
 
Api security
Api security Api security
Api security
 
Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On
Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign OnHelp! I Have An Identity Crisis: A look at various mechanisms of Single Sign On
Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On
 
Building Research Applications with Globus PaaS
Building Research Applications with Globus PaaSBuilding Research Applications with Globus PaaS
Building Research Applications with Globus PaaS
 
Stateless Auth using OAUTH2 & JWT
Stateless Auth using OAUTH2 & JWTStateless Auth using OAUTH2 & JWT
Stateless Auth using OAUTH2 & JWT
 
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
 
Keycloak for Science Gateways - SGCI Technology Sampler Webinar
Keycloak for Science Gateways - SGCI Technology Sampler WebinarKeycloak for Science Gateways - SGCI Technology Sampler Webinar
Keycloak for Science Gateways - SGCI Technology Sampler Webinar
 
2019 - Tech Talk DC - Token-based security for web applications using OAuth2 ...
2019 - Tech Talk DC - Token-based security for web applications using OAuth2 ...2019 - Tech Talk DC - Token-based security for web applications using OAuth2 ...
2019 - Tech Talk DC - Token-based security for web applications using OAuth2 ...
 
API Security with OAuth2.0.
API Security with OAuth2.0.API Security with OAuth2.0.
API Security with OAuth2.0.
 
OAuth 2.0 and Mobile Devices: Is that a token in your phone in your pocket or...
OAuth 2.0 and Mobile Devices: Is that a token in your phone in your pocket or...OAuth 2.0 and Mobile Devices: Is that a token in your phone in your pocket or...
OAuth 2.0 and Mobile Devices: Is that a token in your phone in your pocket or...
 
Introduction to the Globus Platform (GlobusWorld Tour - UMich)
Introduction to the Globus Platform (GlobusWorld Tour - UMich)Introduction to the Globus Platform (GlobusWorld Tour - UMich)
Introduction to the Globus Platform (GlobusWorld Tour - UMich)
 

More from Ian Foster

Global Services for Global Science March 2023.pptx
Global Services for Global Science March 2023.pptxGlobal Services for Global Science March 2023.pptx
Global Services for Global Science March 2023.pptxIan Foster
 
The Earth System Grid Federation: Origins, Current State, Evolution
The Earth System Grid Federation: Origins, Current State, EvolutionThe Earth System Grid Federation: Origins, Current State, Evolution
The Earth System Grid Federation: Origins, Current State, EvolutionIan Foster
 
Better Information Faster: Programming the Continuum
Better Information Faster: Programming the ContinuumBetter Information Faster: Programming the Continuum
Better Information Faster: Programming the ContinuumIan Foster
 
ESnet6 and Smart Instruments
ESnet6 and Smart InstrumentsESnet6 and Smart Instruments
ESnet6 and Smart InstrumentsIan Foster
 
Linking Scientific Instruments and Computation
Linking Scientific Instruments and ComputationLinking Scientific Instruments and Computation
Linking Scientific Instruments and ComputationIan Foster
 
A Global Research Data Platform: How Globus Services Enable Scientific Discovery
A Global Research Data Platform: How Globus Services Enable Scientific DiscoveryA Global Research Data Platform: How Globus Services Enable Scientific Discovery
A Global Research Data Platform: How Globus Services Enable Scientific DiscoveryIan Foster
 
Foster CRA March 2022.pptx
Foster CRA March 2022.pptxFoster CRA March 2022.pptx
Foster CRA March 2022.pptxIan Foster
 
Big Data, Big Computing, AI, and Environmental Science
Big Data, Big Computing, AI, and Environmental ScienceBig Data, Big Computing, AI, and Environmental Science
Big Data, Big Computing, AI, and Environmental ScienceIan Foster
 
AI at Scale for Materials and Chemistry
AI at Scale for Materials and ChemistryAI at Scale for Materials and Chemistry
AI at Scale for Materials and ChemistryIan Foster
 
Coding the Continuum
Coding the ContinuumCoding the Continuum
Coding the ContinuumIan Foster
 
Data Tribology: Overcoming Data Friction with Cloud Automation
Data Tribology: Overcoming Data Friction with Cloud AutomationData Tribology: Overcoming Data Friction with Cloud Automation
Data Tribology: Overcoming Data Friction with Cloud AutomationIan Foster
 
Research Automation for Data-Driven Discovery
Research Automation for Data-Driven DiscoveryResearch Automation for Data-Driven Discovery
Research Automation for Data-Driven DiscoveryIan Foster
 
Scaling collaborative data science with Globus and Jupyter
Scaling collaborative data science with Globus and JupyterScaling collaborative data science with Globus and Jupyter
Scaling collaborative data science with Globus and JupyterIan Foster
 
Learning Systems for Science
Learning Systems for ScienceLearning Systems for Science
Learning Systems for ScienceIan Foster
 
Team Argon Summary
Team Argon SummaryTeam Argon Summary
Team Argon SummaryIan Foster
 
Thoughts on interoperability
Thoughts on interoperabilityThoughts on interoperability
Thoughts on interoperabilityIan Foster
 
Computing Just What You Need: Online Data Analysis and Reduction at Extreme ...
Computing Just What You Need: Online Data Analysis and Reduction  at Extreme ...Computing Just What You Need: Online Data Analysis and Reduction  at Extreme ...
Computing Just What You Need: Online Data Analysis and Reduction at Extreme ...Ian Foster
 
NIH Data Commons Architecture Ideas
NIH Data Commons Architecture IdeasNIH Data Commons Architecture Ideas
NIH Data Commons Architecture IdeasIan Foster
 
Going Smart and Deep on Materials at ALCF
Going Smart and Deep on Materials at ALCFGoing Smart and Deep on Materials at ALCF
Going Smart and Deep on Materials at ALCFIan Foster
 
Computing Just What You Need: Online Data Analysis and Reduction at Extreme ...
Computing Just What You Need: Online Data Analysis and Reduction  at Extreme ...Computing Just What You Need: Online Data Analysis and Reduction  at Extreme ...
Computing Just What You Need: Online Data Analysis and Reduction at Extreme ...Ian Foster
 

More from Ian Foster (20)

Global Services for Global Science March 2023.pptx
Global Services for Global Science March 2023.pptxGlobal Services for Global Science March 2023.pptx
Global Services for Global Science March 2023.pptx
 
The Earth System Grid Federation: Origins, Current State, Evolution
The Earth System Grid Federation: Origins, Current State, EvolutionThe Earth System Grid Federation: Origins, Current State, Evolution
The Earth System Grid Federation: Origins, Current State, Evolution
 
Better Information Faster: Programming the Continuum
Better Information Faster: Programming the ContinuumBetter Information Faster: Programming the Continuum
Better Information Faster: Programming the Continuum
 
ESnet6 and Smart Instruments
ESnet6 and Smart InstrumentsESnet6 and Smart Instruments
ESnet6 and Smart Instruments
 
Linking Scientific Instruments and Computation
Linking Scientific Instruments and ComputationLinking Scientific Instruments and Computation
Linking Scientific Instruments and Computation
 
A Global Research Data Platform: How Globus Services Enable Scientific Discovery
A Global Research Data Platform: How Globus Services Enable Scientific DiscoveryA Global Research Data Platform: How Globus Services Enable Scientific Discovery
A Global Research Data Platform: How Globus Services Enable Scientific Discovery
 
Foster CRA March 2022.pptx
Foster CRA March 2022.pptxFoster CRA March 2022.pptx
Foster CRA March 2022.pptx
 
Big Data, Big Computing, AI, and Environmental Science
Big Data, Big Computing, AI, and Environmental ScienceBig Data, Big Computing, AI, and Environmental Science
Big Data, Big Computing, AI, and Environmental Science
 
AI at Scale for Materials and Chemistry
AI at Scale for Materials and ChemistryAI at Scale for Materials and Chemistry
AI at Scale for Materials and Chemistry
 
Coding the Continuum
Coding the ContinuumCoding the Continuum
Coding the Continuum
 
Data Tribology: Overcoming Data Friction with Cloud Automation
Data Tribology: Overcoming Data Friction with Cloud AutomationData Tribology: Overcoming Data Friction with Cloud Automation
Data Tribology: Overcoming Data Friction with Cloud Automation
 
Research Automation for Data-Driven Discovery
Research Automation for Data-Driven DiscoveryResearch Automation for Data-Driven Discovery
Research Automation for Data-Driven Discovery
 
Scaling collaborative data science with Globus and Jupyter
Scaling collaborative data science with Globus and JupyterScaling collaborative data science with Globus and Jupyter
Scaling collaborative data science with Globus and Jupyter
 
Learning Systems for Science
Learning Systems for ScienceLearning Systems for Science
Learning Systems for Science
 
Team Argon Summary
Team Argon SummaryTeam Argon Summary
Team Argon Summary
 
Thoughts on interoperability
Thoughts on interoperabilityThoughts on interoperability
Thoughts on interoperability
 
Computing Just What You Need: Online Data Analysis and Reduction at Extreme ...
Computing Just What You Need: Online Data Analysis and Reduction  at Extreme ...Computing Just What You Need: Online Data Analysis and Reduction  at Extreme ...
Computing Just What You Need: Online Data Analysis and Reduction at Extreme ...
 
NIH Data Commons Architecture Ideas
NIH Data Commons Architecture IdeasNIH Data Commons Architecture Ideas
NIH Data Commons Architecture Ideas
 
Going Smart and Deep on Materials at ALCF
Going Smart and Deep on Materials at ALCFGoing Smart and Deep on Materials at ALCF
Going Smart and Deep on Materials at ALCF
 
Computing Just What You Need: Online Data Analysis and Reduction at Extreme ...
Computing Just What You Need: Online Data Analysis and Reduction  at Extreme ...Computing Just What You Need: Online Data Analysis and Reduction  at Extreme ...
Computing Just What You Need: Online Data Analysis and Reduction at Extreme ...
 

Recently uploaded

DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 

Recently uploaded (20)

DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 

Globus Auth: A Research Identity and Access Management Platform

  • 1. Globus Auth: A Research Identity and Access Management Platform Rachana Ananthakrishnan, Kyle Chard, Ian Foster, Mattias Lidman, Brendan McCollam, Stephen Rosen, Steven Tuecke The University of Chicago Argonne National Laboratory S. Tuecke, R. Ananthakrishnan, K. Chard, M. Lidman, B. McCollam, S. Rosen, I. Foster, “Globus Auth: A Research Identity and Access Management Platform,” 12th IEEE International Conference on eScience, October 25, 2016.
  • 2. 2
  • 3. Thank you to our sponsors! 3 U . S . D E P A R T M E N T O F ENERGY
  • 4.
  • 5. Researcher initiates transfer request; or requested automatically by script, science gateway Curator reviews and approves; data set published on campus or other system Researcher selects files to share, selects user or group, and sets access permissions Collaborator logs in to access shared files; no local account needed; download via Globus Researcher assembles data set; attaches metadata (Dublin core, domain-specific) Peers, collaborators search and discover datasets; transfer and share using Globus Publication repository Personal Computer • Only Web browser required • Use any storage system • Access using any credential 5 1 3 Share Publish Discover 5 6 6 7 8 Compute facilityGlobus transfers files reliably, securely 2 Transfer Sequencing center Globus controls access to shared files on existing storage; no need to move files to cloud storage! 4 www.globus.org
  • 6. Globus has the best numbers 5 major services 13 national labs 200 PB transferred 10,000 active endpoints 35 billion files processed 10,000 active users 50,000 registered users 99.9% uptime 60+ institutional subscribers 1 PB largest single transfer to date 3 months longest continuously managed transfer 130 federated campus identities
  • 7. Globus as a platform Can we enable researchers to leverage Globus services in their own applications? And, also, extend Globus with other services? How do we empower the research community to create an integrated ecosystem of services and applications? 7
  • 8. Dependent Services (Resource Servers) A world of many services, identities, and more 8 Service (Resource Server) App (Client)User Dependent Services (Resource Servers) Resource server operator Identity providers
  • 9. Dependent Services (Resource Servers) Identity Provider A world of many services, identities, and more 9 Service (Resource Server) Identity Provider App (Client) Dependent Services (Resource Servers) Resource server operator Common practice today: • Services issue identities • Hard to use external identities • Username-password authentication • Expensive, insecure, non-interoperable • Poor or no treatment of delegation User
  • 10. Dependent Services (Resource Servers) Identity Provider A world of many services, identities, and more 10 Service (Resource Server) Identity Provider App (Client) Dependent Services (Resource Servers) Resource server operator We need new approaches: • Slash costs of developing and operating secure services • Enhance security in complex, rapidly changing world • Enable interoperability among services User
  • 11. The authentication and authorization challenge We need to: • Provide login to apps – Web, mobile, desktop, command line • Protect all REST API communications – App  Globus service – App  non-Globus service – Service  service 11 While: • Not introducing more identities • Providing least privileges security model • Being agnostic to programming language and framework • Being web friendly • Making it easy for users and developers • Following security best practices
  • 12. Abbreviated historical perspectives • Kerberos • Grid Security Infrastructure, Intl Grid Trust Federation – Secure authentication, multiple IDPs, delegation • SAML, InCommon, etc. – Identity management federation, integration with campuses • Web security infrastructure: OAuth2, OIDC, etc. – OIDC for retrieving user identity and attributes from IDPs – OAuth2 defines an authorization service – We integrate, extend to handle delegation, and apply 12
  • 13. Globus Auth • Foundational identity and access management (IAM) platform service • Simplifies creation and integration of advanced apps and services • Brokers authentication and authorization interactions between: – End users – Identity providers: InCommon, XSEDE, Google, portals – Services: resource servers with REST APIs – Apps: web, mobile, desktop, command line clients – Services acting as clients to other services 13
  • 14. Based on widely used web standards • OAuth 2.0 Authorization Framework (“OAuth2”) • OpenID Connect Core 1.0 (“OIDC”) • Allows use of standard OAuth2 and OIDC libraries – E.g., Google OAuth Client Libraries (Java, Python, etc.), Apache mod_auth_openidc 14
  • 15. Globus account • A Globus account is a set of identities – A primary identity o Identity can be primary of only one account – One or more linked identities o Identity can (currently) be linked to only one account • Account does not have own identifier – Account is uniquely identified using its primary identity 15
  • 16. Globus Auth integration models: (1) Client credentials grant 16 Third-Party Service (Client) 1. Authenticate (credentials) Globus Auth (Authorization Server) 2. Access Tokens
  • 17. Globus Auth integration models: (2) Authentication grant with delegation 17 Globus Transfer (Resource Server) Third-Party Service (Client) 2. Redirect (Authenticate) 4. Auth Code 5. Exchange Code 6. Access Tokens External Service 3.Authenticate Globus Auth (Authorization Server)
  • 18. Globus Auth integration models: (3) Native app grant 18 Native App 4. Auth Code 3.Authenticate 6. Exchange Code 7. Access Tokens Globus Auth (Authorization Server)
  • 19. Globus Auth interactions 19 Service (Resource Server) Identity Provider Authorization Server (Globus Auth) App (Client) User* HTTPS/REST call Login * “Resource Owner” in OAuth2 terminology
  • 20. Globus Auth interactions 20 Service (Resource Server) Identity Provider • For a set of scopes – Login: openid, email, profile – HTTPS/REST APIs • User selects identity provider Authorization Server (Globus Auth) App (Client) 1) Request authorization User HTTPS/REST call Login
  • 21. Globus Auth interactions 21 Service (Resource Server) Identity Provider • Using existing identities – E.g., XSEDE, University (via InCommon), Google, web app • User can link multiple identities into a single Globus Account • No Globus username (Globus ID) required • Globus Auth handles naming details, e.g., ePPN vs ePTID Authorization Server (Globus Auth) App (Client) 1) Request authorization 2) Authenticate resource owner User HTTPS/REST call Login
  • 22. Globus Auth interactions 22 Service (Resource Server) Identity Provider • Resource is provided by a resource server • Limited by a scope consent Authorization Server (Globus Auth) App (Client) 1) Request authorization 2) Authenticate resource owner 3) Obtain authorization (consent) for client to access a resource User HTTPS/REST call Login
  • 23. Globus Auth interactions 23 Service (Resource Server) Identity Provider App (Client) • Some grant types issue authorization code, which client exchanges for access token • Access token is opaque to client • May include a refresh token, for offline access access_token Authorization Server (Globus Auth) 1) Request authorization 2) Authenticate resource owner 3) Obtain authorization (consent) for client to access a resource 4) Issue OAuth2 access_token to client User HTTPS/REST call Login
  • 24. Globus Auth interactions 24 Service (Resource Server) Identity Provider App (Client) JWT id_token: • sub: Globus Auth identity id • iss: https://auth.globus.org • name: full name • preferred_username: e.g., tuecke@uchicago.edu • email: email contact • other standard OIDC claims id_token Authorization Server (Globus Auth) 1) Request authorization 2) Authenticate resource owner 3) Obtain authorization (consent) for client to access a resource 4) Issue OAuth2 access_token to client 5) May issue OIDC id_token to client with resource owner identity User HTTPS/REST call Login
  • 25. Globus Auth interactions 25 Service (Resource Server) Authorization Server (Globus Auth) Identity Provider App (Client) Authorization: Bearer <access_token> 1) Request authorization 2) Authenticate resource owner 3) Obtain authorization (consent) for client to access a resource 4) Issue OAuth2 access_token to client 5) May issue OIDC id_token to client with resource owner identity 6) HTTPS/REST call with access_token User HTTPS/REST call Login
  • 26. Globus Auth interactions 26 Authorization Server (Globus Auth) Identity Provider App (Client) RFC 7662: OAuth 2.0 Token Introspection response: • active: true or false • client_id • scope • sub: Globus Auth identity id • username: user@myu.edu • identity_set: linked identities • email • name • other standard claims access_token Service (Resource Server) 1) Request authorization 2) Authenticate resource owner 3) Obtain authorization (consent) for client to access a resource 4) Issue OAuth2 access_token to client 5) May issue OIDC id_token to client with resource owner identity 6) HTTPS/REST call with access_token 7) Validate access_token for resource server, obtain additional info User HTTPS/REST call Login
  • 27. Globus Auth interactions 27 • Allows resource server to act as client to other resource servers • Service uses request access_token to get a dependent access_token for each dependent service • Service acts as client to its dependent services Service (Resource Server) Authorization Server (Globus Auth) Identity Provider App (Client) HTTPS/REST call User Dependent Services (Resource Servers) 1) Request authorization 2) Authenticate resource owner 3) Obtain authorization (consent) for client to access a resource 4) Issue OAuth2 access_token to client 5) May issue OIDC id_token to client with resource owner identity 6) HTTPS/REST call with access_token 7) Validate access_token for resource server, obtain additional info 8) Issue dependent access tokens to resource server Login Dependent access_token
  • 28. Log in with Globus • Use existing identities (Globus Auth acts as broker) • Then enable access to community services
  • 29. Simple APIs enable integration into apps • Identity and access management PaaS docs.globus.org/api/auth • Works with any compliant OAuth2/OIDC client – We recommend Google OAuth client libraries – Python, Java, PHP, Javascript, .NET developers.google.com/api-client/library • Python client library for Globus Auth REST API globus.github.io/globus-sdk-python 29 (and Globus transfer API)
  • 30. Creating a REST API service with Globus Auth • Outsource all identity management and authentication – Federated identity with InCommon, Google, etc. • Outsource your REST API security – Consent, token issuance, validation, revocation – You provide service-specific authorization • Apps use your service like all others – It is standard OAuth2 and OIDC • Your service can seamlessly leverage other services • Other services can leverage your service • Implement your service using any language and framework 30
  • 31. Typical service interactions • Service receives HTTPS request with header – Authorization: Bearer <request-access-token> • Introspects the request access token – Auth API: POST /v2/oauth2/token/introspect – Authorized by client_id and client_secret – Returns: validity, client, scope, effective_identity, identities_set • Verifies token info • Authorizes request • If service needs to act as client to other services: – Calls Globus Auth Dependent Token Grant o Returns a token for each dependent service – Uses correct dependent token for downstream REST call • Responds to client HTTPS request as appropriate 31
  • 32. 32
  • 33. You can find sample code on GitHub https://github.com/globus/globus-sample-data-portal.git 33
  • 34. Desktop Globus Cloud Firewall Science DMZ Prototypical research data portal 34 Globus Transfer Service Portal Web Server (Client) Globus AuthBrowser User’s Endpoint (optional) Portal Endpoint Other Endpoints HTTPS GridFTP REST Other Services Globus Web Helper Pages Identity Providers Identity Providers Identity Provider Login
  • 35. Desktop Globus Cloud Firewall Science DMZ Role of Globus Auth 35 Globus Transfer Service Portal Web Server (Client) Globus AuthBrowser User’s Endpoint (optional) Portal Endpoint Other Endpoints HTTPS GridFTP REST Other Services Globus Web Helper Pages Identity Providers Identity Providers Identity Provider Login
  • 36. Desktop Globus Cloud Firewall Science DMZ Role of Globus Transfer and Sharing 36 Globus Transfer Service Portal Web Server (Client) Globus AuthBrowser User’s Endpoint (optional) Portal Endpoint Other Endpoints HTTPS GridFTP REST Other Services Globus Web Helper Pages Identity Providers Identity Providers Identity Provider Login
  • 37. Desktop Globus Cloud Firewall Science DMZ Role of Globus web helper pages 37 Globus Transfer Service Portal Web Server (Client) Globus AuthBrowser User’s Endpoint (optional) Portal Endpoint Other Endpoints HTTPS GridFTP REST Other Services Globus Web Helper Pages Identity Providers Identity Providers Identity Provider Login
  • 38. Globus web helper pages Globus-provided web pages designed for use by your web apps. See https://docs.globus.org/api/helper-pages/ – Browse Endpoint – Select Group – Logout 38
  • 39. User identity vs. portal identity User logging into portal results in portal having user’s identity and access token – Used to make requests on the user’s behalf – Use OAuth2 Authorization Code Grant – User authenticates using their portal identity Portal may also need its own identity – Access and refresh tokens for this identity – Used to make requests on its own behalf – Use OAuth2 Client Credentials Grant to authenticate the portal client identity and secret 39
  • 40. Desktop Globus Cloud Firewall Science DMZ Prototypical research data portal 40 Globus Transfer Service Portal Web Server (Client) Globus AuthBrowser User’s Endpoint (optional) Portal Endpoint Other Endpoints HTTPS GridFTP REST Other Services Globus Web Helper Pages Identity Providers Identity Providers Identity Provider Login
  • 41. Adding portal as identity provider If your portal has identities already: • Deploy OIDC server in front of it – Globus Python OIDC (coming soon) – Any standard OIDC server should work – Requires claim that can map to username – Optional claims: name, email, organization • Can register apps and services with an effective identity policy – Requires account to have identity from your identity provider when logging into your app 41
  • 42. Desktop Globus Cloud Firewall Science DMZ Prototypical research data portal 42 Globus Transfer Service Portal Web Server (Client) Globus AuthBrowser User’s Endpoint (optional) Portal Endpoint Other Endpoints HTTPS GridFTP REST Other Services Globus Web Helper Pages Identity Providers Identity Providers Identity Provider Login
  • 43. HTTPS to Endpoints • Each endpoint HTTPS server is a Globus Auth service (resource server) – HTTPS requests authorized via Globus Auth issued OAuth2 access tokens • Web page can link to file on server – Browser GET will cause HTTPS server to authorize request via Globus Auth (note SSO) • Portal (client) can request scope for endpoint resource server – Use access token in requests 43
  • 44. Summary Globus Auth makes it easy to: • Add user login to your applications • Integrate with Globus, XSEDE, and other services • Add OAuth2 support to your service’s REST API • Create services that leverage other services Building on this foundation, we can together create an integrated ecosystem of research services and applications44 Learn more at globus.org!

Editor's Notes

  1. Talk about the Globus as being part of UChicago + ANL, as well as other context setting about how this work came about and is funded
  2. KC – its probably worth saying that services increasingly want to support external identities.. But there are lots of different implementations, so supporting a range of IDPs is challenging.
  3. KC – While following best practices security implementations, being able to audit usage, identity management workflows (e.g., password reset etc.)
  4. OAuth2: Protect the user/resource owner’s long term credentials while still delegating access Extensions:
  5. Getting user authenticated Consented so users are consenting to what tokens are being used for Issuing tokens Verifying tokens Globus Auth is a Foundational service for all of these In some sense it’s an IdP but think of it more as an Identity Broker Mission is providing a platform for app/service developers to integrated these capabilities so they can access the growing system of IdPs with just a bit of standard code
  6. Based on common web standards Means you can use all exiting libraries – we don’t ship a Globus Auth client library; go use the Google library or any other that you like.
  7. Tie this back to Globus Web app by showing them the Globus web UI for Account Google Docs as analogue I share with your Google identity and you have immediate access to it (I basically set an ACL on it) What about when I don’t know which Google account to share with?? Challenge is to get Google into the right context (i.e. authenticate with the right account and then get the sharer to confirm access for that account) Linked identity set resolves this issue – share with one of my identities and I can access the share if I log in with another identity No UUID for an account since You will never do things at the account level Actions use identities, not accounts
  8. KC – I wonder if it would be useful to start with the three interaction models from the poster? And then drill down into this auth grant model? In OAuth2: APP = Client and SERVICE = Resource Server Trying to provide login information and get tokens to protect comms with the REST API
  9. First step is redirect to Globus to get a set of scopes Scopes are a fundamental concept - e.g. scope can be “I want login information” Talking to services: talk to a scope; service can have multiple scopes Example: Groups service (API coming soon) 1 scope is full management scope 2nd scope is things like “tell me groups that user belongs to”; this is a key action for many other actions in the Globus service So an app only needs to use 2nd scope
  10. “Resource Owner” in this case is the user To do this we will redirect to an IdP
  11. Then after authentication from IdP Globus gets consent for whatever the app needs to do on your behalf
  12. Access token is the thing that allows the client to protect this REST communication It’s actually a set of access tokens, one for each scope - limits effect of compromise
  13. May also get an ID token if the client asked for OpenID Connect scopes (openid, email, profile)
  14. Now the client can use the access token by setting an HTTP header with the appropriate token Everything up to this point is standard OAuth2 BUT, this is where we go a step further...
  15. You can build your own services that use these same mechanisms to authorize access for your own app Extension (new RFC) allows the Service to introspect the token “is the token valid”? “who is it for”? “who am I talking to”?, etc.
  16. Can go a step further Suppose the service wants to call another service We call that a dependent service E.g. service wants to call Globus Transfer on behalf of the user Same token will not work – cannot be used anywhere else outside of the service We have this extension, specific to Globus Auth Uses access token to call Globus Auth and request dependent access tokens for my downstream dependent scopes For example transfer can get the scope for Groups and check if user is member of a group before taking some action like allowing access to a shared endpoint
  17. Show the Docs site
  18. Add your service to the science cyberinfrastructure platform
  19. KC – will you have time for this amount of RDP detail?
  20. KC Points to make: Identity broker, identity federation (account linking), delegated access, standard protocols