SlideShare a Scribd company logo
Smartphone Native Application OP
            OpenID Connect application URL scheme binding

                              @_nat
                              @eijima



IdCon #11   IDENTITY CONFERENCE



                       February 3, 2012
Entities

                  User Info
RP(Web Application)
(Client)        Request Authorization
                                        OP(Smartphone Native Application)
                                        (Authorization Server, Resource Server)

                                             Access Token
                                                              Authenticate User


                                        User-Agent(Smartphone Native Application)



                                                             Request Service

                                        Smartphone
                                                                                    End-User
                                                                                    (Resource Owner)
Application URL Scheme
• We can bind a Smartphone (iOS SDK, Android
  SDK) native application to a custom URL
  scheme.
• That scheme can be used to launch the
  application from either a browser or from
  another application on the Smartphone.
User Experience – Client(RP) Registration -




1. User accesses RP by User-Agent   2. OP app starts and returns “not registered”   4. OP application starts       5. OP application returns
  Tap “Kantan-Login” button         error via User-Agent.                             OP asks User for the consent   successful response via
  * RP requests authorization       3. RP requests client registration via User-    of RP registration             User-Agent
                                    Agent                                                                          6. RP re-requests
                                                                                                                   authorization
User Experience – Authorization & UserInfo Request -




1. User accesses RP by User-Agent   2. OP app asks User for the      3. OP app returns Access Token   5. RP receives the Access Token
  Tap “Kantan-Login” button         consent of PII transmission to   to RP via User-Agent               User logs in RP
                                    RP                               4. RP sends Access Token to RP
                                                                     and requests OP to transmit
                                                                     UserInfo via User-Agent.
Protocol Design
•   Only support Implicit Grant
     –   Client authentication
            • client_id == FQDN of the Client (RP)
            • client_secret is not used. The implicit grant type does not include client authentication.
•   Request from RP to OP
     –   End point(request) URI := openid://path
            • e.g.) openid://host/path?query
     –   Request parameters
            • Smartphone applications can receive only request URL string from RP via User-agent.
     –   All requests require a redirect_uri (or response_uri) parameter. These URI must be HTTPS.
            • All requests must be sent by one of the following three methods. (like an authorization request of the OpenID Connect
                Standard)
                  –   Simple Request Method
                  –   Request Parameter Method
                  –   Request File Method
•   Response from OP to RP
     –   OP send response to redirect_uri(or response_uri) by http GET method via User-agent. Both successful and error response must be
         fragment-encoded.
     –   RP returns a page including a javascript code. The javascript code read the fragment and post the fragment to RP.
•   Open Issue
     –   How to generate user_id of the ID Token? The user_id must be unique and never reassigned identifier among all OP apps.
Authorization Request & Response Sequence
       •   http://www.websequencediagrams.com/?lz=cGFydGljaXBhbn
           QgRW5kVXNlciBhcyB1CgANDFJQXG5DbGllbnQgYXMgcnAA
           EA1Vc2VyQWcAFQd1YQAsDU9QXG5TbWFydHBob25lQXB
           wIGFzIG9wCgpub3RlIGxlZnQgb2YgcnA6IFJlcXVlc3QgRmlsZ
           SBNZXRob2QKCnJwLT51YTogcgAWB0F1dGhvcml6YXRpb2
           5cbm9wZW5pZDovL2F1dGg_XG4AIAdfdHlwZT10b2tlblxuJm
           MAgTMFX2lkPXJwLmNvbVxuJnJlZGlyZWN0X3VyaT1odHRw
           czovLwAYBgBGBS9jYWxsYmFja1xuJnNjb3BlPQBkBlxuJm5v
           bmNlPW4tMFM2X1d6QTJNagBLBQByBgA3GACBOAcKCnVh
           LT5vcACBORcKCm9wLT5ycDogZmV0Y2gAgWwJZmlsZQpyc
           C0ALQ4AEQUALQV1OiBhdXRoZW50aWNhdGUgJgCCJgljb2
           5zZW50CnUANQcACAgAMQZhOiBBY2Nlc3MgVG9rZW4gaW
           4gZnJhZ21lbgCDDwYAghoLXG4AggocI1xuYQBEBV8Agm8F
           PWpIa1dFLi4uNUtGMFlcbiYAgwUFAIMPBkJlYXJlclxuAIIFBnJ
           wOiAAghoWAIMaBgCDfAUAg3wGc2NyaXAAgjsHdWE6IHBhc
           nNlAIEmCmJ5ABUNAFEIIHBvc3QAgVgOdG8gUlAAJQsAWQ
           k&s=modern-blue
Authorization Request & Response
         Steps – Case: Request File Method -
1. RP(Client) redirects the User-Agent on the End-User’s smartphone to Authorization Endpoint with
   “request_uri” parameter.
    –   Authorization Endpoint URI is Application URL scheme:”openid”
        openid://auth?request_uri=https://rp.com/auth/request
2. OP application on the End-User’s smartphone starts via Authorization Endpoint(= Application URL
   scheme: “openid”)
3. OP application fetches the Request File from “request_uri”
4. RP returns the Request File
5. OP application authenticates the End-User and obtains the End-User Consent/Authorization.
6. OP returns a response to the RP’s “redirect_uri” via User-Agent. Response parameters must be
   fragment-encoded.
    –   https://rp.com/auth/callback#access_token=jHkWEdUXMU1BwAsC4vtUsZwnNvTIxEl0z9K3vx5KF0Y
        &token_type=Bearer &id_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9zZ
        XJ2ZXIuZXhhbXBsZS5jb20iLCJ1c2VyX2lkIjoiMjQ4Mjg5NzYxMDAxIiwiYXVkIjoiaHR0c
        DpcL1wvY2xpZW50LmV4YW1wbGUuY29tIiwiZXhwIjoxMzExMjgxOTcwfQ.eDesUD0vzDH3T1
        G3liaTNOrfaeWYjuRCEPNXVtaazNQ &state=af0ifjsldkj
7. RP returns the script to the User-Agent.
8. The script runs in the User-Agent and posts the OP’s response(access_token, id_token etc.) to the RP.
UserInfo Request & Response Sequence
      •   http://www.websequencediagrams.com/?lz=cGFydGljaXBhbn
          QgUlBcbkNsaWVudCBhcyBycAoAEQxVc2VyQWcAFQd1YQA
          PDU9QXG5TbWFydHBob25lQXBwIGFzIG9wCgpub3RlIGxlZn
          Qgb2YgcnA6IFJlcXVlc3QgRmlsZSBNZXRob2QKCnJwLT51YT
          ogcgAWB1VzZXJJbmZvIHcvAAwIX3VyaSBcbm9wZW5pZDov
          L3VzZXJpbmZvPwAVCz1odHRwczovL3JwLmNvbQAbCS8AU
          QcKCnVhLT5vcAAGY29wLT5ycDogZmV0Y2gAgU8JZmlsZQp
          ycC0Adw5maWxlXG574oCcYWNjZXNzX3Rva2Vu4oCdOiAiU
          2xBVjMyaGtLRyIsIOKAnHNjaGVtYQAXBeKAnACCCAbigJ0A
          FwVyZXNwb25zZV91cmkAGggAgXgaACYGfQCBJQZvcDogZ
          W5jcnlwAIJvDlJQJ3MgcHVibGljIGtleQCBUgZ1YToAgxgKaW4
          gZnJhZ21lbgCDXQYAeQtcbgBeICNKV1RfZW5jb2RlZF8Ag20I
          AIMgBnJwOiAAgR0gAIQ0BQCENAZzY3JpcACDWgd1YTogc
          GFyc2UAgRAWYnkAIQ0AYQggcG8AhG4MABwKAFsJAIUiBX
          JwOiBkZQCCHA4&s=modern-blue
UserInfo Request & Response Messages
•   UserInfo Request parameters
     –   The following parameters are defined in addition to what ware defined by the OpenID Connect Messages 1.0.
           • response_uri
                 –   A response URI where the response will be sent.
           • request
                 –   A JWT encoded Request Object. For Request Parameter Method.
           • request_uri
                 –   The URI of the Request File. For Request File Method.

•   UserInfo Request Object
     –   The Request Object must be JWT encoded. It may be JWS signed and/or JWE encrypted.
     –   Sample JSON
           • *“access_token”: "SlAV32hkKG", “schema”: “openid”, “response_uri”:
              “https://example.com/userinfo/response”+
•   UserInfo Response
     –   The response must be JWT that is JWS signed with OP’s key and JWE encrypted with RP’s key.
     –   Error response parameters
           • …
•   Security considerations
     –   Because of the security weaknesses associated with the URI method (see Section 4), including the high likelihood
         that the URL containing the access token will be logged.
         The Client SHOULD construct the request using the Request Parameter Method with JWE encrypted or the
         Request File Method.
Dynamic Client Registration Request & Response Sequence

          •   http://www.websequencediagrams.com/?lz=cGFydGljaXBhb
              nQgRW5kVXNlciBhcyB1CgANDFJQXG5DTGllbnQgYXMgcn
              AAEA1Vc2VyQWcAFQd1YQAsDU9QXG5TbWFydHBob25l
              QXBwIGFzIG9wCgpub3RlIGxlZnQgb2YgdTogUmVxdWVzd
              CBGaWxlIE1ldGhvZApycC0-
              dWE6IHIAFQdyZWdpc3Qgdy8ACghfdXJpXG5vcGVuaWQ6L
              y8AGgY_ABILPWh0dHA6Ly9ycC5jb20AGgcvAEkHCnVhLT5
              vcABKFnNwb25zZV91cmwAJjtvcC0-cnA6IGZldGNoAIE-
              CWZpbGUKcnAtAG8OZmlsZSAobXVzdCBiZSBKV1Mgc2lnb
              mVkIEpXVClcbnsidHlwZSI6ImFzc29jaWF0ZSIsXG4gInJlZGl
              yZWMAggYFcyI6Imh0dHBzAIFoCmNhbGxiYWNrIixcbiJqd2tf
              dXJsABQScHVibGljX2tleS5qdwAmBgCBdwtpAEUSAIJACQ
              CCIQYifQCBZgVvcDogdmVyaWZ5IEpXUwCBeQV1AIM0Cm
              NvbnNlbnQKdQCBcgcACAgAMggAg1cHUlAAMwYAg3MFAI
              MABiBjbGllbnRfaWQgaW4gZnJhZ21lbnRcbgB3HiMALQk9A
              IN5BgCDawVycDogAIEvHgCDFQZ1YTogc2NyaXAAhCEGd
              WE6IHBhcnNlAHYJIGJ5ABUMcnA6IHBvc3QAgSELABcKAE
              kJ&s=modern-blue
Dynamic Client Registration Request &
                    Response Messages
•   Dynamic Client Registration Request parameters
     –   The following parameters are defined in addition to what ware defined by the OpenID Connect Dynamic Client Registration 1.0.
     –   response_uri
            • REQUIRED. A response URI where the response will be sent.
     –   request
            • A JWT encoded Request Object. For Request Parameter Method.
     –   request_uri
            • The URI of the Request File. For Request File Method.
•   Dynamic Client Registration Request Object
     –   Request Object must be JWT that is JWS signed with RP’s key.
     –   The JWK which the “jwk_url” parameter in the JSON points must be same as the JWK which the “jku” parameter in the JWS header points.
     –   Sample JSON
           • * “type”: ”client_associate”,
                “redirect_uris”: “https://example.com/callback”,
                “logo_url”: “https://example.com/logo.png”,
                “jwk_url”=“https://example.com/public_key.jwk”,
                “userinfo_encrypted_response_algs”: “RSA1_5 A128CBC”
                “response_uri”: “https://example.com/regist/response” +
•   Dynamic Client Registration Response parameters
     –   client_id == FQDN of the Client (FQDN of “response_uri”?)
     –   client_secret is not used. The implicit grant type does not include client authentication.
     –   Sample response: https://example.com/regist/response#client_id=example.com
•   Open issues
     –   When a different business entity shares the same FQDN(==client_id), e.g. users of same hosting service, one registration makes it unable to
         perform registration of another side.
Open Isuue
    Client Registration Authority – Embedded in OP
                application vs Central RA
• Central Client Registration Authority
   – Advantage
      • Clients(RPs) register their parameters to the Central Client Registration
        Authority.
        There is no necessity of changing current draft of the OpenID Connect
        Dynamic Client Registration specification.
      • There is no restriction in the value of client_id.
      • The End-User does not need to care about the Client Registration.

   – But
      • OP application must query the Central RA to get the registration
         information of Clients(RPs).
      • Must manage the Central RA
IdCon #11   IDENTITY CONFERENCE




                   Thanks!

More Related Content

What's hot

OAuth for your API - The Big Picture
OAuth for your API - The Big PictureOAuth for your API - The Big Picture
OAuth for your API - The Big Picture
Apigee | Google Cloud
 
Implementing OAuth with PHP
Implementing OAuth with PHPImplementing OAuth with PHP
Implementing OAuth with PHP
Lorna Mitchell
 
Client Initiated Backchannel Authentication (CIBA) and Authlete’s Approach
Client Initiated Backchannel Authentication (CIBA) and Authlete’s ApproachClient Initiated Backchannel Authentication (CIBA) and Authlete’s Approach
Client Initiated Backchannel Authentication (CIBA) and Authlete’s Approach
Tatsuo Kudo
 
Demystifying OAuth 2.0
Demystifying OAuth 2.0Demystifying OAuth 2.0
Demystifying OAuth 2.0
Karl McGuinness
 
Securing APIs with OAuth 2.0
Securing APIs with OAuth 2.0Securing APIs with OAuth 2.0
Securing APIs with OAuth 2.0
Kai Hofstetter
 
Full stack security
Full stack securityFull stack security
Full stack security
DPC Consulting Ltd
 
INTERFACE by apidays - The State of OAuth by Aaron Parecki,
INTERFACE by apidays - The State of OAuth by Aaron Parecki,INTERFACE by apidays - The State of OAuth by Aaron Parecki,
INTERFACE by apidays - The State of OAuth by Aaron Parecki,
apidays
 
1000 ways to die in mobile oauth
1000 ways to die in mobile oauth1000 ways to die in mobile oauth
1000 ways to die in mobile oauth
Priyanka Aash
 
Mobile Native OAuth Decision Framework
Mobile Native OAuth Decision FrameworkMobile Native OAuth Decision Framework
Mobile Native OAuth Decision Framework
Paul Madsen
 
Intro to OAuth2 and OpenID Connect
Intro to OAuth2 and OpenID ConnectIntro to OAuth2 and OpenID Connect
Intro to OAuth2 and OpenID Connect
LiamWadman
 
Web API Security
Web API SecurityWeb API Security
Web API Security
Stefaan
 

What's hot (11)

OAuth for your API - The Big Picture
OAuth for your API - The Big PictureOAuth for your API - The Big Picture
OAuth for your API - The Big Picture
 
Implementing OAuth with PHP
Implementing OAuth with PHPImplementing OAuth with PHP
Implementing OAuth with PHP
 
Client Initiated Backchannel Authentication (CIBA) and Authlete’s Approach
Client Initiated Backchannel Authentication (CIBA) and Authlete’s ApproachClient Initiated Backchannel Authentication (CIBA) and Authlete’s Approach
Client Initiated Backchannel Authentication (CIBA) and Authlete’s Approach
 
Demystifying OAuth 2.0
Demystifying OAuth 2.0Demystifying OAuth 2.0
Demystifying OAuth 2.0
 
Securing APIs with OAuth 2.0
Securing APIs with OAuth 2.0Securing APIs with OAuth 2.0
Securing APIs with OAuth 2.0
 
Full stack security
Full stack securityFull stack security
Full stack security
 
INTERFACE by apidays - The State of OAuth by Aaron Parecki,
INTERFACE by apidays - The State of OAuth by Aaron Parecki,INTERFACE by apidays - The State of OAuth by Aaron Parecki,
INTERFACE by apidays - The State of OAuth by Aaron Parecki,
 
1000 ways to die in mobile oauth
1000 ways to die in mobile oauth1000 ways to die in mobile oauth
1000 ways to die in mobile oauth
 
Mobile Native OAuth Decision Framework
Mobile Native OAuth Decision FrameworkMobile Native OAuth Decision Framework
Mobile Native OAuth Decision Framework
 
Intro to OAuth2 and OpenID Connect
Intro to OAuth2 and OpenID ConnectIntro to OAuth2 and OpenID Connect
Intro to OAuth2 and OpenID Connect
 
Web API Security
Web API SecurityWeb API Security
Web API Security
 

Viewers also liked

Open idとcyber空間
Open idとcyber空間Open idとcyber空間
Open idとcyber空間Nat Sakimura
 
国民ID制度とトラスト・フレームワーク
国民ID制度とトラスト・フレームワーク国民ID制度とトラスト・フレームワーク
国民ID制度とトラスト・フレームワーク
Nat Sakimura
 
Investigacion De Mercado
Investigacion De MercadoInvestigacion De Mercado
Investigacion De Mercadomarizion
 
目指せ1秒切り!ECサイト表示高速化のワザ
目指せ1秒切り!ECサイト表示高速化のワザ目指せ1秒切り!ECサイト表示高速化のワザ
目指せ1秒切り!ECサイト表示高速化のワザ
Kohei MATSUSHITA
 

Viewers also liked (8)

Open idとcyber空間
Open idとcyber空間Open idとcyber空間
Open idとcyber空間
 
国民ID制度とトラスト・フレームワーク
国民ID制度とトラスト・フレームワーク国民ID制度とトラスト・フレームワーク
国民ID制度とトラスト・フレームワーク
 
Investigacion De Mercado
Investigacion De MercadoInvestigacion De Mercado
Investigacion De Mercado
 
Traballo De EconomíA
Traballo De EconomíATraballo De EconomíA
Traballo De EconomíA
 
Vesko
VeskoVesko
Vesko
 
Salta La Linda
Salta La LindaSalta La Linda
Salta La Linda
 
Salta La Linda
Salta La LindaSalta La Linda
Salta La Linda
 
目指せ1秒切り!ECサイト表示高速化のワザ
目指せ1秒切り!ECサイト表示高速化のワザ目指せ1秒切り!ECサイト表示高速化のワザ
目指せ1秒切り!ECサイト表示高速化のワザ
 

Similar to Smartphone Native Application OP

How to build Simple yet powerful API.pptx
How to build Simple yet powerful API.pptxHow to build Simple yet powerful API.pptx
How to build Simple yet powerful API.pptx
Channa Ly
 
Keyrock and API Umbrella for Data Spaces
Keyrock and API Umbrella for Data SpacesKeyrock and API Umbrella for Data Spaces
Keyrock and API Umbrella for Data Spaces
FIWARE
 
FIWARE Training: API Umbrella
FIWARE Training: API UmbrellaFIWARE Training: API Umbrella
FIWARE Training: API Umbrella
FIWARE
 
Using ArcGIS with OAuth 2.0 - Esri DevSummit Dubai 2013
Using ArcGIS with OAuth 2.0 - Esri DevSummit Dubai 2013Using ArcGIS with OAuth 2.0 - Esri DevSummit Dubai 2013
Using ArcGIS with OAuth 2.0 - Esri DevSummit Dubai 2013Aaron Parecki
 
OpenID Connect Explained
OpenID Connect ExplainedOpenID Connect Explained
OpenID Connect Explained
Vladimir Dzhuvinov
 
The OpenID Connect Protocol
The OpenID Connect ProtocolThe OpenID Connect Protocol
The OpenID Connect ProtocolClément OUDOT
 
2019 - Nova Code Camp - AuthZ fundamentals with ASP.NET Core
2019 - Nova Code Camp - AuthZ fundamentals with ASP.NET Core2019 - Nova Code Camp - AuthZ fundamentals with ASP.NET Core
2019 - Nova Code Camp - AuthZ fundamentals with ASP.NET Core
Vladimir Bychkov
 
Esquema de pasos de ejecución IdM
Esquema de pasos de ejecución IdMEsquema de pasos de ejecución IdM
Esquema de pasos de ejecución IdM
Fernando Lopez Aguilar
 
RESTful services and OAUTH protocol in IoT
RESTful services and OAUTH protocol in IoTRESTful services and OAUTH protocol in IoT
RESTful services and OAUTH protocol in IoT
Yakov Fain
 
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
Globus
 
CIS 2012 - Going Mobile with PingFederate and OAuth 2
CIS 2012 - Going Mobile with PingFederate and OAuth 2CIS 2012 - Going Mobile with PingFederate and OAuth 2
CIS 2012 - Going Mobile with PingFederate and OAuth 2
scotttomilson
 
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
 
Rest Security with JAX-RS
Rest Security with JAX-RSRest Security with JAX-RS
Rest Security with JAX-RSFrank Kim
 
The State of OAuth2
The State of OAuth2The State of OAuth2
The State of OAuth2
Aaron Parecki
 
[LDAPCon 2015] The OpenID Connect Protocol
[LDAPCon 2015] The OpenID Connect Protocol[LDAPCon 2015] The OpenID Connect Protocol
[LDAPCon 2015] The OpenID Connect Protocol
Clément OUDOT
 
CIS14: Consolidating Authorization for API and Web SSO using OpenID Connect
CIS14: Consolidating Authorization for API and Web SSO using OpenID ConnectCIS14: Consolidating Authorization for API and Web SSO using OpenID Connect
CIS14: Consolidating Authorization for API and Web SSO using OpenID Connect
CloudIDSummit
 
Securing RESTful APIs using OAuth 2 and OpenID Connect
Securing RESTful APIs using OAuth 2 and OpenID ConnectSecuring RESTful APIs using OAuth 2 and OpenID Connect
Securing RESTful APIs using OAuth 2 and OpenID Connect
Jonathan LeBlanc
 
OAuth and Open-id
OAuth and Open-idOAuth and Open-id
OAuth and Open-id
Parisa Moosavinezhad
 
Y U No OAuth, Using Common Patterns to Secure Your Web Applications
Y U No OAuth, Using Common Patterns to Secure Your Web ApplicationsY U No OAuth, Using Common Patterns to Secure Your Web Applications
Y U No OAuth, Using Common Patterns to Secure Your Web Applications
Jason Robert
 

Similar to Smartphone Native Application OP (20)

How to build Simple yet powerful API.pptx
How to build Simple yet powerful API.pptxHow to build Simple yet powerful API.pptx
How to build Simple yet powerful API.pptx
 
Keyrock and API Umbrella for Data Spaces
Keyrock and API Umbrella for Data SpacesKeyrock and API Umbrella for Data Spaces
Keyrock and API Umbrella for Data Spaces
 
FIWARE Training: API Umbrella
FIWARE Training: API UmbrellaFIWARE Training: API Umbrella
FIWARE Training: API Umbrella
 
Using ArcGIS with OAuth 2.0 - Esri DevSummit Dubai 2013
Using ArcGIS with OAuth 2.0 - Esri DevSummit Dubai 2013Using ArcGIS with OAuth 2.0 - Esri DevSummit Dubai 2013
Using ArcGIS with OAuth 2.0 - Esri DevSummit Dubai 2013
 
OpenID Connect Explained
OpenID Connect ExplainedOpenID Connect Explained
OpenID Connect Explained
 
The OpenID Connect Protocol
The OpenID Connect ProtocolThe OpenID Connect Protocol
The OpenID Connect Protocol
 
2019 - Nova Code Camp - AuthZ fundamentals with ASP.NET Core
2019 - Nova Code Camp - AuthZ fundamentals with ASP.NET Core2019 - Nova Code Camp - AuthZ fundamentals with ASP.NET Core
2019 - Nova Code Camp - AuthZ fundamentals with ASP.NET Core
 
Esquema de pasos de ejecución IdM
Esquema de pasos de ejecución IdMEsquema de pasos de ejecución IdM
Esquema de pasos de ejecución IdM
 
RESTful services and OAUTH protocol in IoT
RESTful services and OAUTH protocol in IoTRESTful services and OAUTH protocol in IoT
RESTful services and OAUTH protocol in IoT
 
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
 
CIS 2012 - Going Mobile with PingFederate and OAuth 2
CIS 2012 - Going Mobile with PingFederate and OAuth 2CIS 2012 - Going Mobile with PingFederate and OAuth 2
CIS 2012 - Going Mobile with PingFederate and OAuth 2
 
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 ...
 
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...
 
Rest Security with JAX-RS
Rest Security with JAX-RSRest Security with JAX-RS
Rest Security with JAX-RS
 
The State of OAuth2
The State of OAuth2The State of OAuth2
The State of OAuth2
 
[LDAPCon 2015] The OpenID Connect Protocol
[LDAPCon 2015] The OpenID Connect Protocol[LDAPCon 2015] The OpenID Connect Protocol
[LDAPCon 2015] The OpenID Connect Protocol
 
CIS14: Consolidating Authorization for API and Web SSO using OpenID Connect
CIS14: Consolidating Authorization for API and Web SSO using OpenID ConnectCIS14: Consolidating Authorization for API and Web SSO using OpenID Connect
CIS14: Consolidating Authorization for API and Web SSO using OpenID Connect
 
Securing RESTful APIs using OAuth 2 and OpenID Connect
Securing RESTful APIs using OAuth 2 and OpenID ConnectSecuring RESTful APIs using OAuth 2 and OpenID Connect
Securing RESTful APIs using OAuth 2 and OpenID Connect
 
OAuth and Open-id
OAuth and Open-idOAuth and Open-id
OAuth and Open-id
 
Y U No OAuth, Using Common Patterns to Secure Your Web Applications
Y U No OAuth, Using Common Patterns to Secure Your Web ApplicationsY U No OAuth, Using Common Patterns to Secure Your Web Applications
Y U No OAuth, Using Common Patterns to Secure Your Web Applications
 

More from Nat Sakimura

FAPI and beyond - よりよいセキュリティのために
FAPI and beyond - よりよいセキュリティのためにFAPI and beyond - よりよいセキュリティのために
FAPI and beyond - よりよいセキュリティのために
Nat Sakimura
 
OpenID in the Digital ID Landscape: A Perspective From the Past to the Future
OpenID in the Digital ID Landscape: A Perspective From the Past to the FutureOpenID in the Digital ID Landscape: A Perspective From the Past to the Future
OpenID in the Digital ID Landscape: A Perspective From the Past to the Future
Nat Sakimura
 
170724 JP/UK Open Banking Summit English Translation
170724 JP/UK Open Banking Summit English Translation170724 JP/UK Open Banking Summit English Translation
170724 JP/UK Open Banking Summit English Translation
Nat Sakimura
 
Introduction to 
the FAPI Read & Write OAuth Profile - Jan 2018 Updates
Introduction to 
the FAPI Read & Write OAuth Profile - Jan 2018 UpdatesIntroduction to 
the FAPI Read & Write OAuth Profile - Jan 2018 Updates
Introduction to 
the FAPI Read & Write OAuth Profile - Jan 2018 Updates
Nat Sakimura
 
Introduction to the FAPI Read & Write OAuth Profile
Introduction to the FAPI Read & Write OAuth ProfileIntroduction to the FAPI Read & Write OAuth Profile
Introduction to the FAPI Read & Write OAuth Profile
Nat Sakimura
 
金融 API 時代のセキュリティ: OpenID Financial API (FAPI) WG
金融 API 時代のセキュリティ: OpenID Financial API (FAPI) WG金融 API 時代のセキュリティ: OpenID Financial API (FAPI) WG
金融 API 時代のセキュリティ: OpenID Financial API (FAPI) WG
Nat Sakimura
 
ブロックチェーン〜信頼の源泉の民主化のもたらす変革
ブロックチェーン〜信頼の源泉の民主化のもたらす変革ブロックチェーン〜信頼の源泉の民主化のもたらす変革
ブロックチェーン〜信頼の源泉の民主化のもたらす変革
Nat Sakimura
 
Future Proofing the OAuth 2.0 Authorization Code Grant Protocol by the applic...
Future Proofing the OAuth 2.0 Authorization Code Grant Protocol by the applic...Future Proofing the OAuth 2.0 Authorization Code Grant Protocol by the applic...
Future Proofing the OAuth 2.0 Authorization Code Grant Protocol by the applic...
Nat Sakimura
 
OpenID Foundation FAPI WG: June 2017 Update
OpenID Foundation FAPI WG: June 2017 UpdateOpenID Foundation FAPI WG: June 2017 Update
OpenID Foundation FAPI WG: June 2017 Update
Nat Sakimura
 
API Days 2016 Day 1: OpenID Financial API WG
API Days 2016 Day 1: OpenID Financial API WGAPI Days 2016 Day 1: OpenID Financial API WG
API Days 2016 Day 1: OpenID Financial API WG
Nat Sakimura
 
Financial Grade OAuth & OpenID Connect
Financial Grade OAuth & OpenID ConnectFinancial Grade OAuth & OpenID Connect
Financial Grade OAuth & OpenID Connect
Nat Sakimura
 
OpenID Foundation Foundation Financial API (FAPI) WG
OpenID Foundation Foundation Financial API (FAPI) WGOpenID Foundation Foundation Financial API (FAPI) WG
OpenID Foundation Foundation Financial API (FAPI) WG
Nat Sakimura
 
OpenID Foundation Foundation Financial API (FAPI) WG
OpenID Foundation Foundation Financial API (FAPI) WGOpenID Foundation Foundation Financial API (FAPI) WG
OpenID Foundation Foundation Financial API (FAPI) WG
Nat Sakimura
 
車輪は丸くなったか?~デジタル・アイデンティティの標準化動向とそのゴール
車輪は丸くなったか?~デジタル・アイデンティティの標準化動向とそのゴール車輪は丸くなったか?~デジタル・アイデンティティの標準化動向とそのゴール
車輪は丸くなったか?~デジタル・アイデンティティの標準化動向とそのゴール
Nat Sakimura
 
OAuth SPOP @ IETF 91
OAuth SPOP @ IETF 91OAuth SPOP @ IETF 91
OAuth SPOP @ IETF 91
Nat Sakimura
 
Oidc how it solves your problems
Oidc how it solves your problemsOidc how it solves your problems
Oidc how it solves your problemsNat Sakimura
 
Transient client secret extension
Transient client secret extensionTransient client secret extension
Transient client secret extensionNat Sakimura
 
Introduction to OpenID Connect
Introduction to OpenID Connect Introduction to OpenID Connect
Introduction to OpenID Connect
Nat Sakimura
 
Nc 30 sakimura-distribution_0604
Nc 30 sakimura-distribution_0604Nc 30 sakimura-distribution_0604
Nc 30 sakimura-distribution_0604Nat Sakimura
 
サイバー空間上の信頼フレームワークとパーソナルデータ経済
サイバー空間上の信頼フレームワークとパーソナルデータ経済サイバー空間上の信頼フレームワークとパーソナルデータ経済
サイバー空間上の信頼フレームワークとパーソナルデータ経済
Nat Sakimura
 

More from Nat Sakimura (20)

FAPI and beyond - よりよいセキュリティのために
FAPI and beyond - よりよいセキュリティのためにFAPI and beyond - よりよいセキュリティのために
FAPI and beyond - よりよいセキュリティのために
 
OpenID in the Digital ID Landscape: A Perspective From the Past to the Future
OpenID in the Digital ID Landscape: A Perspective From the Past to the FutureOpenID in the Digital ID Landscape: A Perspective From the Past to the Future
OpenID in the Digital ID Landscape: A Perspective From the Past to the Future
 
170724 JP/UK Open Banking Summit English Translation
170724 JP/UK Open Banking Summit English Translation170724 JP/UK Open Banking Summit English Translation
170724 JP/UK Open Banking Summit English Translation
 
Introduction to 
the FAPI Read & Write OAuth Profile - Jan 2018 Updates
Introduction to 
the FAPI Read & Write OAuth Profile - Jan 2018 UpdatesIntroduction to 
the FAPI Read & Write OAuth Profile - Jan 2018 Updates
Introduction to 
the FAPI Read & Write OAuth Profile - Jan 2018 Updates
 
Introduction to the FAPI Read & Write OAuth Profile
Introduction to the FAPI Read & Write OAuth ProfileIntroduction to the FAPI Read & Write OAuth Profile
Introduction to the FAPI Read & Write OAuth Profile
 
金融 API 時代のセキュリティ: OpenID Financial API (FAPI) WG
金融 API 時代のセキュリティ: OpenID Financial API (FAPI) WG金融 API 時代のセキュリティ: OpenID Financial API (FAPI) WG
金融 API 時代のセキュリティ: OpenID Financial API (FAPI) WG
 
ブロックチェーン〜信頼の源泉の民主化のもたらす変革
ブロックチェーン〜信頼の源泉の民主化のもたらす変革ブロックチェーン〜信頼の源泉の民主化のもたらす変革
ブロックチェーン〜信頼の源泉の民主化のもたらす変革
 
Future Proofing the OAuth 2.0 Authorization Code Grant Protocol by the applic...
Future Proofing the OAuth 2.0 Authorization Code Grant Protocol by the applic...Future Proofing the OAuth 2.0 Authorization Code Grant Protocol by the applic...
Future Proofing the OAuth 2.0 Authorization Code Grant Protocol by the applic...
 
OpenID Foundation FAPI WG: June 2017 Update
OpenID Foundation FAPI WG: June 2017 UpdateOpenID Foundation FAPI WG: June 2017 Update
OpenID Foundation FAPI WG: June 2017 Update
 
API Days 2016 Day 1: OpenID Financial API WG
API Days 2016 Day 1: OpenID Financial API WGAPI Days 2016 Day 1: OpenID Financial API WG
API Days 2016 Day 1: OpenID Financial API WG
 
Financial Grade OAuth & OpenID Connect
Financial Grade OAuth & OpenID ConnectFinancial Grade OAuth & OpenID Connect
Financial Grade OAuth & OpenID Connect
 
OpenID Foundation Foundation Financial API (FAPI) WG
OpenID Foundation Foundation Financial API (FAPI) WGOpenID Foundation Foundation Financial API (FAPI) WG
OpenID Foundation Foundation Financial API (FAPI) WG
 
OpenID Foundation Foundation Financial API (FAPI) WG
OpenID Foundation Foundation Financial API (FAPI) WGOpenID Foundation Foundation Financial API (FAPI) WG
OpenID Foundation Foundation Financial API (FAPI) WG
 
車輪は丸くなったか?~デジタル・アイデンティティの標準化動向とそのゴール
車輪は丸くなったか?~デジタル・アイデンティティの標準化動向とそのゴール車輪は丸くなったか?~デジタル・アイデンティティの標準化動向とそのゴール
車輪は丸くなったか?~デジタル・アイデンティティの標準化動向とそのゴール
 
OAuth SPOP @ IETF 91
OAuth SPOP @ IETF 91OAuth SPOP @ IETF 91
OAuth SPOP @ IETF 91
 
Oidc how it solves your problems
Oidc how it solves your problemsOidc how it solves your problems
Oidc how it solves your problems
 
Transient client secret extension
Transient client secret extensionTransient client secret extension
Transient client secret extension
 
Introduction to OpenID Connect
Introduction to OpenID Connect Introduction to OpenID Connect
Introduction to OpenID Connect
 
Nc 30 sakimura-distribution_0604
Nc 30 sakimura-distribution_0604Nc 30 sakimura-distribution_0604
Nc 30 sakimura-distribution_0604
 
サイバー空間上の信頼フレームワークとパーソナルデータ経済
サイバー空間上の信頼フレームワークとパーソナルデータ経済サイバー空間上の信頼フレームワークとパーソナルデータ経済
サイバー空間上の信頼フレームワークとパーソナルデータ経済
 

Recently uploaded

Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
ThomasParaiso2
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Vladimir Iglovikov, Ph.D.
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 

Recently uploaded (20)

Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 

Smartphone Native Application OP

  • 1. Smartphone Native Application OP OpenID Connect application URL scheme binding @_nat @eijima IdCon #11 IDENTITY CONFERENCE February 3, 2012
  • 2. Entities User Info RP(Web Application) (Client) Request Authorization OP(Smartphone Native Application) (Authorization Server, Resource Server) Access Token Authenticate User User-Agent(Smartphone Native Application) Request Service Smartphone End-User (Resource Owner)
  • 3. Application URL Scheme • We can bind a Smartphone (iOS SDK, Android SDK) native application to a custom URL scheme. • That scheme can be used to launch the application from either a browser or from another application on the Smartphone.
  • 4. User Experience – Client(RP) Registration - 1. User accesses RP by User-Agent 2. OP app starts and returns “not registered” 4. OP application starts 5. OP application returns Tap “Kantan-Login” button error via User-Agent. OP asks User for the consent successful response via * RP requests authorization 3. RP requests client registration via User- of RP registration User-Agent Agent 6. RP re-requests authorization
  • 5. User Experience – Authorization & UserInfo Request - 1. User accesses RP by User-Agent 2. OP app asks User for the 3. OP app returns Access Token 5. RP receives the Access Token Tap “Kantan-Login” button consent of PII transmission to to RP via User-Agent User logs in RP RP 4. RP sends Access Token to RP and requests OP to transmit UserInfo via User-Agent.
  • 6. Protocol Design • Only support Implicit Grant – Client authentication • client_id == FQDN of the Client (RP) • client_secret is not used. The implicit grant type does not include client authentication. • Request from RP to OP – End point(request) URI := openid://path • e.g.) openid://host/path?query – Request parameters • Smartphone applications can receive only request URL string from RP via User-agent. – All requests require a redirect_uri (or response_uri) parameter. These URI must be HTTPS. • All requests must be sent by one of the following three methods. (like an authorization request of the OpenID Connect Standard) – Simple Request Method – Request Parameter Method – Request File Method • Response from OP to RP – OP send response to redirect_uri(or response_uri) by http GET method via User-agent. Both successful and error response must be fragment-encoded. – RP returns a page including a javascript code. The javascript code read the fragment and post the fragment to RP. • Open Issue – How to generate user_id of the ID Token? The user_id must be unique and never reassigned identifier among all OP apps.
  • 7. Authorization Request & Response Sequence • http://www.websequencediagrams.com/?lz=cGFydGljaXBhbn QgRW5kVXNlciBhcyB1CgANDFJQXG5DbGllbnQgYXMgcnAA EA1Vc2VyQWcAFQd1YQAsDU9QXG5TbWFydHBob25lQXB wIGFzIG9wCgpub3RlIGxlZnQgb2YgcnA6IFJlcXVlc3QgRmlsZ SBNZXRob2QKCnJwLT51YTogcgAWB0F1dGhvcml6YXRpb2 5cbm9wZW5pZDovL2F1dGg_XG4AIAdfdHlwZT10b2tlblxuJm MAgTMFX2lkPXJwLmNvbVxuJnJlZGlyZWN0X3VyaT1odHRw czovLwAYBgBGBS9jYWxsYmFja1xuJnNjb3BlPQBkBlxuJm5v bmNlPW4tMFM2X1d6QTJNagBLBQByBgA3GACBOAcKCnVh LT5vcACBORcKCm9wLT5ycDogZmV0Y2gAgWwJZmlsZQpyc C0ALQ4AEQUALQV1OiBhdXRoZW50aWNhdGUgJgCCJgljb2 5zZW50CnUANQcACAgAMQZhOiBBY2Nlc3MgVG9rZW4gaW 4gZnJhZ21lbgCDDwYAghoLXG4AggocI1xuYQBEBV8Agm8F PWpIa1dFLi4uNUtGMFlcbiYAgwUFAIMPBkJlYXJlclxuAIIFBnJ wOiAAghoWAIMaBgCDfAUAg3wGc2NyaXAAgjsHdWE6IHBhc nNlAIEmCmJ5ABUNAFEIIHBvc3QAgVgOdG8gUlAAJQsAWQ k&s=modern-blue
  • 8. Authorization Request & Response Steps – Case: Request File Method - 1. RP(Client) redirects the User-Agent on the End-User’s smartphone to Authorization Endpoint with “request_uri” parameter. – Authorization Endpoint URI is Application URL scheme:”openid” openid://auth?request_uri=https://rp.com/auth/request 2. OP application on the End-User’s smartphone starts via Authorization Endpoint(= Application URL scheme: “openid”) 3. OP application fetches the Request File from “request_uri” 4. RP returns the Request File 5. OP application authenticates the End-User and obtains the End-User Consent/Authorization. 6. OP returns a response to the RP’s “redirect_uri” via User-Agent. Response parameters must be fragment-encoded. – https://rp.com/auth/callback#access_token=jHkWEdUXMU1BwAsC4vtUsZwnNvTIxEl0z9K3vx5KF0Y &token_type=Bearer &id_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9zZ XJ2ZXIuZXhhbXBsZS5jb20iLCJ1c2VyX2lkIjoiMjQ4Mjg5NzYxMDAxIiwiYXVkIjoiaHR0c DpcL1wvY2xpZW50LmV4YW1wbGUuY29tIiwiZXhwIjoxMzExMjgxOTcwfQ.eDesUD0vzDH3T1 G3liaTNOrfaeWYjuRCEPNXVtaazNQ &state=af0ifjsldkj 7. RP returns the script to the User-Agent. 8. The script runs in the User-Agent and posts the OP’s response(access_token, id_token etc.) to the RP.
  • 9. UserInfo Request & Response Sequence • http://www.websequencediagrams.com/?lz=cGFydGljaXBhbn QgUlBcbkNsaWVudCBhcyBycAoAEQxVc2VyQWcAFQd1YQA PDU9QXG5TbWFydHBob25lQXBwIGFzIG9wCgpub3RlIGxlZn Qgb2YgcnA6IFJlcXVlc3QgRmlsZSBNZXRob2QKCnJwLT51YT ogcgAWB1VzZXJJbmZvIHcvAAwIX3VyaSBcbm9wZW5pZDov L3VzZXJpbmZvPwAVCz1odHRwczovL3JwLmNvbQAbCS8AU QcKCnVhLT5vcAAGY29wLT5ycDogZmV0Y2gAgU8JZmlsZQp ycC0Adw5maWxlXG574oCcYWNjZXNzX3Rva2Vu4oCdOiAiU 2xBVjMyaGtLRyIsIOKAnHNjaGVtYQAXBeKAnACCCAbigJ0A FwVyZXNwb25zZV91cmkAGggAgXgaACYGfQCBJQZvcDogZ W5jcnlwAIJvDlJQJ3MgcHVibGljIGtleQCBUgZ1YToAgxgKaW4 gZnJhZ21lbgCDXQYAeQtcbgBeICNKV1RfZW5jb2RlZF8Ag20I AIMgBnJwOiAAgR0gAIQ0BQCENAZzY3JpcACDWgd1YTogc GFyc2UAgRAWYnkAIQ0AYQggcG8AhG4MABwKAFsJAIUiBX JwOiBkZQCCHA4&s=modern-blue
  • 10. UserInfo Request & Response Messages • UserInfo Request parameters – The following parameters are defined in addition to what ware defined by the OpenID Connect Messages 1.0. • response_uri – A response URI where the response will be sent. • request – A JWT encoded Request Object. For Request Parameter Method. • request_uri – The URI of the Request File. For Request File Method. • UserInfo Request Object – The Request Object must be JWT encoded. It may be JWS signed and/or JWE encrypted. – Sample JSON • *“access_token”: "SlAV32hkKG", “schema”: “openid”, “response_uri”: “https://example.com/userinfo/response”+ • UserInfo Response – The response must be JWT that is JWS signed with OP’s key and JWE encrypted with RP’s key. – Error response parameters • … • Security considerations – Because of the security weaknesses associated with the URI method (see Section 4), including the high likelihood that the URL containing the access token will be logged. The Client SHOULD construct the request using the Request Parameter Method with JWE encrypted or the Request File Method.
  • 11. Dynamic Client Registration Request & Response Sequence • http://www.websequencediagrams.com/?lz=cGFydGljaXBhb nQgRW5kVXNlciBhcyB1CgANDFJQXG5DTGllbnQgYXMgcn AAEA1Vc2VyQWcAFQd1YQAsDU9QXG5TbWFydHBob25l QXBwIGFzIG9wCgpub3RlIGxlZnQgb2YgdTogUmVxdWVzd CBGaWxlIE1ldGhvZApycC0- dWE6IHIAFQdyZWdpc3Qgdy8ACghfdXJpXG5vcGVuaWQ6L y8AGgY_ABILPWh0dHA6Ly9ycC5jb20AGgcvAEkHCnVhLT5 vcABKFnNwb25zZV91cmwAJjtvcC0-cnA6IGZldGNoAIE- CWZpbGUKcnAtAG8OZmlsZSAobXVzdCBiZSBKV1Mgc2lnb mVkIEpXVClcbnsidHlwZSI6ImFzc29jaWF0ZSIsXG4gInJlZGl yZWMAggYFcyI6Imh0dHBzAIFoCmNhbGxiYWNrIixcbiJqd2tf dXJsABQScHVibGljX2tleS5qdwAmBgCBdwtpAEUSAIJACQ CCIQYifQCBZgVvcDogdmVyaWZ5IEpXUwCBeQV1AIM0Cm NvbnNlbnQKdQCBcgcACAgAMggAg1cHUlAAMwYAg3MFAI MABiBjbGllbnRfaWQgaW4gZnJhZ21lbnRcbgB3HiMALQk9A IN5BgCDawVycDogAIEvHgCDFQZ1YTogc2NyaXAAhCEGd WE6IHBhcnNlAHYJIGJ5ABUMcnA6IHBvc3QAgSELABcKAE kJ&s=modern-blue
  • 12. Dynamic Client Registration Request & Response Messages • Dynamic Client Registration Request parameters – The following parameters are defined in addition to what ware defined by the OpenID Connect Dynamic Client Registration 1.0. – response_uri • REQUIRED. A response URI where the response will be sent. – request • A JWT encoded Request Object. For Request Parameter Method. – request_uri • The URI of the Request File. For Request File Method. • Dynamic Client Registration Request Object – Request Object must be JWT that is JWS signed with RP’s key. – The JWK which the “jwk_url” parameter in the JSON points must be same as the JWK which the “jku” parameter in the JWS header points. – Sample JSON • * “type”: ”client_associate”, “redirect_uris”: “https://example.com/callback”, “logo_url”: “https://example.com/logo.png”, “jwk_url”=“https://example.com/public_key.jwk”, “userinfo_encrypted_response_algs”: “RSA1_5 A128CBC” “response_uri”: “https://example.com/regist/response” + • Dynamic Client Registration Response parameters – client_id == FQDN of the Client (FQDN of “response_uri”?) – client_secret is not used. The implicit grant type does not include client authentication. – Sample response: https://example.com/regist/response#client_id=example.com • Open issues – When a different business entity shares the same FQDN(==client_id), e.g. users of same hosting service, one registration makes it unable to perform registration of another side.
  • 13. Open Isuue Client Registration Authority – Embedded in OP application vs Central RA • Central Client Registration Authority – Advantage • Clients(RPs) register their parameters to the Central Client Registration Authority. There is no necessity of changing current draft of the OpenID Connect Dynamic Client Registration specification. • There is no restriction in the value of client_id. • The End-User does not need to care about the Client Registration. – But • OP application must query the Central RA to get the registration information of Clients(RPs). • Must manage the Central RA
  • 14. IdCon #11 IDENTITY CONFERENCE Thanks!