SlideShare uma empresa Scribd logo
1 de 14
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!

Mais conteúdo relacionado

Mais procurados

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 PictureApigee | Google Cloud
 
Implementing OAuth with PHP
Implementing OAuth with PHPImplementing OAuth with PHP
Implementing OAuth with PHPLorna 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 ApproachTatsuo Kudo
 
Securing APIs with OAuth 2.0
Securing APIs with OAuth 2.0Securing APIs with OAuth 2.0
Securing APIs with OAuth 2.0Kai Hofstetter
 
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 oauthPriyanka Aash
 
Mobile Native OAuth Decision Framework
Mobile Native OAuth Decision FrameworkMobile Native OAuth Decision Framework
Mobile Native OAuth Decision FrameworkPaul Madsen
 
Intro to OAuth2 and OpenID Connect
Intro to OAuth2 and OpenID ConnectIntro to OAuth2 and OpenID Connect
Intro to OAuth2 and OpenID ConnectLiamWadman
 
Web API Security
Web API SecurityWeb API Security
Web API SecurityStefaan
 

Mais procurados (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
 

Destaque

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
 

Destaque (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サイト表示高速化のワザ
 

Semelhante a 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.pptxChanna 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 SpacesFIWARE
 
FIWARE Training: API Umbrella
FIWARE Training: API UmbrellaFIWARE Training: API Umbrella
FIWARE Training: API UmbrellaFIWARE
 
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
 
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 CoreVladimir Bychkov
 
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 IoTYakov 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 DevelopersGlobus
 
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 2scotttomilson
 
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
 
[LDAPCon 2015] The OpenID Connect Protocol
[LDAPCon 2015] The OpenID Connect Protocol[LDAPCon 2015] The OpenID Connect Protocol
[LDAPCon 2015] The OpenID Connect ProtocolClé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 ConnectCloudIDSummit
 
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 ConnectJonathan LeBlanc
 
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 ApplicationsJason Robert
 

Semelhante a 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
 

Mais de 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 FutureNat 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 TranslationNat 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 UpdatesNat 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 ProfileNat Sakimura
 
金融 API 時代のセキュリティ: OpenID Financial API (FAPI) WG
金融 API 時代のセキュリティ: OpenID Financial API (FAPI) WG金融 API 時代のセキュリティ: OpenID Financial API (FAPI) WG
金融 API 時代のセキュリティ: OpenID Financial API (FAPI) WGNat 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 UpdateNat 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 WGNat Sakimura
 
Financial Grade OAuth & OpenID Connect
Financial Grade OAuth & OpenID ConnectFinancial Grade OAuth & OpenID Connect
Financial Grade OAuth & OpenID ConnectNat 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) WGNat 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) WGNat Sakimura
 
車輪は丸くなったか?~デジタル・アイデンティティの標準化動向とそのゴール
車輪は丸くなったか?~デジタル・アイデンティティの標準化動向とそのゴール車輪は丸くなったか?~デジタル・アイデンティティの標準化動向とそのゴール
車輪は丸くなったか?~デジタル・アイデンティティの標準化動向とそのゴールNat Sakimura
 
OAuth SPOP @ IETF 91
OAuth SPOP @ IETF 91OAuth SPOP @ IETF 91
OAuth SPOP @ IETF 91Nat 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
 

Mais de 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
 
サイバー空間上の信頼フレームワークとパーソナルデータ経済
サイバー空間上の信頼フレームワークとパーソナルデータ経済サイバー空間上の信頼フレームワークとパーソナルデータ経済
サイバー空間上の信頼フレームワークとパーソナルデータ経済
 

Último

Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 

Último (20)

Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 

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!