OpenID TechNight 13 ritou
by
ritou
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
コンシューマ領域における ID連携のユースケースと ライブラリ紹介(OAuth編) Ryo Ito(@ritou) 1
Slide 2
Slide 2 text
自己紹介 Ryo Ito @ritou ← あーるいとう or りとう or 猫(なんでもいい) OpenIDファウンデーション・ジャパン エヴァンジェリスト (株)ミクシィ エンジニア 2
Slide 3
Slide 3 text
コンシューマ領域のID連携 3
Slide 4
Slide 4 text
コンシューマ領域のID連携 RP : コンシューマ向けサービス ユーザ : コンシューマ向けサービスの利用者 IdP : 別のコンシューマ向けサービス →今回はRP側のお話 4
Slide 5
Slide 5 text
コンシューマ領域のID連携 新規アカウント登録時に外部サービスのユー ザー情報を利用 ログイン時に外部サービスから受け取った ユーザー情報を利用 → いわゆる ソーシャルログイン 5
Slide 6
Slide 6 text
ソーシャルログインのメリット 利便性向上 パスワード入力 属性情報入力 コスト削減 メールアドレスの疎通確認 多要素認証 ※ セキュリティ向上 6
Slide 7
Slide 7 text
7
Slide 8
Slide 8 text
代表的なIdP 8 引用元 : http://janrain.com/blog/social-login-trends-across-the-web-q1-2015/
Slide 9
Slide 9 text
代表的なIdP 9 引用元 : https://www.feedforce.jp/release/4979/
Slide 10
Slide 10 text
10 IdPかつRP
Slide 11
Slide 11 text
エンタープライズとの違い 属性情報を利用するタイミング ID連携で属性情報を同期し続けるケースはあまり ない 初期値に使ってすぐに登録完了 or フォームにプリ セットして入力補助 認証のレベル IdP側の認証強度を意識していないケースが多い 11
Slide 12
Slide 12 text
実装方法 12
Slide 13
Slide 13 text
ID連携の実装方法 1. 各IdPが提供するライブラリ 13 RP IdP IdP IdP SDK SDK SDK
Slide 14
Slide 14 text
ID連携の実装方法 1. 各IdPが提供するライブラリ いわゆるSDK メリット ID連携はシンプルに実装できる デメリット 提供していないIdPもある IdPが想定しているユースケース、言語に限定 複数IdPサポート時に混乱が生じる可能性 14
Slide 15
Slide 15 text
ID連携の実装方法 2. ソーシャルログイン as a Service 15 RP IdP IdP IdP ここに 入る
Slide 16
Slide 16 text
ID連携の実装方法 2. ソーシャルログイン as a Service 16 引用 : http://developers.janrain.com/how-to/social-login/deploy-social-login/
Slide 17
Slide 17 text
ID連携の実装方法 2. ソーシャルログイン as a Service ソーシャルログインをサービスとして提供 メリット 各IdP毎のプロトコルの差異を吸収し、RPはシン プルな実装で複数IdPから統一された属性情報を取 得可能 デメリット ID連携以外にもいろいろしたいときに難しい場合 がある 17
Slide 18
Slide 18 text
ID連携の実装方法 3. 複数IdPをサポートするライブラリ 18 RP IdP IdP IdP Library
Slide 19
Slide 19 text
ID連携の実装方法 3. 複数IdPをサポートするライブラリ 各IdPとのID連携をサポートするライブラリ OmniAuth など。各IdPの差異をStrategyが吸収 PluginによりWAFとの相性も良かったりする メリット 複数IdPから統一された属性情報を取得可能 デメリット 安全な実装になっていないケースも? 19
Slide 20
Slide 20 text
ID連携の実装方法 4. プロトコルをサポートするライブラリ OAuth 2.0用ライブラリ等を用いて実装 メリット 元気があればなんでもできる! デメリット 各IdPのこまかーい癖に悩まされる可能性 RFC, Draft, Draft(改, ほとんど独自 20
Slide 21
Slide 21 text
OAuth 2.0を使ったID連携 21
Slide 22
Slide 22 text
OAuth 2.0でID連携? OAuth はリソースアクセスのしくみ ID連携のために、APIアクセスにより必要な情 報を取得 識別子 プロフィール情報 22
Slide 23
Slide 23 text
今回取り上げる例 IdP(Server) : Webアプリケーション RP(Client) : Webアプリケーション デバイス : Webブラウザ 23
Slide 24
Slide 24 text
OAuthでID連携 : 3つのフェーズ 1. リソースアクセスを要求 24 ユーザー RP IdP IdPでログイン ユーザーはRPからIdPに送られる RPからIdPに送られる情報 • RPの識別子 • 戻り先URL • アクセスしたいリソース の範囲 • その他セキュリティ対策 用
Slide 25
Slide 25 text
OAuthでID連携 : 3つのフェーズ 1. リソースアクセスを要求 25
Slide 26
Slide 26 text
OAuthでID連携 : 3つのフェーズ 2. Access Tokenの取得 26 ユーザー RP IdP ユーザーがRPに対してリソースアクセスを許可 Access Token IdPからRPに送られる情報 • 認可コード RPからIdPに送られる情報 • RPの識別子 • RPの鍵 • 認可コード ユーザーはRPに戻される Access Token要求
Slide 27
Slide 27 text
OAuthでID連携 : 3つのフェーズ 3. 属性情報の取得 27 ユーザー RP IdP ユーザーがRPに対してリソースアクセスを許可 Access Token IdPからRPに送られる情報 • Access Token 属性情報
Slide 28
Slide 28 text
続きは… RFCとなった「OAuth 2.0」――その要点は? http://www.atmarkit.co.jp/ait/articles/1209/ 10/news105.html 28
Slide 29
Slide 29 text
課題 29
Slide 30
Slide 30 text
ここまで紹介したID連携における課題 各IdPの差異 OAuth 2.0ベースといいつつ… 識別子取得のタイミング 属性情報取得時のAPIアクセス方法 認証強度、認証方式など あまり考えられていない OAuth 2.0の対象外の部分 30
Slide 31
Slide 31 text
困ったらOpenID ファウンデーション・ ジャパンまでご連絡ください 31