Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ID連携の標準化仕様紹介とセキュアな実装のためのアプローチ 2021 / Identity Federation Protocols 2021

ritou
September 05, 2021

ID連携の標準化仕様紹介とセキュアな実装のためのアプローチ 2021 / Identity Federation Protocols 2021

ritou

September 05, 2021
Tweet

More Decks by ritou

Other Decks in Technology

Transcript

  1. ••でログイン   Ϣʔβʔ 3FMZJOH1BSUZ 0QFO*%1SPWJEFS  Ϣʔβʔ͸31ʹϩάΠϯ ͍ͨ͠ 01ʹϦμΠϨΫτͯ͠

    ೝূΠϕϯτͷ৘ใΛཁٻ ೝূΠϕϯτͷ৘ใΛఏڙ ̏ ϩάΠϯͯ͠ɺ 31ʹଐੑ৘ใΛఏڙ͢Δ͜ͱʹಉҙ 7 ೝূΠϕϯτͷ৘ใΛ༻͍ͯ ϩάΠϯঢ়ଶʹ͢Δ 1 6 2 5 3 4
  2. ••でログイン   Ϣʔβʔ 3FMZJOH1BSUZ 0QFO*%1SPWJEFS  Ϣʔβʔ͸31ʹϩάΠϯ ͍ͨ͠ 01ʹϦμΠϨΫτͯ͠

    ೝূΠϕϯτͷ৘ใΛཁٻ ೝূΠϕϯτͷ৘ใΛఏڙ ̏ ϩάΠϯͯ͠ɺ 31ʹଐੑ৘ใΛఏڙ͢Δ͜ͱʹಉҙ 8 ೝূΠϕϯτͷ৘ใΛ༻͍ͯ ϩάΠϯঢ়ଶʹ͢Δ 1 6 2 5 3 4
  3. ••でログイン   Ϣʔβʔ 3FMZJOH1BSUZ 0QFO*%1SPWJEFS  Ϣʔβʔ͸31ʹϩάΠϯ ͍ͨ͠ 01ʹϦμΠϨΫτͯ͠

    ೝূΠϕϯτͷ৘ใΛཁٻ ೝূΠϕϯτͷ৘ใΛఏڙ ̏ ϩάΠϯͯ͠ɺ 31ʹଐੑ৘ใΛఏڙ͢Δ͜ͱʹಉҙ 9 ೝূΠϕϯτͷ৘ใΛ༻͍ͯ ϩάΠϯঢ়ଶʹ͢Δ 1 6 2 5 3 4
  4. ••でログイン   Ϣʔβʔ 3FMZJOH1BSUZ 0QFO*%1SPWJEFS  Ϣʔβʔ͸31ʹϩάΠϯ ͍ͨ͠ 01ʹϦμΠϨΫτͯ͠

    ೝূΠϕϯτͷ৘ใΛཁٻ ೝূΠϕϯτͷ৘ใΛఏڙ ̏ ϩάΠϯͯ͠ɺ 31ʹଐੑ৘ใΛఏڙ͢Δ͜ͱʹಉҙ 10 ೝূΠϕϯτͷ৘ใΛ༻͍ͯ ϩάΠϯঢ়ଶʹ͢Δ 1 6 2 5 3 4
  5. ••でログイン   Ϣʔβʔ 3FMZJOH1BSUZ 0QFO*%1SPWJEFS  Ϣʔβʔ͸31ʹϩάΠϯ ͍ͨ͠ 01ʹϦμΠϨΫτͯ͠

    ೝূΠϕϯτͷ৘ใΛཁٻ ೝূΠϕϯτͷ৘ใΛఏڙ ̏ ϩάΠϯͯ͠ɺ 31ʹଐੑ৘ใΛఏڙ͢Δ͜ͱʹಉҙ 11 ೝূΠϕϯτͷ৘ใΛ༻͍ͯ ϩάΠϯঢ়ଶʹ͢Δ 1 6 2 5 3 4
  6. 別サービスとの連携   3FTPVSDF0XOFS $MJFOU "VUIPSJ[BUJPO4FSWFS  3FTPVSDF4FSWFS  Ϣʔβʔ͸$MJFOUͰผαʔϏε

    ͷϦιʔεΛར༻͍ͨ͠ "VUI;4FSWFSʹϦμ ΠϨΫτͯ͠ ϦιʔεΞΫηεΛཁٻ ϦιʔεΞΫηεͷݖݶΛఏڙ ̏ ϩάΠϯͯ͠ɺ $MJFOUʹϦιʔεΞΫηεΛఏڙ͢ Δ͜ͱʹಉҙ 15 3FTPVSDF4FSWFS͔Βऔಘ ͨ͠஋Λར༻͢ΔαʔϏεΛఏڙ 1 6 2 5 3 4
  7. 別サービスとの連携   3FTPVSDF0XOFS $MJFOU "VUIPSJ[BUJPO4FSWFS  3FTPVSDF4FSWFS  Ϣʔβʔ͸$MJFOUͰผαʔϏε

    ͷϦιʔεΛར༻͍ͨ͠ "VUI;4FSWFSʹϦμ ΠϨΫτͯ͠ ϦιʔεΞΫηεΛཁٻ ϦιʔεΞΫηεͷݖݶΛఏڙ ̏ ϩάΠϯͯ͠ɺ $MJFOUʹϦιʔεΞΫηεΛఏڙ͢ Δ͜ͱʹಉҙ 16 3FTPVSDF4FSWFS͔Βऔಘ ͨ͠஋Λར༻͢ΔαʔϏεΛఏڙ 1 6 2 5 3 4
  8. 別サービスとの連携   3FTPVSDF0XOFS $MJFOU "VUIPSJ[BUJPO4FSWFS  3FTPVSDF4FSWFS  Ϣʔβʔ͸$MJFOUͰผαʔϏε

    ͷϦιʔεΛར༻͍ͨ͠ "VUI;4FSWFSʹϦμ ΠϨΫτͯ͠ ϦιʔεΞΫηεΛཁٻ ϦιʔεΞΫηεͷݖݶΛఏڙ ̏ ϩάΠϯͯ͠ɺ $MJFOUʹϦιʔεΞΫηεΛఏڙ͢ Δ͜ͱʹಉҙ 17 3FTPVSDF4FSWFS͔Βऔಘ ͨ͠஋Λར༻͢ΔαʔϏεΛఏڙ 1 6 2 5 3 4
  9. 別サービスとの連携   3FTPVSDF0XOFS $MJFOU "VUIPSJ[BUJPO4FSWFS  3FTPVSDF4FSWFS  Ϣʔβʔ͸$MJFOUͰผαʔϏε

    ͷϦιʔεΛར༻͍ͨ͠ "VUI;4FSWFSʹϦμ ΠϨΫτͯ͠ ϦιʔεΞΫηεΛཁٻ ϦιʔεΞΫηεͷݖݶΛఏڙ ̏ ϩάΠϯͯ͠ɺ $MJFOUʹϦιʔεΞΫηεΛఏڙ͢ Δ͜ͱʹಉҙ 18 3FTPVSDF4FSWFS͔Βऔಘ ͨ͠஋Λར༻͢ΔαʔϏεΛఏڙ 1 6 2 5 3 4
  10. 別サービスとの連携   3FTPVSDF0XOFS $MJFOU "VUIPSJ[BUJPO4FSWFS  3FTPVSDF4FSWFS  Ϣʔβʔ͸$MJFOUͰผαʔϏε

    ͷϦιʔεΛར༻͍ͨ͠ "VUI;4FSWFSʹϦμ ΠϨΫτͯ͠ ϦιʔεΞΫηεΛཁٻ ϦιʔεΞΫηεͷݖݶΛఏڙ ̏ ϩάΠϯͯ͠ɺ $MJFOUʹϦιʔεΞΫηεΛఏڙ͢ Δ͜ͱʹಉҙ 19 3FTPVSDF4FSWFS͔Βऔಘ ͨ͠஋Λར༻͢ΔαʔϏεΛఏڙ 1 6 2 5 3 4
  11. 混乱を生むところ 登場人物 (目的が違うので名前は違う) ユーザー vs リソースオーナー Relying Party vs Client

    OpenID Provider vs AuthZ Server 提供するもの イベント情報、属性情報 vs リソースアクセス  
  12. OIDC = OAuth 2.0 + Identity Layer ID連携に必要な認証イベント情報のやり取り セキュリティイベント :

    5W1H + α 属性情報 : 汎用的なプロフィール情報 OAuth 2.0のトークンのやり取りを拡張 属性情報API : 最新の情報を提供 OAuth 2.0のリソースアクセスで実現  
  13. Discovery & Dynamic Registration   OpenID Connect Discovery エンドユーザーの情報からOPを特定する方法

    OPのエンドポイントや仕様のサポート状況を RPが取得するためメタデータ定義 OpenID Connect Dynamic Registration 動的なRP登録
  14. Session Management関連仕様   Session Management セッションの同期状態を確認 RP-initiated Logout RP

    -> OPにログアウトを要求 Front-Channel Logout OP -> RPにフロントチャンネルでログアウトを通知 Back-Channel Logout OP -> RPにバックチャンネルでログアウトを通知
  15. Identity Assurance   OIDCでOPがユーザーの検証済み属性情報を RPに提供するための仕様 要求 : どんな情報をどういう目的で欲しい 表現

    : 検証プロセスの情報 + 属性情報 応答 : IDトークンもしくは属性情報API 犯収法、携帯電話不正利用防止法の定義も
  16. 検証済み属性情報の例   "verified_claims": { "verification": { “trust_ framework": “jp_

    aml” }, "claims": { “given_ name#ja-Hani-JP": “太郎", “family_ name#ja-Hani-JP": "東京", “given_ name#ja-Kana-JP": "タロウ", “family_ name#ja-Kana-JP": "トウキョウ", "birthdate": "1981-01-01" } }
  17. クライアントシークレットを 利用したクライアント認証   1. そのまま送る 1. POSTパラメータ client_ secret_

    post 2. Basic認証の形式 client_ secret_ basic 2. 直接送らず、署名生成の鍵として利用 client_ secret_ jwt 1. 署名付きのJWTを生成して指定することで、ク ライアントシークレットが通信路を流れない