Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central...

93
Identity & Authentication Scott Kirkland UC DAVIS

Transcript of Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central...

Page 1: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

Identity & Authentication

Scott KirklandUC DAVIS

Page 2: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.
Page 3: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.
Page 4: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.
Page 5: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.
Page 6: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.
Page 7: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.
Page 8: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.
Page 9: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

Authentication @ the UCs

● CAS

● Shibboleth

● OAuth

● OpenID Connect

● SAML

● Federation

● JWTs

● Claims

Page 10: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

Authentication @ the UCs

● CAS

● Shibboleth

● OAuth / OpenID Connect

Page 11: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

Central Authentication Service

● Developed at Yale

● Now supported by Apero Foundation

● Used at many UC Campuses

Page 12: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

Let’s talk CAS Protocol

● Fairly simple™ so we’ll start here

● Web-based login flow

● Includes backchannel validation

Page 13: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

MyApp Client CASAdmin Page Please

Client: https://myapp.ucdavis.edu/admin

Page 14: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

MyApp Client CASAdmin Page Please

Redirect to CAS

Server: https://cas.ucdavis.edu/cas/login?service=[myappurl]&state=[privatestate]

Request CAS

Page 15: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

MyApp Client CASAdmin Page Please

Redirect to CAS

Server: https://cas.ucdavis.edu/cas/login?service=[myappurl]&state=[privatestate]

Request CAS

Authenticate CAS

Page 16: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.
Page 17: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

MyApp Client CASAdmin Page Please

Redirect to CAS

CAS: https://myapp.ucdavis.edu/login?state=[privatestate]&ticket=[casticket]

Request CAS

Authenticate CAS

Redirect to MyAppRequest MyApp

Page 18: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

MyApp Client CASAdmin Page Please

Redirect to CAS

MyApp: https://cas.ucdavis.edu/cas/validate?service=[myappurl]&ticket=[casticket]

Request CAS

Authenticate CAS

Redirect to MyAppRequest MyApp

Backchannel Validation

Page 19: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

MyApp Client CASAdmin Page Please

Redirect to CAS

MyApp: Valid “yes + kerberos” response from backchannel

Request CAS

Authenticate CAS

Redirect to MyAppRequest MyApp

Backchannel Validation

Validation Pass

Page 20: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

MyApp Client CASAdmin Page Please

Redirect to CAS

MyApp: https://myapp.ucdavis.edu/admin

Request CAS

Authenticate CAS

Redirect to MyAppRequest MyApp

Backchannel Validation

Validation Pass

Admin Page OK

Page 21: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

CAS Timeline (DEMO)

Page 22: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

Shibboleth

● Single Sign-On Platform

● Created & Supported by Internet2

● Used by every UC Campus

○ And 500+ other Educational & Research Institutions

Page 23: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

SAML

● Shibboleth software implements Security Assertion

Markup Language (SAML)

● Provides a federated single sign-on and attribute

exchange framework

Page 24: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

SAML

● SAML is an XML based standard, including an:

○ XML language (tags)

○ XML message protocol.

● SAML 2.0, the current standard, was created in 2005.

Page 25: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

Concepts

Identity Provider (IdP)

● Authentication Authority

● User-identity source

● Centrally Installed

Service Provider (SP)

● Authentication Client

● Discovers IdP

● Web Server Installed

Page 26: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

Authentication Flow

● Web based login flow

● Includes attribute release

● No backchannel validation needed

Page 27: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

Step 0

● Need to install Service Provider (SP)

● Generally installed on web server

○ Works with IIS, Apache, Nginx and more

● Configure with shibboleth2.xml file

Page 28: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

SP Config

● SP ID (URL)

● IdP location info

● Supported Protocols

● Signing Certificates/Keys

● User Attributes Desired

Page 29: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

Authentication Flow

Page 30: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

SP Client IdPAdmin Page Please

Client: https://myapp.ucdavis.edu/admin

Page 31: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

SP Client IdPAdmin Page Please

SP: https://????

Discover IdP

Page 32: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

SP Client IdPAdmin Page Please

HTML Form to IdP

SP: https://shibboleth.ucdavis.edu/idp/profile/SAML2/POST/SSO

POST to IdP

Discover IdP

Page 33: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

SP Client IdPAdmin Page Please

Redirect to IdP

SP: https://shibboleth.ucdavis.edu/idp/profile/SAML2/POST/SSO

POST to IdP

Discover IdP

Authenticate & Identify

Page 34: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.
Page 35: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

SP Client IdPAdmin Page Please

Redirect to IdP

IdP: https://myapp.ucdavis.edu/login

POST to IdP

Discover IdP

Authenticate & Identify

Respond with HTML Form

POST to SP

Page 36: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

SP Client IdPAdmin Page Please

Redirect to IdP

SP: Hi Scott! Here’s https://myapp.ucdavis.edu/admin

POST to IdP

Discover IdP

Authenticate & Identify

Respond with HTML Form

POST to SP

Admin Page OK

Page 37: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

Shibboleth Timeline (DEMO)

Page 38: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

Federation & Discovery

Page 39: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

SP Client IdPAdmin Page Please

SP: https://????

Discover IdP

Page 40: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

Federation & Discovery

<SSO entityID="https://shibboleth.ucdavis.edu/idp">SAML2 SAML1</SSO>

Page 41: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

Federation & Discovery

<SSO discoveryProtocol="SAMLDS" discoveryURL="https://myapp-dev.ucdavis.edu/shibboleth-ds/index.html">SAML2 SAML1</SSO>

Page 42: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

Federation & Discovery

<SSO discoveryProtocol="SAMLDS" discoveryURL="https://wayf.incommonfederation.org/DS/WAYF">SAML2 SAML1</SSO>

Page 43: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

InCommon

https://wayf.incommonfederation.org/DS/WAYF

● Hosts secure metadata for Education & Research Institutions

● Includes a directory, key & certificates, and technical guidelines

● Operated by Internet2

Page 44: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

InCommon

● Identifiers

○ eduPersonUniqueId

○ eduPersonPrincipalName

● Mail attribute

○ mail

● Authorization attributes

○ eduPersonScopedAffiliation

○ eduPersonEntitlement

Page 45: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

Review

● Web-based Authentication Flow

● Available on every UC Campus

● Implements SAML

○ Easy interop with external vendors

Page 46: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

The Twitter Problem

● Authentication is great, but how we do distributed

Authorization?

● Can we have a simpler protocol?

● Also I hear JSON is cool let’s use that

Page 47: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

OAuth

● Developed by Twitter & Google & others

● Draft 2007, Published 2010

● Popular, but quickly surpassed by OAuth 2.0 in 2012

Page 48: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

OAuth 2.0

● Supports many different authorization flows.

● Works with mobile apps, SPAs, IoT.

● Based on HTTP, uses TLS for security/encryption.

● Used at every major tech company as primary API

auth.

Page 49: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

Wait, I want to do Authentication!

Page 50: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

OpenID Connect

● Simple, thin layer on top of OAuth 2.0

● Goal is Single Sign-on across many sites (SSO)

● Widely used for “Social Login”

Page 51: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.
Page 52: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.
Page 53: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

OpenID Connect Flow

● Web based login flow

● Client approved attribute grant

● Optional backchannel validation

Page 54: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

MyApp Client GoogleAdmin Page Please

Client: https://myapp.ucdavis.edu/admin

Page 55: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

MyApp Client GoogleAdmin Page Please

Client: https://accounts.google.com/o/oauth2/v2/auth?{params}

Redirect Auth Login Request Auth Login

Page 56: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

https://accounts.google.com/o/oauth2/v2/auth?{params}

Options

● request_type

● client_id

● scope

● state

● request_uri (not required)

Page 57: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

MyApp Client GoogleAdmin Page Please

Client: https://accounts.google.com/o/oauth2/v2/auth?{params}

Redirect Auth Login Request Auth Login

Page 58: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.
Page 59: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.
Page 60: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

MyApp Client GoogleAdmin Page Please

Client: https://myapp.ucdavis.edu/oauth?code=[auth_code]&state=[mystate]

Redirect Auth Login Request Auth Login

Redirect return_uriRequest redirect_uri

Page 61: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

MyApp Client GoogleAdmin Page Please

MyApp: https://www.googleapis.com/oauth2/v4/token?code=[auth_code]&client_id=[cid]

Redirect Auth Login Request Auth Login

Redirect return_uriRequest redirect_uri

POST Exchange Auth Code

Page 62: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

MyApp Client GoogleAdmin Page Please

MyApp: https://myapp.ucdavis.edu/oauth

Redirect Auth Login Request Auth Login

Redirect return_uriRequest redirect_uri

POST Exchange Auth Code

POST ID Token

Page 63: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

{"token_type": "Bearer","expires_in": 3600,"id_token":

"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IlNjb3R0IEtpcmtsYW5kIiwiZW1haWwiOiJzcmtpcmtsYW5kQHVjZGF2aXMuZWR1IiwiYWZmaWxpYXRpb24iOiJTdGFmZiIsImF3ZXNvbWVuZXNzIjoxMSwiaWF0IjoxNTE2MjM5MDIyfQ.X5ReoSImK8rbQj4-FxgyV-I6CXlnKMU1Gl2zDZdNCCE"}

Page 64: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

JWT:Industry standard RFC 7519

method for representing claims securely between two parties.

Page 65: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

JWT

● Base64 Encoded

● 3 Parts, Separated by periods “.”

○ Header

○ Payload

○ Signature

Page 66: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.
Page 67: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.
Page 68: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.
Page 69: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.
Page 70: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

JWT

● Essentially Bearer Tokens, don’t lose them!

● Client sends along with authenticated requests

● Easy to self-generate

Page 71: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

Self Generated JWT

Page 72: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

Method GET

URL https://myapp.ucdavis.edu/admin/edit/1

Cookie Authorization: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IlNjb3R0IEtpcmtsYW5kIiwiZW1haWwiOiJzcmtpcmtsYW5kQHVjZGF2aXMuZWR1IiwiYWZmaWxpYXRpb24iOiJTdGFmZiIsImF3ZXNvbWVuZXNzIjoxMSwiaWF0IjoxNTE2MjM5MDIyfQ.X5ReoSImK8rbQj4-FxgyV-I6CXlnKMU1Gl2zDZdNCCE

Page 73: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

OIDC Flow (Demo)

Page 74: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

Other Auth Providers

● SAML & OAuth/OIDC work with almost all

authentication providers.

● Including Azure AD, ADFS, AWS SSO, Okta, Auth0, etc.

Page 75: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

Shibboleth / SAML

● Web-based flow

OAuth / OIDC

● Web-based flow

Page 76: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

Shibboleth / SAML

● Server Attribute Release

OAuth / OIDC

● Client Attribute Grant

Page 77: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

Shibboleth / SAML

● XML Based Protocol

OAuth / OIDC

● JSON Based Protocol

Page 78: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

Shibboleth / SAML

● Internal Cryptography

OAuth / OIDC

● Uses HTTPS/TLS

Page 79: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

Shibboleth / SAML

● Web Server Install

OAuth / OIDC

● Mobile, Web, SPA, IoT

flows

Page 80: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

Thanks!

Scott KirklandUC DAVIS

Page 81: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

Scott Kirkland@srkirkland (UCTech)github.com/srkirkland

[email protected]

Page 82: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.
Page 83: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

OAuth 2.0 Authorization Flow

Page 84: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

MyApp Client Box.comAuthorize My Account

Client: Authorize MyApp to use my Box Account

Page 85: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

MyApp Client Box.comAuthorize My Account

Client: https://account.box.com/api/oauth2/authorize?{options}

Redirect Auth Login Request Auth Login

Page 86: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

https://.../authorize?{options}

Options

● request_type

● client_id

● scope

● state

● request_uri (not required)

Page 87: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.
Page 88: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.
Page 89: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

MyApp Client Box.comAuthorize My Account

Client: https://myapp.ucdavis.edu/oauth?code=[auth_code]&state=[mystate]

Redirect Auth Login Request Auth Login

Redirect return_uriRequest redirect_uri

Page 90: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

MyApp Client Box.comAuthorize My Account

MyApp: https://account.box.com/api/oauth2/token?code=[auth_code]&client_id=[cid]

Redirect Auth Login Request Auth Login

Redirect return_uriRequest redirect_uri

Exchange Auth Code

Page 91: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

MyApp Client Box.comAuthorize My Account

MyApp: https://myapp.ucdavis.edu/oauth#access_token=[token]&state=[mystate]

Redirect Auth Login Request Auth Login

Redirect return_uriRequest redirect_uri

Exchange Auth Code

GET Access Token

Page 92: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

Method GET

URL https://api.box.com/2.0/folders/0/items

Header Authorization: Bearer XueCAbegJQrp6fYp593jetd7ECnVCakj

Page 93: Authentication Identity · 2020. 6. 10. · Shibboleth OAuth / OpenID Connect. Central Authentication Service Developed at Yale Now supported by Apero Foundation Used at many UC Campuses.

OAuth Review

● Only handles Authorization

● Access Token is bearer token

● Client “approved” scope release