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連携のユースケース紹介 - ソーシャルログイン実装のコツ- Ryo Ito(@ritou) 2015/10/9 2015/10/09 ID連携入門セミナー 1
Slide 2
Slide 2 text
自己紹介 •Ryo Ito @ritou •OpenIDファウンデーション・ジャパン エヴァンジェリスト •(株)ミクシィ エンジニア 2015/10/09 ID連携入門セミナー 2
Slide 3
Slide 3 text
コンシューマ領域のID連携といえば 2015/10/09 ID連携入門セミナー 3
Slide 4
Slide 4 text
コンシューマ領域のID連携といえば •「○○でログイン」 ↑いわゆる「ソーシャルログイン」 2015/10/09 ID連携入門セミナー 4
Slide 5
Slide 5 text
ソーシャルログインを一言でいうと サービスのアカウント登録/認証時に(SNSなどの) 外部サービスが提供する属性情報を利用すること 2015/10/09 ID連携入門セミナー 5
Slide 6
Slide 6 text
レガシーな登録/認証フロー 登場人物は2者 •ユーザ : コンシューマ向けサービスの利用者 •サービス : コンシューマ向けサービス 2015/10/09 ID連携入門セミナー 6
Slide 7
Slide 7 text
レガシーな登録/認証フロー •登録時 • ユーザがプロフィール情報を入力 • ユーザが認証用のクレデンシャル(メアド/パスワー ドなど)を設定 •認証時 • ユーザが認証用のクレデンシャルを入力、紐づけら れたユーザを認証済状態にする 2015/10/09 ID連携入門セミナー 7
Slide 8
Slide 8 text
ソーシャルログイン導入後 登場人物は3者(以上) •ユーザ : コンシューマ向けサービスの利用者 •サービス -> Relying Party(RP) : コンシューマ 向けサービス •Identity Provider(IdP) : ユーザの属性情報を提 供しているコンシューマ向けサービス。複数の IdPと連携するケースもある 2015/10/09 ID連携入門セミナー 8
Slide 9
Slide 9 text
ソーシャルログイン導入後 • 登録時 • IdPから受け取ったプロフィール情報を入力フォームに プリセット or そのまま利用 • 新規アカウントとIdPから受け取った識別子を紐づける • 既存アカウントとの連携 • 既存アカウントにIdPから受け取った識別子を紐づける • 認証時 • IdPから識別子を受け取り、紐づいたユーザを認証済状 態にする 2015/10/09 ID連携入門セミナー 9
Slide 10
Slide 10 text
ソーシャルログイン導入のメリット •ユーザの利便性向上 • 属性情報入力時の離脱率の改善(ECサイト、モバイ ル端末からの操作) •認証機能の実装コスト削減 • 認証周りをしっかり実装しようと思うとコストがか かる •社会全体のセキュリティ向上 • ユーザ、サービスともに厳重に管理しなければなら ない”パスワード”が増えない 2015/10/09 ID連携入門セミナー 10
Slide 11
Slide 11 text
ソーシャルログインの課題 必要最小限の用件だけで実装すると、今度は足りない 部分が気になってくる。 • 不透明な認証レベル • ユーザがIdPで多要素認証を利用しているかどうかがRP 側で不明な場合も • IdP起因のトラブルへの対応 • IdP障害/突然のBAN • サポートコストの発生 • 実装が大変? 2015/10/09 ID連携入門セミナー 11
Slide 12
Slide 12 text
ソーシャルログインを 実装するには? 2015/10/09 ID連携入門セミナー 12
Slide 13
Slide 13 text
ソーシャルログインの実装 •IdPからの属性情報取得 •ユーザ識別子の管理 2015/10/09 ID連携入門セミナー 13
Slide 14
Slide 14 text
IdPの選定 •必要な属性情報 • 確認済メアドの提供が必須 など •RPの特性 • エンジニア向け : github • フィードあり : Twitter/Facebook •IdPのユーザー数など • Google, Facebook, Yahoo! JAPAN 2015/10/09 ID連携入門セミナー 14
Slide 15
Slide 15 text
IdPの選定 2015/10/09 ID連携入門セミナー 15 引用元 : http://janrain.com/blog/social-login-trends-across-the-web-q1-2015/
Slide 16
Slide 16 text
IdPの選定 2015/10/09 ID連携入門セミナー 16 引用元 : https://www.feedforce.jp/release/4979/
Slide 17
Slide 17 text
UX設計 •登録/認証後に元のページ/機能にスムーズに戻れ ることが大事 •ウェブアプリ • 画面遷移?ポップアップ? •ネイティブアプリ • ブラウザ内で完結させる?WebView? • iOS/Androidのそれぞれで最適化された方法を使う? 2015/10/09 ID連携入門セミナー 17
Slide 18
Slide 18 text
実装における最大の壁 : IdP間の差異 •サポートしているプロトコル • OAuth 1.0 • OAuth 2.0 • OpenID Connect •属性情報の取得方法 • 取得するタイミング • APIアクセスのリクエスト 2015/10/09 ID連携入門セミナー 18
Slide 19
Slide 19 text
実装方法 •各IdPが提供するライブラリ •ソーシャルログイン as a Service •複数IdPとのID連携をサポートするライブラリ 2015/10/09 ID連携入門セミナー 19
Slide 20
Slide 20 text
各IdPが提供するライブラリ 2015/10/09 ID連携入門セミナー 20
Slide 21
Slide 21 text
各IdPが提供するライブラリ •いわゆるSDK • 画面遷移などフロントエンドの処理 • トークン取得、APIアクセスなどバックエンドの処理 2015/10/09 ID連携入門セミナー 21
Slide 22
Slide 22 text
各IdPが提供するライブラリ •メリット • ID連携は簡単に実装可能 •デメリット • IdPによっては提供されていない場合もある • IdPが想定しているユースケース、言語に限定される • 複数IdPサポート時に混乱が生じる可能性 2015/10/09 ID連携入門セミナー 22
Slide 23
Slide 23 text
ソーシャルログイン as a Service 2015/10/09 ID連携入門セミナー 23 引用元 : http://janrain.com/
Slide 24
Slide 24 text
ソーシャルログイン as a Service •メリット • 各IdPのプロトコルの差異を意識せず、複数IdPから 属性情報を取得可能 •デメリット • それなりの有償プランを選ばないと不便 2015/10/09 ID連携入門セミナー 24
Slide 25
Slide 25 text
複数IdPをサポートするライブラリ 2015/10/09 ID連携入門セミナー 25 コア機能+各IdPに対応するStrategyによって構成されている
Slide 26
Slide 26 text
複数IdPをサポートするライブラリ •メリット • 各IdPのプロトコルの差異を(あまり)意識せず、複数 IdPから属性情報を取得可能 •デメリット • 安全じゃないケースも? 2015/10/09 ID連携入門セミナー 26
Slide 27
Slide 27 text
ソーシャルログインの実装 •IdPからの属性情報取得 •ユーザ識別子の管理 2015/10/09 ID連携入門セミナー 27
Slide 28
Slide 28 text
識別子の管理 •RPの内部で管理しているユーザ識別子とIdPから 提供されたユーザ識別子を紐づける • 単一IdPの場合、1:1 • 複数IdPの場合、1:n •メールアドレスによるユーザの紐づけはよくない • IdP側でユーザーが変更した場合 • メールアドレスの所有者が変わった場合 2015/10/09 ID連携入門セミナー 28
Slide 29
Slide 29 text
クラウドサービスの活用もアリ? •(m)BaaSのUser関連機能 •Amazon Cognito Identity •Azure AD B2C ※利用できるIdPに制限があったりするので注意 2015/10/09 ID連携入門セミナー 29
Slide 30
Slide 30 text
まとめ •コンシューマ領域のID連携のユースケースで代表 的な、ソーシャルログインの概要を説明した •ソーシャルログイン実装の課題と、少しでも楽に するための方法を紹介した 2015/10/09 ID連携入門セミナー 30