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

OpenID TechNight 13 ritou

658c29959d8a9fd352afa440a5813137?s=47 ritou
August 26, 2015

OpenID TechNight 13 ritou

https://openid.doorkeeper.jp/events/29487 にて発表した資料です。

658c29959d8a9fd352afa440a5813137?s=128

ritou

August 26, 2015
Tweet

Transcript

  1. コンシューマ領域における ID連携のユースケースと ライブラリ紹介(OAuth編) Ryo Ito(@ritou) 1

  2. 自己紹介  Ryo Ito  @ritou ← あーるいとう or りとう

    or 猫(なんでもいい)  OpenIDファウンデーション・ジャパン エヴァンジェリスト  (株)ミクシィ エンジニア 2
  3. コンシューマ領域のID連携 3

  4. コンシューマ領域のID連携  RP : コンシューマ向けサービス  ユーザ : コンシューマ向けサービスの利用者 

    IdP : 別のコンシューマ向けサービス →今回はRP側のお話 4
  5. コンシューマ領域のID連携  新規アカウント登録時に外部サービスのユー ザー情報を利用  ログイン時に外部サービスから受け取った ユーザー情報を利用 → いわゆる ソーシャルログイン

    5
  6. ソーシャルログインのメリット  利便性向上 パスワード入力 属性情報入力  コスト削減 メールアドレスの疎通確認 多要素認証 ※

     セキュリティ向上 6
  7. 7

  8. 代表的なIdP 8 引用元 : http://janrain.com/blog/social-login-trends-across-the-web-q1-2015/

  9. 代表的なIdP 9 引用元 : https://www.feedforce.jp/release/4979/

  10. 10 IdPかつRP

  11. エンタープライズとの違い  属性情報を利用するタイミング ID連携で属性情報を同期し続けるケースはあまり ない 初期値に使ってすぐに登録完了 or フォームにプリ セットして入力補助 

    認証のレベル IdP側の認証強度を意識していないケースが多い 11
  12. 実装方法 12

  13. ID連携の実装方法 1. 各IdPが提供するライブラリ 13 RP IdP IdP IdP SDK SDK

    SDK
  14. ID連携の実装方法 1. 各IdPが提供するライブラリ  いわゆるSDK  メリット ID連携はシンプルに実装できる  デメリット

    提供していないIdPもある IdPが想定しているユースケース、言語に限定 複数IdPサポート時に混乱が生じる可能性 14
  15. ID連携の実装方法 2. ソーシャルログイン as a Service 15 RP IdP IdP

    IdP ここに 入る
  16. ID連携の実装方法 2. ソーシャルログイン as a Service 16 引用 : http://developers.janrain.com/how-to/social-login/deploy-social-login/

  17. ID連携の実装方法 2. ソーシャルログイン as a Service  ソーシャルログインをサービスとして提供  メリット

    各IdP毎のプロトコルの差異を吸収し、RPはシン プルな実装で複数IdPから統一された属性情報を取 得可能  デメリット ID連携以外にもいろいろしたいときに難しい場合 がある 17
  18. ID連携の実装方法 3. 複数IdPをサポートするライブラリ 18 RP IdP IdP IdP Library

  19. ID連携の実装方法 3. 複数IdPをサポートするライブラリ  各IdPとのID連携をサポートするライブラリ OmniAuth など。各IdPの差異をStrategyが吸収 PluginによりWAFとの相性も良かったりする  メリット

    複数IdPから統一された属性情報を取得可能  デメリット 安全な実装になっていないケースも? 19
  20. ID連携の実装方法 4. プロトコルをサポートするライブラリ  OAuth 2.0用ライブラリ等を用いて実装  メリット 元気があればなんでもできる! 

    デメリット 各IdPのこまかーい癖に悩まされる可能性 RFC, Draft, Draft(改, ほとんど独自 20
  21. OAuth 2.0を使ったID連携 21

  22. OAuth 2.0でID連携?  OAuth はリソースアクセスのしくみ  ID連携のために、APIアクセスにより必要な情 報を取得 識別子 プロフィール情報

    22
  23. 今回取り上げる例  IdP(Server) : Webアプリケーション  RP(Client) : Webアプリケーション 

    デバイス : Webブラウザ 23
  24. OAuthでID連携 : 3つのフェーズ 1. リソースアクセスを要求 24 ユーザー RP IdP IdPでログイン

    ユーザーはRPからIdPに送られる RPからIdPに送られる情報 • RPの識別子 • 戻り先URL • アクセスしたいリソース の範囲 • その他セキュリティ対策 用
  25. OAuthでID連携 : 3つのフェーズ 1. リソースアクセスを要求 25

  26. OAuthでID連携 : 3つのフェーズ 2. Access Tokenの取得 26 ユーザー RP IdP

    ユーザーがRPに対してリソースアクセスを許可 Access Token IdPからRPに送られる情報 • 認可コード RPからIdPに送られる情報 • RPの識別子 • RPの鍵 • 認可コード ユーザーはRPに戻される Access Token要求
  27. OAuthでID連携 : 3つのフェーズ 3. 属性情報の取得 27 ユーザー RP IdP ユーザーがRPに対してリソースアクセスを許可

    Access Token IdPからRPに送られる情報 • Access Token 属性情報
  28. 続きは… RFCとなった「OAuth 2.0」――その要点は? http://www.atmarkit.co.jp/ait/articles/1209/ 10/news105.html 28

  29. 課題 29

  30. ここまで紹介したID連携における課題  各IdPの差異 OAuth 2.0ベースといいつつ… 識別子取得のタイミング 属性情報取得時のAPIアクセス方法  認証強度、認証方式など あまり考えられていない

    OAuth 2.0の対象外の部分 30
  31. 困ったらOpenID ファウンデーション・ ジャパンまでご連絡ください 31