SlideShare ist ein Scribd-Unternehmen logo
1 von 46
Downloaden Sie, um offline zu lesen
The Latest Specs of
 OpenID Connect

          @ritou
         2011/7/8
 Identity Conference #9
@ritou

• 秋田県在住
• 去年まで某ポータルサイトのログイン担当

•http://d.hatena.ne.jp/ritou
• OpenID Connect WG Contributer




                                  2
はじめに

• 情報漏えい騒ぎ
 – いまさらPWの使いまわしのリスクに注目
   • いまこそOpenID/OAuthの出番?
• OpenID / OAuth へのネガティブな影響
 – あるOPのパスワードが漏れたらRP/Clientまで
   全部やられるね → orz
 今こそ安全なAuthN/Zのしくみを提供してア
 ピールすべき!

                                3
OpenIDとOAuth

• OpenID Auth 2.0           • OAuth 1.0a


       • OpenID OAuth Extension

• OpenID v.Next             • OAuth WRAP
  – Artifact Binding (for   • OAuth 2.0
    Mobile etc...)

           • OpenID Connect
                                           4
OpenID Connect

• Authorization : OAuth 2.0 Base
• Authentication
• Attribute transmission
  – UserInfo Endpoint
• Discovery
  – JSON Based
• Dynamic Client Registration
• Session Management
  – Refresh/Check/Logout           5
Latest Specs

• Core : Messages, Abstract flow
• Framework : Req/Res formats
• Discovery
• HTTP Redirect Binding : HTTP protocol
  binding
• Session Management
• Dynamic Client Registration
• UserInfo
                                          6
Latest Specs

• Core
  – http://openid.net/specs/openid-connect-core-1_0.html
• Framework
  – http://openid.net/specs/openid-connect-framework-
    1_0.html
• Discovery
  – http://openid.net/specs/openid-connect-discovery-
    1_0.html
• HTTP Redirect Binding
  – http://openid.net/specs/openid-connect-http-redirect-
                                                            7
    1_0.html
Latest Specs

• Session Management
  – http://openid.net/specs/openid-connect-session-
    1_0.html
• Dynamic Client Registration
  – http://openid.net/specs/openid-connect-registration-
    1_0.html
• UserInfo
  – http://openid.net/specs/openid-connect-userinfo-
    1_0.html


                                                           8
Latest Specs

• Core : Messages, Abstract flow
• Framework : Req/Res formats
• Discovery
• HTTP Redirect Binding : HTTP protocol
  binding
• Session Management
• Dynamic Client Registration
• UserInfo
                                          9
Latest Specs

• Core : Messages, Abstract flow
• Framework : Req/Res formats
• Discovery
• HTTP Redirect Binding : HTTP protocol
  binding
• Session Management
• Dynamic Client Registration
• UserInfo
                                          10
GET /.well-known/simple-web-discovery




                       OpenID Connect Discovery

      • Endpoint,メタデータをDiscoveryするしくみ
            – Endpoints
            – サポートしているFlow,Identifierの種類など
      • HTTPS + GETでDiscovery用エンドポイントに
        アクセス
      • レスポンスフォーマットはJSONオブジェクト
            – XRDよりも簡単!?


                                                  11
GET /.well-known/simple-web-discovery




       OpenID Connect Simple Web Discovery

      • Discoveryに利用できるIdentifierは3種類
            – Hostname
            – Email
            – URL
      • OpenID Connectの最初の利用例
            – Emailアドレスを入力(≒WebFinger)
            – OP Identifierを入力(≒OpenID Auth 2.0)
            – OpenID URLを入力(≒OpenID Auth 1.1)

                                                   12
GET /.well-known/simple-web-discovery




       OpenID Connect Simple Web Discovery
      • Request
          GET
          /.well-known/simple-web-discovery?
          principal= joe@example.com&
          service=http://openid.net/specs/connect/1.0/issuer
          HTTP/1.1
          Host: example.com




                                                               13
GET /.well-known/simple-web-discovery




       OpenID Connect Simple Web Discovery
      • Response
        HTTP/1.1 200 O.K.
        Content-Type: application/json
        { "locations":
             ["https://example.com/auth"]
        }

          別のURLへのリダイレクト指定も可能


                                            14
Latest Specs

• Core : Messages, Abstract flow
• Framework : Req/Res formats
• Discovery
• HTTP Redirect Binding : HTTP protocol
  binding
• Session Management
• Dynamic Client Registration
• UserInfo
                                          15
OpenID Connect
      Dynamic Client Registration
• DiscoveryによりRegistration Endpointを
  取得
• Registration EndpointにClient登録/更新
  のリクエストを送る




                                       16
OpenID Connect
        Dynamic Client Registration
• Request (HTTP POST, JSONオブジェクト)
 –   type : “client_associate”/“client_update”
 –   client_id
 –   client_secret
 –   contact : email list
 –   application_type, application_name
 –   logo_url, redirect_url, js_origin_url, jwk_url
 –   sector_identifier
@_nat JWTではないのでしょうか?
                                                  17
OpenID Connect
       Dynamic Client Registration
• Response (JSON object)
  – client_id
  – client_secret
  – expires_in




                                     18
Latest Specs

• Core : Messages, Abstract flow
• Framework : Req/Res formats
• Discovery
• HTTP Redirect Binding : HTTP protocol
  binding
• Session Management
• Dynamic Client Registration
• UserInfo
                                          19
HTTP Redirect Binding

• OAuth 2.0のFlowにOpenID Connectの
  Request/Responseパラメータを加える方法




                               20
Protocol Flows

• Authorization Code Flow
   – ClientがWeb Serverとして動作
• Implicit Flow
   – ClientがJavaScript, Flashなどで動作




                                     21
Protocol Flows

• Authorization Code Flow
   – ClientがWeb Serverとして動作
• Implicit Flow
   – ClientがJavaScript, Flashなどで動作




                                     22
Authorization Code Flow

End User             Client               AuthZ      Resource
    0. Clientにサービス要求                      Server      Server

                         1. Request準備
    2. AuthZ ServerにRequestを送信

                     3. Authentication
                     4. Consent/Authorization
    5. AuthZ CodeとともにUserを戻す

                         6. Assertion要求

                         7. Assertion応答
                         8. UserInfo Endpointにアクセス

                                                            23
                         9. 属性情報など応答
Authorization Code Flow

End User             Client               AuthZ      Resource
    0. Clientにサービス要求                      Server      Server

                         1. Request準備
    2. AuthZ ServerにRequestを送信

                     3. Authentication
                     4. Consent/Authorization
    5. AuthZ CodeとともにUserを戻す

                         6. Assertion要求

                         7. Assertion応答
                         8. UserInfo Endpointにアクセス

                                                            24
                         9. 属性情報など応答
Requestの送り方は3種類

• Query Parameters Method
  – クエリパラメータにそのまま含む
• Request Parameter Method
  – OpenID Connect RequestをToken(文字列)
    にしてrequestパラメータとして指定
    • UserInfo/Session Management関連
• Request File Method
  – JSONオブジェクトを返すURLを用意して、その
    URLをパラメータに含む
                                      25
Query Parameters Method

https://server.com/op/authorize?
response_type=token
&client_id=s6BhdRkqt3
&redirect_uri=https%3A%2F%2Fclient%2Eexample%2E
com%2Fcb
&scope=openid
&state=af0ifjsldkj



                                              26
Request Parameter Method

https://server.com/op/authorize?
response_type=code
&client_id=s6BhdRkqt3
&redirect_uri=https%3A%2F%2Fclient%2Eexample%2E
com%2Fcb
&scope=openid
&state=af0ifjsldkj
&request=jwt_header.jwt_payload.jwt_crypto


                                              27
request パラメータ

• OpenID Connect リクエスト
 – 下記機能についてのリクエスト
   • UserInfo : 必要なクレーム、フォーマット
   • Session Management : ID Tokenに含むクレーム、
     PAPE関連のパラメータなど
• JSONオブジェクトを文字列として表現
 – “jwt_header.jwt_payload.jwt_crypto”
   • jwt_header : メタデータをBase64URLEnc
   • jwt_payload : JSONオブジェクトをBase64URLEnc
   • jwt_crypto : Signatureなど
                                         28
Request File Method

• JSON オブジェクトを返すRequest URLを作
  成
https://rp.example.com/rf.js
{
    "response_type": "code",
    "client_id": "s6BhdRkqt3",
    "redirect_uri":
    "https%3A%2F%2Fclient%2Eexample%2Ecom%2Fcb",
    "scope": "openid",
    "state": "af0ifjsldkj“
                                               29
}
Request File Method

https://server.com/op/authorize?
response_type=code
&client_id=s6BhdRkqt3
&state=af0ifjsldkj
&request_uri=https://rp.example.com/rf.js

モバイルでも使えるように512byteを超えてはいけない!



                                            30
Authorization Code Flow

End User             Client               AuthZ           Resource
    0. Clientにサービス要求                      Server           Server

                         1. Request準備
    2. AuthZ ServerにRequestを送信

                                              2.5. Request File 取得
                     3. Authentication
                     4. Consent/Authorization
    5. AuthZ CodeとともにUserを戻す

                         6. Assertion要求

                         7. Assertion応答
                         8. UserInfo Endpointにアクセス
                                                                     31

                         9. 属性情報など応答
Latest Specs

• Core : Messages, Abstract flow
• Framework : Req/Res formats
• Discovery
• HTTP Redirect Binding : HTTP protocol
  binding
• Session Management
• Dynamic Client Registration
• UserInfo
                                          32
OpenID Connect Framework

• OAuth 2.0 に追加される OpenID
  Connect独自リクエスト/レスポンス
• UserInfo エンドポイントで返されるClaim
• その他...




                               33
OpenID Request Object

• OpenID Connect リクエスト
 – 下記機能についてのリクエスト
   • UserInfo : 必要なクレーム、フォーマット
   • Session Management : ID Tokenに含むクレーム、
     PAPE関連のパラメータなど
• JSONオブジェクトを文字列として表現
 – “jwt_header.jwt_payload.jwt_crypto”
   • jwt_header : メタデータをBase64URLEnc
   • jwt_payload : JSONオブジェクトをBase64URLEnc
   • jwt_crypto : Signatureなど
                                         34
OpenID Request Object
{

"inf":
     {

     "clm":
              {     "name": null, "nickname": {"opt": true},
                    "email": null, "verified": null,
                    "picture": {"opt": true}, },
     "fmt": "sig"
     }

"idt":
     {

              "mxa": 86400,
              "eaa": "2"                                       35

     }
UserInfo Endpoint : Claims

• 下記の3種類のClaimを提供する
 – Normal Claims : OPがAssertしたClaims
 – Aggregated Claims : OPから返されるが、別
   のOPがAssertしたClaims
   • JWT形式
 – Distributed Claims
   • 別のOPのエンドポイントから返されるClaims
   • endpoint, access_token


                                       36
Authorization Code Flow

End User             Client               AuthZ      Resource
    0. Clientにサービス要求                      Server      Server

                         1. Request準備
    2. AuthZ ServerにRequestを送信

                     3. Authentication
                     4. Consent/Authorization
    5. AuthZ CodeとともにUserを戻す

                         6. Assertion要求

                         7. Assertion応答
                         8. UserInfo Endpointにアクセス

                                                            37
                         9. 属性情報など応答
{
    "name": "Jane Doe"
    ...
    "_claim_names": { "birthday": "src1",
                           "eye_color": "src1",
                           "credit_score": "src3" },
    "_claim_sources": {
         "src1": {"JWT":
                  "JWT_hdr.JWT_claims.JWT_crypto"},
         "src3": {"endpoint":
         "https://creditagency.example.com/claimshere",
         "access_token": "ksj3n283dke"} }
}
                                                          38
Latest Specs
• Core : Messages, Abstract flow
• Framework : Req/Res formats
• Discovery
• HTTP Redirect Binding : HTTP protocol
  binding
• Session Management
• Dynamic Client Registration
• UserInfo
                                          39
OpenID Connect UserInfo

• FrameworkにあったNormal Claimsについ
  ての定義
  – Profileデータ
• Request
  – access_token
  – schema : “openid”




                                 40
OpenID Connect UserInfo

• ResponseはJSONオブジェクト or JWT
 – AuthZ Requestの際にJWT形式で指定




                               41
Latest Specs
• Core : Messages, Abstract flow
• Framework : Req/Res formats
• Discovery
• HTTP Redirect Binding : HTTP protocol
  binding
• Session Management
• Dynamic Client Registration
• UserInfo
                                          42
OpenID Connect
           Session Management
• ID Tokenを用いたセッション管理
 – 現在誰がログイン中なのか確認する
 – Client側からログアウトさせる
• ID Token : JWSを用いた署名付きクレーム
 –   issur
 –   client_id
 –   user_id
 –   audience
 –   exp
                                43
OpenID Connect
          Session Management
• Creating Session : ID Token発行
  – Authorization Request
    • Clientはresponse_type に “id_token”を含む
  – Access Token Response
    • AuthZ ServerはAccess Tokenと一緒にid_tokenを
      渡す




                                             44
OpenID Connect
         Session Management
• Session Management Endpoints
  – Refresh Session : expireしたid_tokenの更新
  – Check Session : id_tokenの内容取得
  – End Session : Clientからのログアウト要求




                                            45
最後に
• 仕様は日々更新中
 http://lists.openid.net/mailman/listinfo/ope
   nid-specs-ab




                                                46

Weitere ähnliche Inhalte

Was ist angesagt?

FIWAREシステム内の短期履歴の管理
FIWAREシステム内の短期履歴の管理FIWAREシステム内の短期履歴の管理
FIWAREシステム内の短期履歴の管理fisuda
 
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.6.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.6.0対応)FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.6.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.6.0対応)fisuda
 
FIWARE Context Information Management
FIWARE Context Information ManagementFIWARE Context Information Management
FIWARE Context Information Managementfisuda
 
OAuth 2.0 MAC Authentication
OAuth 2.0 MAC AuthenticationOAuth 2.0 MAC Authentication
OAuth 2.0 MAC AuthenticationRyo Ito
 
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 2.4.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 2.4.0対応)FIWARE Orion Context Broker コンテキスト情報管理 (Orion 2.4.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 2.4.0対応)fisuda
 
Twitter連携chrome extension作り方
Twitter連携chrome extension作り方Twitter連携chrome extension作り方
Twitter連携chrome extension作り方Hiroshi Oyamada
 
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 1.15.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 1.15.0対応)FIWARE Orion Context Broker コンテキスト情報管理 (Orion 1.15.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 1.15.0対応)fisuda
 
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 1.13.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 1.13.0対応)FIWARE Orion Context Broker コンテキスト情報管理 (Orion 1.13.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 1.13.0対応)fisuda
 
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 2.4.0対応)
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 2.4.0対応)NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 2.4.0対応)
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 2.4.0対応)fisuda
 
コア・コンテキスト管理 - FIWARE WednesdayWebinars
コア・コンテキスト管理 - FIWARE WednesdayWebinarsコア・コンテキスト管理 - FIWARE WednesdayWebinars
コア・コンテキスト管理 - FIWARE WednesdayWebinarsfisuda
 

Was ist angesagt? (10)

FIWAREシステム内の短期履歴の管理
FIWAREシステム内の短期履歴の管理FIWAREシステム内の短期履歴の管理
FIWAREシステム内の短期履歴の管理
 
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.6.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.6.0対応)FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.6.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.6.0対応)
 
FIWARE Context Information Management
FIWARE Context Information ManagementFIWARE Context Information Management
FIWARE Context Information Management
 
OAuth 2.0 MAC Authentication
OAuth 2.0 MAC AuthenticationOAuth 2.0 MAC Authentication
OAuth 2.0 MAC Authentication
 
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 2.4.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 2.4.0対応)FIWARE Orion Context Broker コンテキスト情報管理 (Orion 2.4.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 2.4.0対応)
 
Twitter連携chrome extension作り方
Twitter連携chrome extension作り方Twitter連携chrome extension作り方
Twitter連携chrome extension作り方
 
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 1.15.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 1.15.0対応)FIWARE Orion Context Broker コンテキスト情報管理 (Orion 1.15.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 1.15.0対応)
 
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 1.13.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 1.13.0対応)FIWARE Orion Context Broker コンテキスト情報管理 (Orion 1.13.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 1.13.0対応)
 
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 2.4.0対応)
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 2.4.0対応)NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 2.4.0対応)
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 2.4.0対応)
 
コア・コンテキスト管理 - FIWARE WednesdayWebinars
コア・コンテキスト管理 - FIWARE WednesdayWebinarsコア・コンテキスト管理 - FIWARE WednesdayWebinars
コア・コンテキスト管理 - FIWARE WednesdayWebinars
 

Ähnlich wie The Latest Specs of OpenID Connect at #idcon 9

091009 Identity Conference #6 ritou
091009 Identity Conference #6 ritou091009 Identity Conference #6 ritou
091009 Identity Conference #6 ritouRyo Ito
 
OpenID_Connect_Spec_Demo
OpenID_Connect_Spec_DemoOpenID_Connect_Spec_Demo
OpenID_Connect_Spec_DemoRyo Ito
 
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜Masaru Kurahayashi
 
「金融API向けOAuth」にみるOAuthプロファイリングの実際 #secjaws #finsecjaws01 #oauth #oidc #api
「金融API向けOAuth」にみるOAuthプロファイリングの実際 #secjaws #finsecjaws01 #oauth #oidc #api「金融API向けOAuth」にみるOAuthプロファイリングの実際 #secjaws #finsecjaws01 #oauth #oidc #api
「金融API向けOAuth」にみるOAuthプロファイリングの実際 #secjaws #finsecjaws01 #oauth #oidc #apiTatsuo Kudo
 
0905xx Hybrid Memo
0905xx Hybrid Memo0905xx Hybrid Memo
0905xx Hybrid MemoRyo Ito
 
OAuth / OpenID Connect (OIDC) の最新動向と Authlete のソリューション
OAuth / OpenID Connect (OIDC) の最新動向と Authlete のソリューションOAuth / OpenID Connect (OIDC) の最新動向と Authlete のソリューション
OAuth / OpenID Connect (OIDC) の最新動向と Authlete のソリューションTatsuo Kudo
 
SAML / OpenID Connect / OAuth / SCIM 技術解説 - ID&IT 2014 #idit2014
SAML / OpenID Connect / OAuth / SCIM 技術解説  - ID&IT 2014 #idit2014SAML / OpenID Connect / OAuth / SCIM 技術解説  - ID&IT 2014 #idit2014
SAML / OpenID Connect / OAuth / SCIM 技術解説 - ID&IT 2014 #idit2014Nov Matake
 
FAPI and Beyond: From an specification author's point of view #fapisum - Japa...
FAPI and Beyond: From an specification author's point of view #fapisum - Japa...FAPI and Beyond: From an specification author's point of view #fapisum - Japa...
FAPI and Beyond: From an specification author's point of view #fapisum - Japa...FinTechLabs.io
 
英国オープンバンキング技術仕様の概要
英国オープンバンキング技術仕様の概要英国オープンバンキング技術仕様の概要
英国オープンバンキング技術仕様の概要Tatsuo Kudo
 
Financial-grade API Hands-on with Authlete
Financial-grade API Hands-on with AuthleteFinancial-grade API Hands-on with Authlete
Financial-grade API Hands-on with AuthleteTatsuo Kudo
 
ログ管理のベストプラクティス
ログ管理のベストプラクティスログ管理のベストプラクティス
ログ管理のベストプラクティスAkihiro Kuwano
 
OpenID Connect入門
OpenID Connect入門OpenID Connect入門
OpenID Connect入門土岐 孝平
 
エンタープライズIT環境での OpenID Connect / SCIM の具体的実装方法 idit2014
エンタープライズIT環境での OpenID Connect / SCIM の具体的実装方法 idit2014エンタープライズIT環境での OpenID Connect / SCIM の具体的実装方法 idit2014
エンタープライズIT環境での OpenID Connect / SCIM の具体的実装方法 idit2014Takashi Yahata
 
PDSを実現するにあたっての技術動向の紹介 (OAuth, OpenID Connect, UMAなど)
PDSを実現するにあたっての技術動向の紹介 (OAuth, OpenID Connect, UMAなど)PDSを実現するにあたっての技術動向の紹介 (OAuth, OpenID Connect, UMAなど)
PDSを実現するにあたっての技術動向の紹介 (OAuth, OpenID Connect, UMAなど)Tatsuo Kudo
 
OIDC(OpenID Connect)について解説①
OIDC(OpenID Connect)について解説①OIDC(OpenID Connect)について解説①
OIDC(OpenID Connect)について解説①iPride Co., Ltd.
 
FAPI (Financial-grade API) and CIBA (Client Initiated Backchannel Authenticat...
FAPI (Financial-grade API) and CIBA (Client Initiated Backchannel Authenticat...FAPI (Financial-grade API) and CIBA (Client Initiated Backchannel Authenticat...
FAPI (Financial-grade API) and CIBA (Client Initiated Backchannel Authenticat...Tatsuo Kudo
 
OAuth 2.0 と ライブラリ
OAuth 2.0 と ライブラリOAuth 2.0 と ライブラリ
OAuth 2.0 と ライブラリKenji Otsuka
 
OIDC(OpenID Connect)について解説③
OIDC(OpenID Connect)について解説③OIDC(OpenID Connect)について解説③
OIDC(OpenID Connect)について解説③iPride Co., Ltd.
 

Ähnlich wie The Latest Specs of OpenID Connect at #idcon 9 (20)

091009 Identity Conference #6 ritou
091009 Identity Conference #6 ritou091009 Identity Conference #6 ritou
091009 Identity Conference #6 ritou
 
OpenID_Connect_Spec_Demo
OpenID_Connect_Spec_DemoOpenID_Connect_Spec_Demo
OpenID_Connect_Spec_Demo
 
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
 
OCHaCafe#5 - 避けては通れない!認証・認可
OCHaCafe#5 - 避けては通れない!認証・認可OCHaCafe#5 - 避けては通れない!認証・認可
OCHaCafe#5 - 避けては通れない!認証・認可
 
「金融API向けOAuth」にみるOAuthプロファイリングの実際 #secjaws #finsecjaws01 #oauth #oidc #api
「金融API向けOAuth」にみるOAuthプロファイリングの実際 #secjaws #finsecjaws01 #oauth #oidc #api「金融API向けOAuth」にみるOAuthプロファイリングの実際 #secjaws #finsecjaws01 #oauth #oidc #api
「金融API向けOAuth」にみるOAuthプロファイリングの実際 #secjaws #finsecjaws01 #oauth #oidc #api
 
0905xx Hybrid Memo
0905xx Hybrid Memo0905xx Hybrid Memo
0905xx Hybrid Memo
 
OAuth / OpenID Connect (OIDC) の最新動向と Authlete のソリューション
OAuth / OpenID Connect (OIDC) の最新動向と Authlete のソリューションOAuth / OpenID Connect (OIDC) の最新動向と Authlete のソリューション
OAuth / OpenID Connect (OIDC) の最新動向と Authlete のソリューション
 
SAML / OpenID Connect / OAuth / SCIM 技術解説 - ID&IT 2014 #idit2014
SAML / OpenID Connect / OAuth / SCIM 技術解説  - ID&IT 2014 #idit2014SAML / OpenID Connect / OAuth / SCIM 技術解説  - ID&IT 2014 #idit2014
SAML / OpenID Connect / OAuth / SCIM 技術解説 - ID&IT 2014 #idit2014
 
FAPI and Beyond: From an specification author's point of view #fapisum - Japa...
FAPI and Beyond: From an specification author's point of view #fapisum - Japa...FAPI and Beyond: From an specification author's point of view #fapisum - Japa...
FAPI and Beyond: From an specification author's point of view #fapisum - Japa...
 
Gaeja20121130
Gaeja20121130Gaeja20121130
Gaeja20121130
 
英国オープンバンキング技術仕様の概要
英国オープンバンキング技術仕様の概要英国オープンバンキング技術仕様の概要
英国オープンバンキング技術仕様の概要
 
Financial-grade API Hands-on with Authlete
Financial-grade API Hands-on with AuthleteFinancial-grade API Hands-on with Authlete
Financial-grade API Hands-on with Authlete
 
ログ管理のベストプラクティス
ログ管理のベストプラクティスログ管理のベストプラクティス
ログ管理のベストプラクティス
 
OpenID Connect入門
OpenID Connect入門OpenID Connect入門
OpenID Connect入門
 
エンタープライズIT環境での OpenID Connect / SCIM の具体的実装方法 idit2014
エンタープライズIT環境での OpenID Connect / SCIM の具体的実装方法 idit2014エンタープライズIT環境での OpenID Connect / SCIM の具体的実装方法 idit2014
エンタープライズIT環境での OpenID Connect / SCIM の具体的実装方法 idit2014
 
PDSを実現するにあたっての技術動向の紹介 (OAuth, OpenID Connect, UMAなど)
PDSを実現するにあたっての技術動向の紹介 (OAuth, OpenID Connect, UMAなど)PDSを実現するにあたっての技術動向の紹介 (OAuth, OpenID Connect, UMAなど)
PDSを実現するにあたっての技術動向の紹介 (OAuth, OpenID Connect, UMAなど)
 
OIDC(OpenID Connect)について解説①
OIDC(OpenID Connect)について解説①OIDC(OpenID Connect)について解説①
OIDC(OpenID Connect)について解説①
 
FAPI (Financial-grade API) and CIBA (Client Initiated Backchannel Authenticat...
FAPI (Financial-grade API) and CIBA (Client Initiated Backchannel Authenticat...FAPI (Financial-grade API) and CIBA (Client Initiated Backchannel Authenticat...
FAPI (Financial-grade API) and CIBA (Client Initiated Backchannel Authenticat...
 
OAuth 2.0 と ライブラリ
OAuth 2.0 と ライブラリOAuth 2.0 と ライブラリ
OAuth 2.0 と ライブラリ
 
OIDC(OpenID Connect)について解説③
OIDC(OpenID Connect)について解説③OIDC(OpenID Connect)について解説③
OIDC(OpenID Connect)について解説③
 

Mehr von Ryo Ito

安全な"○○でログイン"の作り方 @ NDS in Niigata #1
安全な"○○でログイン"の作り方 @ NDS in Niigata #1安全な"○○でログイン"の作り方 @ NDS in Niigata #1
安全な"○○でログイン"の作り方 @ NDS in Niigata #1Ryo Ito
 
idcon mini vol3 CovertRedirect
idcon mini vol3 CovertRedirectidcon mini vol3 CovertRedirect
idcon mini vol3 CovertRedirectRyo Ito
 
OpenID-TechNight-11-LT-mixi
OpenID-TechNight-11-LT-mixiOpenID-TechNight-11-LT-mixi
OpenID-TechNight-11-LT-mixiRyo Ito
 
Idcon 17th ritou OAuth 2.0 CSRF Protection
Idcon 17th ritou OAuth 2.0 CSRF ProtectionIdcon 17th ritou OAuth 2.0 CSRF Protection
Idcon 17th ritou OAuth 2.0 CSRF ProtectionRyo Ito
 
YAPC::Tokyo 2013 ritou OpenID Connect
YAPC::Tokyo 2013 ritou OpenID ConnectYAPC::Tokyo 2013 ritou OpenID Connect
YAPC::Tokyo 2013 ritou OpenID ConnectRyo Ito
 
なんとなくOAuth怖いって思ってるやつちょっと来い
なんとなくOAuth怖いって思ってるやつちょっと来いなんとなくOAuth怖いって思ってるやつちょっと来い
なんとなくOAuth怖いって思ってるやつちょっと来いRyo Ito
 
#idcon 15th ritou 2factor auth
#idcon 15th ritou 2factor auth#idcon 15th ritou 2factor auth
#idcon 15th ritou 2factor authRyo Ito
 
Open id connect claims idcon mini vol1
Open id connect claims idcon mini vol1Open id connect claims idcon mini vol1
Open id connect claims idcon mini vol1Ryo Ito
 
OID to OIDC idcon mini vol1
OID to OIDC idcon mini vol1OID to OIDC idcon mini vol1
OID to OIDC idcon mini vol1Ryo Ito
 
Account Chooser idcon mini Vol.1
Account Chooser idcon mini Vol.1Account Chooser idcon mini Vol.1
Account Chooser idcon mini Vol.1Ryo Ito
 
BackplaneProtocol超入門
BackplaneProtocol超入門BackplaneProtocol超入門
BackplaneProtocol超入門Ryo Ito
 
UserManagedAccess_idcon13
UserManagedAccess_idcon13UserManagedAccess_idcon13
UserManagedAccess_idcon13Ryo Ito
 
WebIntents × SNS
WebIntents × SNSWebIntents × SNS
WebIntents × SNSRyo Ito
 
Idcon11 implicit demo
Idcon11 implicit demoIdcon11 implicit demo
Idcon11 implicit demoRyo Ito
 
OAuth 2.0 Dance School #swj
OAuth 2.0 Dance School #swj OAuth 2.0 Dance School #swj
OAuth 2.0 Dance School #swj Ryo Ito
 
Ritou idcon7
Ritou idcon7Ritou idcon7
Ritou idcon7Ryo Ito
 
Summary of OAuth 2.0 draft 8 memo
Summary of OAuth 2.0 draft 8 memoSummary of OAuth 2.0 draft 8 memo
Summary of OAuth 2.0 draft 8 memoRyo Ito
 
Introduction of OAuth 2.0 vol.1
Introduction of OAuth 2.0 vol.1Introduction of OAuth 2.0 vol.1
Introduction of OAuth 2.0 vol.1Ryo Ito
 
Anonymous OAuth Test
Anonymous OAuth TestAnonymous OAuth Test
Anonymous OAuth TestRyo Ito
 

Mehr von Ryo Ito (19)

安全な"○○でログイン"の作り方 @ NDS in Niigata #1
安全な"○○でログイン"の作り方 @ NDS in Niigata #1安全な"○○でログイン"の作り方 @ NDS in Niigata #1
安全な"○○でログイン"の作り方 @ NDS in Niigata #1
 
idcon mini vol3 CovertRedirect
idcon mini vol3 CovertRedirectidcon mini vol3 CovertRedirect
idcon mini vol3 CovertRedirect
 
OpenID-TechNight-11-LT-mixi
OpenID-TechNight-11-LT-mixiOpenID-TechNight-11-LT-mixi
OpenID-TechNight-11-LT-mixi
 
Idcon 17th ritou OAuth 2.0 CSRF Protection
Idcon 17th ritou OAuth 2.0 CSRF ProtectionIdcon 17th ritou OAuth 2.0 CSRF Protection
Idcon 17th ritou OAuth 2.0 CSRF Protection
 
YAPC::Tokyo 2013 ritou OpenID Connect
YAPC::Tokyo 2013 ritou OpenID ConnectYAPC::Tokyo 2013 ritou OpenID Connect
YAPC::Tokyo 2013 ritou OpenID Connect
 
なんとなくOAuth怖いって思ってるやつちょっと来い
なんとなくOAuth怖いって思ってるやつちょっと来いなんとなくOAuth怖いって思ってるやつちょっと来い
なんとなくOAuth怖いって思ってるやつちょっと来い
 
#idcon 15th ritou 2factor auth
#idcon 15th ritou 2factor auth#idcon 15th ritou 2factor auth
#idcon 15th ritou 2factor auth
 
Open id connect claims idcon mini vol1
Open id connect claims idcon mini vol1Open id connect claims idcon mini vol1
Open id connect claims idcon mini vol1
 
OID to OIDC idcon mini vol1
OID to OIDC idcon mini vol1OID to OIDC idcon mini vol1
OID to OIDC idcon mini vol1
 
Account Chooser idcon mini Vol.1
Account Chooser idcon mini Vol.1Account Chooser idcon mini Vol.1
Account Chooser idcon mini Vol.1
 
BackplaneProtocol超入門
BackplaneProtocol超入門BackplaneProtocol超入門
BackplaneProtocol超入門
 
UserManagedAccess_idcon13
UserManagedAccess_idcon13UserManagedAccess_idcon13
UserManagedAccess_idcon13
 
WebIntents × SNS
WebIntents × SNSWebIntents × SNS
WebIntents × SNS
 
Idcon11 implicit demo
Idcon11 implicit demoIdcon11 implicit demo
Idcon11 implicit demo
 
OAuth 2.0 Dance School #swj
OAuth 2.0 Dance School #swj OAuth 2.0 Dance School #swj
OAuth 2.0 Dance School #swj
 
Ritou idcon7
Ritou idcon7Ritou idcon7
Ritou idcon7
 
Summary of OAuth 2.0 draft 8 memo
Summary of OAuth 2.0 draft 8 memoSummary of OAuth 2.0 draft 8 memo
Summary of OAuth 2.0 draft 8 memo
 
Introduction of OAuth 2.0 vol.1
Introduction of OAuth 2.0 vol.1Introduction of OAuth 2.0 vol.1
Introduction of OAuth 2.0 vol.1
 
Anonymous OAuth Test
Anonymous OAuth TestAnonymous OAuth Test
Anonymous OAuth Test
 

Kürzlich hochgeladen

TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 

Kürzlich hochgeladen (8)

TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 

The Latest Specs of OpenID Connect at #idcon 9

  • 1. The Latest Specs of OpenID Connect @ritou 2011/7/8 Identity Conference #9
  • 3. はじめに • 情報漏えい騒ぎ – いまさらPWの使いまわしのリスクに注目 • いまこそOpenID/OAuthの出番? • OpenID / OAuth へのネガティブな影響 – あるOPのパスワードが漏れたらRP/Clientまで 全部やられるね → orz 今こそ安全なAuthN/Zのしくみを提供してア ピールすべき! 3
  • 4. OpenIDとOAuth • OpenID Auth 2.0 • OAuth 1.0a • OpenID OAuth Extension • OpenID v.Next • OAuth WRAP – Artifact Binding (for • OAuth 2.0 Mobile etc...) • OpenID Connect 4
  • 5. OpenID Connect • Authorization : OAuth 2.0 Base • Authentication • Attribute transmission – UserInfo Endpoint • Discovery – JSON Based • Dynamic Client Registration • Session Management – Refresh/Check/Logout 5
  • 6. Latest Specs • Core : Messages, Abstract flow • Framework : Req/Res formats • Discovery • HTTP Redirect Binding : HTTP protocol binding • Session Management • Dynamic Client Registration • UserInfo 6
  • 7. Latest Specs • Core – http://openid.net/specs/openid-connect-core-1_0.html • Framework – http://openid.net/specs/openid-connect-framework- 1_0.html • Discovery – http://openid.net/specs/openid-connect-discovery- 1_0.html • HTTP Redirect Binding – http://openid.net/specs/openid-connect-http-redirect- 7 1_0.html
  • 8. Latest Specs • Session Management – http://openid.net/specs/openid-connect-session- 1_0.html • Dynamic Client Registration – http://openid.net/specs/openid-connect-registration- 1_0.html • UserInfo – http://openid.net/specs/openid-connect-userinfo- 1_0.html 8
  • 9. Latest Specs • Core : Messages, Abstract flow • Framework : Req/Res formats • Discovery • HTTP Redirect Binding : HTTP protocol binding • Session Management • Dynamic Client Registration • UserInfo 9
  • 10. Latest Specs • Core : Messages, Abstract flow • Framework : Req/Res formats • Discovery • HTTP Redirect Binding : HTTP protocol binding • Session Management • Dynamic Client Registration • UserInfo 10
  • 11. GET /.well-known/simple-web-discovery OpenID Connect Discovery • Endpoint,メタデータをDiscoveryするしくみ – Endpoints – サポートしているFlow,Identifierの種類など • HTTPS + GETでDiscovery用エンドポイントに アクセス • レスポンスフォーマットはJSONオブジェクト – XRDよりも簡単!? 11
  • 12. GET /.well-known/simple-web-discovery OpenID Connect Simple Web Discovery • Discoveryに利用できるIdentifierは3種類 – Hostname – Email – URL • OpenID Connectの最初の利用例 – Emailアドレスを入力(≒WebFinger) – OP Identifierを入力(≒OpenID Auth 2.0) – OpenID URLを入力(≒OpenID Auth 1.1) 12
  • 13. GET /.well-known/simple-web-discovery OpenID Connect Simple Web Discovery • Request GET /.well-known/simple-web-discovery? principal= joe@example.com& service=http://openid.net/specs/connect/1.0/issuer HTTP/1.1 Host: example.com 13
  • 14. GET /.well-known/simple-web-discovery OpenID Connect Simple Web Discovery • Response HTTP/1.1 200 O.K. Content-Type: application/json { "locations": ["https://example.com/auth"] } 別のURLへのリダイレクト指定も可能 14
  • 15. Latest Specs • Core : Messages, Abstract flow • Framework : Req/Res formats • Discovery • HTTP Redirect Binding : HTTP protocol binding • Session Management • Dynamic Client Registration • UserInfo 15
  • 16. OpenID Connect Dynamic Client Registration • DiscoveryによりRegistration Endpointを 取得 • Registration EndpointにClient登録/更新 のリクエストを送る 16
  • 17. OpenID Connect Dynamic Client Registration • Request (HTTP POST, JSONオブジェクト) – type : “client_associate”/“client_update” – client_id – client_secret – contact : email list – application_type, application_name – logo_url, redirect_url, js_origin_url, jwk_url – sector_identifier @_nat JWTではないのでしょうか? 17
  • 18. OpenID Connect Dynamic Client Registration • Response (JSON object) – client_id – client_secret – expires_in 18
  • 19. Latest Specs • Core : Messages, Abstract flow • Framework : Req/Res formats • Discovery • HTTP Redirect Binding : HTTP protocol binding • Session Management • Dynamic Client Registration • UserInfo 19
  • 20. HTTP Redirect Binding • OAuth 2.0のFlowにOpenID Connectの Request/Responseパラメータを加える方法 20
  • 21. Protocol Flows • Authorization Code Flow – ClientがWeb Serverとして動作 • Implicit Flow – ClientがJavaScript, Flashなどで動作 21
  • 22. Protocol Flows • Authorization Code Flow – ClientがWeb Serverとして動作 • Implicit Flow – ClientがJavaScript, Flashなどで動作 22
  • 23. Authorization Code Flow End User Client AuthZ Resource 0. Clientにサービス要求 Server Server 1. Request準備 2. AuthZ ServerにRequestを送信 3. Authentication 4. Consent/Authorization 5. AuthZ CodeとともにUserを戻す 6. Assertion要求 7. Assertion応答 8. UserInfo Endpointにアクセス 23 9. 属性情報など応答
  • 24. Authorization Code Flow End User Client AuthZ Resource 0. Clientにサービス要求 Server Server 1. Request準備 2. AuthZ ServerにRequestを送信 3. Authentication 4. Consent/Authorization 5. AuthZ CodeとともにUserを戻す 6. Assertion要求 7. Assertion応答 8. UserInfo Endpointにアクセス 24 9. 属性情報など応答
  • 25. Requestの送り方は3種類 • Query Parameters Method – クエリパラメータにそのまま含む • Request Parameter Method – OpenID Connect RequestをToken(文字列) にしてrequestパラメータとして指定 • UserInfo/Session Management関連 • Request File Method – JSONオブジェクトを返すURLを用意して、その URLをパラメータに含む 25
  • 28. request パラメータ • OpenID Connect リクエスト – 下記機能についてのリクエスト • UserInfo : 必要なクレーム、フォーマット • Session Management : ID Tokenに含むクレーム、 PAPE関連のパラメータなど • JSONオブジェクトを文字列として表現 – “jwt_header.jwt_payload.jwt_crypto” • jwt_header : メタデータをBase64URLEnc • jwt_payload : JSONオブジェクトをBase64URLEnc • jwt_crypto : Signatureなど 28
  • 29. Request File Method • JSON オブジェクトを返すRequest URLを作 成 https://rp.example.com/rf.js { "response_type": "code", "client_id": "s6BhdRkqt3", "redirect_uri": "https%3A%2F%2Fclient%2Eexample%2Ecom%2Fcb", "scope": "openid", "state": "af0ifjsldkj“ 29 }
  • 31. Authorization Code Flow End User Client AuthZ Resource 0. Clientにサービス要求 Server Server 1. Request準備 2. AuthZ ServerにRequestを送信 2.5. Request File 取得 3. Authentication 4. Consent/Authorization 5. AuthZ CodeとともにUserを戻す 6. Assertion要求 7. Assertion応答 8. UserInfo Endpointにアクセス 31 9. 属性情報など応答
  • 32. Latest Specs • Core : Messages, Abstract flow • Framework : Req/Res formats • Discovery • HTTP Redirect Binding : HTTP protocol binding • Session Management • Dynamic Client Registration • UserInfo 32
  • 33. OpenID Connect Framework • OAuth 2.0 に追加される OpenID Connect独自リクエスト/レスポンス • UserInfo エンドポイントで返されるClaim • その他... 33
  • 34. OpenID Request Object • OpenID Connect リクエスト – 下記機能についてのリクエスト • UserInfo : 必要なクレーム、フォーマット • Session Management : ID Tokenに含むクレーム、 PAPE関連のパラメータなど • JSONオブジェクトを文字列として表現 – “jwt_header.jwt_payload.jwt_crypto” • jwt_header : メタデータをBase64URLEnc • jwt_payload : JSONオブジェクトをBase64URLEnc • jwt_crypto : Signatureなど 34
  • 35. OpenID Request Object { "inf": { "clm": { "name": null, "nickname": {"opt": true}, "email": null, "verified": null, "picture": {"opt": true}, }, "fmt": "sig" } "idt": { "mxa": 86400, "eaa": "2" 35 }
  • 36. UserInfo Endpoint : Claims • 下記の3種類のClaimを提供する – Normal Claims : OPがAssertしたClaims – Aggregated Claims : OPから返されるが、別 のOPがAssertしたClaims • JWT形式 – Distributed Claims • 別のOPのエンドポイントから返されるClaims • endpoint, access_token 36
  • 37. Authorization Code Flow End User Client AuthZ Resource 0. Clientにサービス要求 Server Server 1. Request準備 2. AuthZ ServerにRequestを送信 3. Authentication 4. Consent/Authorization 5. AuthZ CodeとともにUserを戻す 6. Assertion要求 7. Assertion応答 8. UserInfo Endpointにアクセス 37 9. 属性情報など応答
  • 38. { "name": "Jane Doe" ... "_claim_names": { "birthday": "src1", "eye_color": "src1", "credit_score": "src3" }, "_claim_sources": { "src1": {"JWT": "JWT_hdr.JWT_claims.JWT_crypto"}, "src3": {"endpoint": "https://creditagency.example.com/claimshere", "access_token": "ksj3n283dke"} } } 38
  • 39. Latest Specs • Core : Messages, Abstract flow • Framework : Req/Res formats • Discovery • HTTP Redirect Binding : HTTP protocol binding • Session Management • Dynamic Client Registration • UserInfo 39
  • 40. OpenID Connect UserInfo • FrameworkにあったNormal Claimsについ ての定義 – Profileデータ • Request – access_token – schema : “openid” 40
  • 41. OpenID Connect UserInfo • ResponseはJSONオブジェクト or JWT – AuthZ Requestの際にJWT形式で指定 41
  • 42. Latest Specs • Core : Messages, Abstract flow • Framework : Req/Res formats • Discovery • HTTP Redirect Binding : HTTP protocol binding • Session Management • Dynamic Client Registration • UserInfo 42
  • 43. OpenID Connect Session Management • ID Tokenを用いたセッション管理 – 現在誰がログイン中なのか確認する – Client側からログアウトさせる • ID Token : JWSを用いた署名付きクレーム – issur – client_id – user_id – audience – exp 43
  • 44. OpenID Connect Session Management • Creating Session : ID Token発行 – Authorization Request • Clientはresponse_type に “id_token”を含む – Access Token Response • AuthZ ServerはAccess Tokenと一緒にid_tokenを 渡す 44
  • 45. OpenID Connect Session Management • Session Management Endpoints – Refresh Session : expireしたid_tokenの更新 – Check Session : id_tokenの内容取得 – End Session : Clientからのログアウト要求 45