SlideShare uma empresa Scribd logo
1 de 35
OpenID Connect
  Spec & Demo?

                     @ritou
  http://d.hatena.ne.jp/ritou
           OpenID TechNight #8
                      2011/9/9
OpenID Tech Night Vol.7

↓@_natさんによる詳しい説明はこちら↓
 Event Report

 http://j.mp/openid-tn7
OpenID & OAuth
OpenID 2.0

 「あなたが誰かを伝える」しくみ
 いいね!
     OP Identifierによる使いやすさ
     拡張機能(PAPE,AX,UI)
 ないね...
   モバイル環境での使い勝手(POST,Long URL...)
OAuth 1.0a

 「あなたのデータにアクセスさせる」しくみ
 いいね!
     ユーザー同意に基づいたデータアクセス
     署名付きリクエスト
 ないね...
   複雑な署名ロジック
   少ないユースケース
      Secretが安全に管理できないとき
      ブラウザ使えないとき→xAuth
OpenID OAuth Extension

 OpenID 2.0とOAuth 1.0は似たようなUXな
  ので、一緒にしてみた
 結果は...
  OAuth 部分の処理があるためOPが限定される
  異なる仕様の組み合わせは工数も足し算
OAuth 2.0

 幅広いユースケースを想定して進化
 @novが説明してくれたはず!
OAuth for SSO

 OAuth + Profile APIでSSO機能を実現できる
  Twitter / Facebook だけでじゅうぶん
  OpenID なんていらない?


 本当に、それでいいの?
  Profile APIの仕様って統一されてるの?
  PAPEみたいな認証に関する要求はできる?
  そもそもOAuthでセッション管理とか・・・
  ユーザーが自由にOPを選ぶ時代は・・・
OpenID Connect

 OAuth 2.0 Base
 ID Token
   認証結果の確認
   セッション管理
 UserInfo API
   OPが持っているデータ
   他のOPが持つデータ(集約/分散Claims)
 Discovery & Dinamic Registration(Optional)
   事前登録なしからの動的RP(Client)登録
Spec
OpenID Connect Specs

 Basic Client Profile: Simple RP
 Standard : HTTP Binding
 Messages
 Dynamic Registration
 Discovery
 Session Management
JSON Web Token

 JSONオブジェクトを文字列で表したもの
   HTTP Header
   query parameter
 Base64 URL Encode/Decode
 3 Segment
   Header
   Claim
   Crypt
 jwtHeader.jwtPayload.jwtCrypt
OpenID Connect Basic Client

 もっともシンプルな実装
 OAuth 2.0 Implicit Flow
   JavaScriptのみでも実装可能!
     Twitter @ anywhereのようなユースケース
End User                  RP                      OP



    1. Authorization Request
              2. Authentication
              3. Consent/Authorization


    4. Authorization Response
                           5. Check Session Request


                           6. Check Session Response
                           7. UserInfo Request


                           8. UserInfo Response
Authorization Request

 HTTP/1.1 302 Found
 Location: https://server.example.com/authorize?
 response_type=token id_token
 &client_id=your_clientid_string
 &redirect_uri=https%3A%2F%2Fclient%2Eexample%2Ecom
 %2Fcb
 &scope=openid email picture
 &state=state_string
 &display=touch
 &prompt=login concent
 &nonce=nonce_string
End User                  RP                      OP



    1. Authorization Request

              2. Authentication
              3. Consent/Authorization


    4. Authorization Response
                           5. Check Session Request


                           6. Check Session Response
                           7. UserInfo Request


                           8. UserInfo Response
Authorization Response

 HTTP/1.1 302 Found
 Location: https://client.example.com/#
 access_token=access_token_str
 &token_type=bearer
 &id_token=jwtheader.jwtpayload.jwtsigned
 &expires_in=3600
 &state=state_string
End User                  RP                      OP



    1. Authorization Request

              2. Authentication
              3. Consent/Authorization


    4. Authorization Response
                       5. Check Session Request

                       6. Check Session Response
                           7. UserInfo Request


                           8. UserInfo Response
Check Session Request

 GET /check_session?id_token=
 jwtheader.jwtpayload.jwtsigned
 HTTP/1.1
 Host: server.example.com
Check Session Response

 HTTP/1.1 200 OK
 Content-Type: application/json
 {
 "iss": "http://server.example.com",
 "user_id": "00001",
 "aud": "http://client.example.net",
 "exp":1311281970,
 “nonce”:nonce_string (←optional)
 }
End User                  RP                      OP



    1. Authorization Request

              2. Authentication
              3. Consent/Authorization


    4. Authorization Response
                           5. Check Session Request


                           6. Check Session Response
                          7. UserInfo Request

                          8. UserInfo Response
UserInfo Request

 GET /userinfo HTTP/1.1
 Host: server.example.com
 Authorization: Bearer access_token_str
UserInfo Response

 HTTP/1.1 200 OK
 Content-Type: application/json
 {
 "name": " ritou ",
 "given_name": "Ryo",
 "family_name": "Ito",
 "email": "ritou.06@gmail.com",
 "picture": "http://example.com/ritou/me.jpg"
 }
OpenID Connect Standard

 Authorization Codeにも対応
 Connect独自部分の要求をJSONオブジェク
  トで表現
 ID TokenはJWT形式
  中身はCheck Session Endpointで返されるJSON
   オブジェクト
  RSAで署名ならRP側でも検証可能
 UserInfoのレスポンスを拡張
OpenID Request Object
{ "response_type": "code id_token",
 ...
"userinfo":
 {
   "claims":
    {
      "name": null,
      "nickname": {"optional": true},
      "email": null,
      "verified": null,
      "profile": null,
    }
   "format": "unsigned"
 }
OpenID Request Object

...
 "id_token":
  {
    "claims":
     {
      "auth_time": null
     }
    "max_age": 86400,
    "iso29115": "2"
  }
}
UserInfo Claims

 Normal Claims
   OPが持つユーザーデータ
   標準的なプロフィール
 Aggregated Claims
   他のOPが持つユーザーデータ
     JWT形式で返す
 Distributed Claims
   他のOPが持つユーザーデータ
     Endpoint
     Access Token(optional)
Aggregated Claims
{
    "name": "Jane Doe",
    "_claim_names": { "address": "src1",
                      "phone_number": "src1“},

    "_claim_sources": {
      "src1": {
           "JWT": "JWT-A_header.JWT-A_payload.JWT-
       A_signature“
       },
    }
}
Distributed Claims
{
 "name": "Jane Doe",
"_claim_names": {
   "payment_info": "src1",
   "credit_score": "src2"
  },
 "_claim_sources": {
   "src1": {"endpoint":
     "https://bank.example.com/claimsource"},
   "src2": {
     "endpoint":
     "https://creditagency.example.com/claimshere",
     "access_token": "ksj3n283dke"}
  }
}
Distributed Claims
{
 "name": "Jane Doe",
"_claim_names": {
   "payment_info": "src1",
   "credit_score": "src2"
  },
 "_claim_sources": {
   "src1": {"endpoint":
     "https://bank.example.com/claimsource"},
   "src2": {
     "endpoint":
     "https://creditagency.example.com/claimshere",
     "access_token": "ksj3n283dke"}
  }
}
Links
Links

 http://openid.net/connect/
   OpenID ファウンデーション
 http://lists.openid.net/mailman/listinfo/openi
  d-specs-ab
   Artifact Binding/Connect Working Group
Demo
OpenID Connect Sandbox

 https://openidconnect.info/
  OpenID ConnectのOP機能
    ID Token
    UserInfo API
    Discovery
    Dynamic Client Registration
  mixiアカウントで利用可能
OpenID Connect やってみませんか?

 ほぼ確実に流行ります
  Facebook, Google, salesforce...


 今は仕様つめてる段階
  “手を出せない” のではなく”仕様決められる”
  今、文句を言える人が求められています!

Mais conteúdo relacionado

Destaque

Destaque (15)

Lenzskinz 1
Lenzskinz 1Lenzskinz 1
Lenzskinz 1
 
Prestige College Web Design
Prestige College Web DesignPrestige College Web Design
Prestige College Web Design
 
Alex Han Portfolio samples
Alex Han Portfolio samplesAlex Han Portfolio samples
Alex Han Portfolio samples
 
REFUEL
REFUELREFUEL
REFUEL
 
UD3.ANTECEDENTS DE LA TECTÒNICA DE PLAQUES
UD3.ANTECEDENTS DE LA TECTÒNICA DE PLAQUESUD3.ANTECEDENTS DE LA TECTÒNICA DE PLAQUES
UD3.ANTECEDENTS DE LA TECTÒNICA DE PLAQUES
 
Suma_Halkude_Resume
Suma_Halkude_ResumeSuma_Halkude_Resume
Suma_Halkude_Resume
 
Refranes
RefranesRefranes
Refranes
 
Haji dan umrah tekpen ppt
Haji dan umrah tekpen pptHaji dan umrah tekpen ppt
Haji dan umrah tekpen ppt
 
Bab 10 Daman dan Kafalah
Bab 10 Daman dan KafalahBab 10 Daman dan Kafalah
Bab 10 Daman dan Kafalah
 
портфолио дудка
портфолио дудкапортфолио дудка
портфолио дудка
 
Efectos biologicos de las radiaciones ionizantes - J Colchado
Efectos biologicos de las radiaciones ionizantes - J ColchadoEfectos biologicos de las radiaciones ionizantes - J Colchado
Efectos biologicos de las radiaciones ionizantes - J Colchado
 
UD2 MÈTODES D'ESTUDI DE L'INTERIOR TERRESTRE
UD2 MÈTODES D'ESTUDI DE L'INTERIOR TERRESTREUD2 MÈTODES D'ESTUDI DE L'INTERIOR TERRESTRE
UD2 MÈTODES D'ESTUDI DE L'INTERIOR TERRESTRE
 
ARIADNE- Quantity of access offered (5)
ARIADNE- Quantity of access offered (5)ARIADNE- Quantity of access offered (5)
ARIADNE- Quantity of access offered (5)
 
ARIADNE: Report on the ARIADNE Linked Data Cloud
ARIADNE: Report on the ARIADNE Linked Data CloudARIADNE: Report on the ARIADNE Linked Data Cloud
ARIADNE: Report on the ARIADNE Linked Data Cloud
 
Cube
CubeCube
Cube
 

Semelhante a OpenID_Connect_Spec_Demo

OpenID Connect - Nat Sakimura at OpenID TechNight #7
OpenID Connect - Nat Sakimura at OpenID TechNight #7OpenID Connect - Nat Sakimura at OpenID TechNight #7
OpenID Connect - Nat Sakimura at OpenID TechNight #7OpenID Foundation Japan
 
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜Masaru Kurahayashi
 
PDSを実現するにあたっての技術動向の紹介 (OAuth, OpenID Connect, UMAなど)
PDSを実現するにあたっての技術動向の紹介 (OAuth, OpenID Connect, UMAなど)PDSを実現するにあたっての技術動向の紹介 (OAuth, OpenID Connect, UMAなど)
PDSを実現するにあたっての技術動向の紹介 (OAuth, OpenID Connect, UMAなど)Tatsuo Kudo
 
エンタープライズIT環境での OpenID Connect / SCIM の具体的実装方法 idit2014
エンタープライズIT環境での OpenID Connect / SCIM の具体的実装方法 idit2014エンタープライズIT環境での OpenID Connect / SCIM の具体的実装方法 idit2014
エンタープライズIT環境での OpenID Connect / SCIM の具体的実装方法 idit2014Takashi Yahata
 
OpenStack Study#9 JOSUG
OpenStack Study#9 JOSUGOpenStack Study#9 JOSUG
OpenStack Study#9 JOSUGHideki Saito
 
FAPI Security について聞いてきた話(2017/08/18 社内勉強会)
FAPI Security について聞いてきた話(2017/08/18 社内勉強会)FAPI Security について聞いてきた話(2017/08/18 社内勉強会)
FAPI Security について聞いてきた話(2017/08/18 社内勉強会)Yoko TAMADA
 
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
 
OAuth 2.0 と ライブラリ
OAuth 2.0 と ライブラリOAuth 2.0 と ライブラリ
OAuth 2.0 と ライブラリKenji Otsuka
 
リアルFacebookガジェットを作った(ロングバージョン)
リアルFacebookガジェットを作った(ロングバージョン)リアルFacebookガジェットを作った(ロングバージョン)
リアルFacebookガジェットを作った(ロングバージョン)Mariko Goda
 
Twitter連携chrome extension作り方
Twitter連携chrome extension作り方Twitter連携chrome extension作り方
Twitter連携chrome extension作り方Hiroshi Oyamada
 
091009 Identity Conference #6 ritou
091009 Identity Conference #6 ritou091009 Identity Conference #6 ritou
091009 Identity Conference #6 ritouRyo Ito
 
「金融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
 
FAPI and beyond - よりよいセキュリティのために
FAPI and beyond - よりよいセキュリティのためにFAPI and beyond - よりよいセキュリティのために
FAPI and beyond - よりよいセキュリティのためにNat Sakimura
 
PRD-004_ここまでできる! Azure AD と Office 365 連携開発の先進手法
PRD-004_ここまでできる! Azure AD と Office 365 連携開発の先進手法PRD-004_ここまでできる! Azure AD と Office 365 連携開発の先進手法
PRD-004_ここまでできる! Azure AD と Office 365 連携開発の先進手法decode2016
 
0905xx Hybrid Memo
0905xx Hybrid Memo0905xx Hybrid Memo
0905xx Hybrid MemoRyo Ito
 
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
 
.NET ラボ~開発者のためのアイデンティティテクノロジーw/ Windows Phone
.NET ラボ~開発者のためのアイデンティティテクノロジーw/ Windows Phone.NET ラボ~開発者のためのアイデンティティテクノロジーw/ Windows Phone
.NET ラボ~開発者のためのアイデンティティテクノロジーw/ Windows Phonejunichi anno
 

Semelhante a OpenID_Connect_Spec_Demo (20)

OpenID Connect - Nat Sakimura at OpenID TechNight #7
OpenID Connect - Nat Sakimura at OpenID TechNight #7OpenID Connect - Nat Sakimura at OpenID TechNight #7
OpenID Connect - Nat Sakimura at OpenID TechNight #7
 
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
 
PDSを実現するにあたっての技術動向の紹介 (OAuth, OpenID Connect, UMAなど)
PDSを実現するにあたっての技術動向の紹介 (OAuth, OpenID Connect, UMAなど)PDSを実現するにあたっての技術動向の紹介 (OAuth, OpenID Connect, UMAなど)
PDSを実現するにあたっての技術動向の紹介 (OAuth, OpenID Connect, UMAなど)
 
エンタープライズIT環境での OpenID Connect / SCIM の具体的実装方法 idit2014
エンタープライズIT環境での OpenID Connect / SCIM の具体的実装方法 idit2014エンタープライズIT環境での OpenID Connect / SCIM の具体的実装方法 idit2014
エンタープライズIT環境での OpenID Connect / SCIM の具体的実装方法 idit2014
 
OpenStack Study#9 JOSUG
OpenStack Study#9 JOSUGOpenStack Study#9 JOSUG
OpenStack Study#9 JOSUG
 
FAPI Security について聞いてきた話(2017/08/18 社内勉強会)
FAPI Security について聞いてきた話(2017/08/18 社内勉強会)FAPI Security について聞いてきた話(2017/08/18 社内勉強会)
FAPI Security について聞いてきた話(2017/08/18 社内勉強会)
 
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
 
OAuth 2.0 と ライブラリ
OAuth 2.0 と ライブラリOAuth 2.0 と ライブラリ
OAuth 2.0 と ライブラリ
 
後期02
後期02後期02
後期02
 
リアルFacebookガジェットを作った(ロングバージョン)
リアルFacebookガジェットを作った(ロングバージョン)リアルFacebookガジェットを作った(ロングバージョン)
リアルFacebookガジェットを作った(ロングバージョン)
 
Twitter連携chrome extension作り方
Twitter連携chrome extension作り方Twitter連携chrome extension作り方
Twitter連携chrome extension作り方
 
091009 Identity Conference #6 ritou
091009 Identity Conference #6 ritou091009 Identity Conference #6 ritou
091009 Identity Conference #6 ritou
 
「金融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
 
FAPI and beyond - よりよいセキュリティのために
FAPI and beyond - よりよいセキュリティのためにFAPI and beyond - よりよいセキュリティのために
FAPI and beyond - よりよいセキュリティのために
 
20150723 最近の興味動向 fido編
20150723 最近の興味動向 fido編20150723 最近の興味動向 fido編
20150723 最近の興味動向 fido編
 
PRD-004_ここまでできる! Azure AD と Office 365 連携開発の先進手法
PRD-004_ここまでできる! Azure AD と Office 365 連携開発の先進手法PRD-004_ここまでできる! Azure AD と Office 365 連携開発の先進手法
PRD-004_ここまでできる! Azure AD と Office 365 連携開発の先進手法
 
0905xx Hybrid Memo
0905xx Hybrid Memo0905xx Hybrid Memo
0905xx Hybrid Memo
 
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...
 
.NET ラボ~開発者のためのアイデンティティテクノロジーw/ Windows Phone
.NET ラボ~開発者のためのアイデンティティテクノロジーw/ Windows Phone.NET ラボ~開発者のためのアイデンティティテクノロジーw/ Windows Phone
.NET ラボ~開発者のためのアイデンティティテクノロジーw/ Windows Phone
 

Mais de 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
 
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
 
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
 
OAuth 2.0 MAC Authentication
OAuth 2.0 MAC AuthenticationOAuth 2.0 MAC Authentication
OAuth 2.0 MAC AuthenticationRyo 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
 

Mais de Ryo Ito (17)

安全な"○○でログイン"の作り方 @ 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怖いって思ってるやつちょっと来い
 
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
 
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
 
OAuth 2.0 MAC Authentication
OAuth 2.0 MAC AuthenticationOAuth 2.0 MAC Authentication
OAuth 2.0 MAC Authentication
 
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
 

Último

NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~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
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 

Último (9)

NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~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月発表)
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 

OpenID_Connect_Spec_Demo

  • 1. OpenID Connect Spec & Demo? @ritou http://d.hatena.ne.jp/ritou OpenID TechNight #8 2011/9/9
  • 2. OpenID Tech Night Vol.7 ↓@_natさんによる詳しい説明はこちら↓  Event Report http://j.mp/openid-tn7
  • 4. OpenID 2.0  「あなたが誰かを伝える」しくみ  いいね!  OP Identifierによる使いやすさ  拡張機能(PAPE,AX,UI)  ないね...  モバイル環境での使い勝手(POST,Long URL...)
  • 5. OAuth 1.0a  「あなたのデータにアクセスさせる」しくみ  いいね!  ユーザー同意に基づいたデータアクセス  署名付きリクエスト  ないね...  複雑な署名ロジック  少ないユースケース  Secretが安全に管理できないとき  ブラウザ使えないとき→xAuth
  • 6. OpenID OAuth Extension  OpenID 2.0とOAuth 1.0は似たようなUXな ので、一緒にしてみた  結果は...  OAuth 部分の処理があるためOPが限定される  異なる仕様の組み合わせは工数も足し算
  • 8. OAuth for SSO  OAuth + Profile APIでSSO機能を実現できる  Twitter / Facebook だけでじゅうぶん  OpenID なんていらない?  本当に、それでいいの?  Profile APIの仕様って統一されてるの?  PAPEみたいな認証に関する要求はできる?  そもそもOAuthでセッション管理とか・・・  ユーザーが自由にOPを選ぶ時代は・・・
  • 9. OpenID Connect  OAuth 2.0 Base  ID Token  認証結果の確認  セッション管理  UserInfo API  OPが持っているデータ  他のOPが持つデータ(集約/分散Claims)  Discovery & Dinamic Registration(Optional)  事前登録なしからの動的RP(Client)登録
  • 10. Spec
  • 11. OpenID Connect Specs  Basic Client Profile: Simple RP  Standard : HTTP Binding  Messages  Dynamic Registration  Discovery  Session Management
  • 12. JSON Web Token  JSONオブジェクトを文字列で表したもの  HTTP Header  query parameter  Base64 URL Encode/Decode  3 Segment  Header  Claim  Crypt jwtHeader.jwtPayload.jwtCrypt
  • 13. OpenID Connect Basic Client  もっともシンプルな実装  OAuth 2.0 Implicit Flow  JavaScriptのみでも実装可能!  Twitter @ anywhereのようなユースケース
  • 14. End User RP OP 1. Authorization Request 2. Authentication 3. Consent/Authorization 4. Authorization Response 5. Check Session Request 6. Check Session Response 7. UserInfo Request 8. UserInfo Response
  • 15. Authorization Request HTTP/1.1 302 Found Location: https://server.example.com/authorize? response_type=token id_token &client_id=your_clientid_string &redirect_uri=https%3A%2F%2Fclient%2Eexample%2Ecom %2Fcb &scope=openid email picture &state=state_string &display=touch &prompt=login concent &nonce=nonce_string
  • 16. End User RP OP 1. Authorization Request 2. Authentication 3. Consent/Authorization 4. Authorization Response 5. Check Session Request 6. Check Session Response 7. UserInfo Request 8. UserInfo Response
  • 17. Authorization Response HTTP/1.1 302 Found Location: https://client.example.com/# access_token=access_token_str &token_type=bearer &id_token=jwtheader.jwtpayload.jwtsigned &expires_in=3600 &state=state_string
  • 18. End User RP OP 1. Authorization Request 2. Authentication 3. Consent/Authorization 4. Authorization Response 5. Check Session Request 6. Check Session Response 7. UserInfo Request 8. UserInfo Response
  • 19. Check Session Request GET /check_session?id_token= jwtheader.jwtpayload.jwtsigned HTTP/1.1 Host: server.example.com
  • 20. Check Session Response HTTP/1.1 200 OK Content-Type: application/json { "iss": "http://server.example.com", "user_id": "00001", "aud": "http://client.example.net", "exp":1311281970, “nonce”:nonce_string (←optional) }
  • 21. End User RP OP 1. Authorization Request 2. Authentication 3. Consent/Authorization 4. Authorization Response 5. Check Session Request 6. Check Session Response 7. UserInfo Request 8. UserInfo Response
  • 22. UserInfo Request GET /userinfo HTTP/1.1 Host: server.example.com Authorization: Bearer access_token_str
  • 23. UserInfo Response HTTP/1.1 200 OK Content-Type: application/json { "name": " ritou ", "given_name": "Ryo", "family_name": "Ito", "email": "ritou.06@gmail.com", "picture": "http://example.com/ritou/me.jpg" }
  • 24. OpenID Connect Standard  Authorization Codeにも対応  Connect独自部分の要求をJSONオブジェク トで表現  ID TokenはJWT形式  中身はCheck Session Endpointで返されるJSON オブジェクト  RSAで署名ならRP側でも検証可能  UserInfoのレスポンスを拡張
  • 25. OpenID Request Object { "response_type": "code id_token", ... "userinfo": { "claims": { "name": null, "nickname": {"optional": true}, "email": null, "verified": null, "profile": null, } "format": "unsigned" }
  • 26. OpenID Request Object ... "id_token": { "claims": { "auth_time": null } "max_age": 86400, "iso29115": "2" } }
  • 27. UserInfo Claims  Normal Claims  OPが持つユーザーデータ  標準的なプロフィール  Aggregated Claims  他のOPが持つユーザーデータ  JWT形式で返す  Distributed Claims  他のOPが持つユーザーデータ  Endpoint  Access Token(optional)
  • 28. Aggregated Claims { "name": "Jane Doe", "_claim_names": { "address": "src1", "phone_number": "src1“}, "_claim_sources": { "src1": { "JWT": "JWT-A_header.JWT-A_payload.JWT- A_signature“ }, } }
  • 29. Distributed Claims { "name": "Jane Doe", "_claim_names": { "payment_info": "src1", "credit_score": "src2" }, "_claim_sources": { "src1": {"endpoint": "https://bank.example.com/claimsource"}, "src2": { "endpoint": "https://creditagency.example.com/claimshere", "access_token": "ksj3n283dke"} } }
  • 30. Distributed Claims { "name": "Jane Doe", "_claim_names": { "payment_info": "src1", "credit_score": "src2" }, "_claim_sources": { "src1": {"endpoint": "https://bank.example.com/claimsource"}, "src2": { "endpoint": "https://creditagency.example.com/claimshere", "access_token": "ksj3n283dke"} } }
  • 31. Links
  • 32. Links  http://openid.net/connect/  OpenID ファウンデーション  http://lists.openid.net/mailman/listinfo/openi d-specs-ab  Artifact Binding/Connect Working Group
  • 33. Demo
  • 34. OpenID Connect Sandbox  https://openidconnect.info/  OpenID ConnectのOP機能  ID Token  UserInfo API  Discovery  Dynamic Client Registration  mixiアカウントで利用可能
  • 35. OpenID Connect やってみませんか?  ほぼ確実に流行ります  Facebook, Google, salesforce...  今は仕様つめてる段階  “手を出せない” のではなく”仕様決められる”  今、文句を言える人が求められています!