ID連携を用いたサービス間連携と QR決済サービスPayPay #devBoostA

1.1K Views

December 17, 18

スライド概要

Developers Boost A-5 の資料です

profile-image

2023年10月からSpeaker Deckに移行しました。最新情報はこちらをご覧ください。 https://speakerdeck.com/lycorptech_jp

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

(ダウンロード不可)

関連スライド

各ページのテキスト
1.

ID連携を用いたサービス間連携と QR決済サービスPayPay 2018年12月15日 ヤフー株式会社 本間洋光 0. ( 2 0 2 11 )0. ) 8

2.

自己紹介(本間 洋光) • ヤフー株式会社所属 • 新卒で入社し現在3年目 • Yahoo! JAPAN IDに関わる 開発・運用を担当する部署に所属 0. ( 2 0 2 11 )0. ) 8

3.

お話すること • ID連携の仕組みとヤフーにおける 活用事例 • ヤフーのIDを担う部門の役割を紹介 ( 1 08 ( 0 ) 3( 81 3 22 1 08 . . .

4.

サービス数 100 以 上 月間4587万ログインユーザー 0. ( 2 0 2 11 )0. ) 8 出典: 2018年度第2四半期事業指標 推移表

5.

スマホ決済アプリPayPayを10月に提供開始 ( 5 1 08 ( 0 ) 5 ( 5 81 22 1 08 . . .

6.

PayPayとは • ソフトバンクとヤフーが出資し 設立した会社が提供する決済サービス • スマホひとつで支払いが完結 ( 61 08 ( 0 ) ( 6 6 81 22 1 08 . .6 .

7.

多くのサービスを個人に最適に届けるため • 利用者を識別してデータを保持することで サービスの最適化を進めやすくなる • ログインして利用してもらうことが大事 •決済アプリはログイン必須 ( 1 08 ( 0 ) ( 81 22 1 087 .7. .

8.

サービスごとにパスワードを覚える • サービスごとにIDとパスワード覚える ことはユーザーの負担に • パスワードを使い回すとリスト型 攻撃の標的になりやすい 0. ( 2 0 2 11 )0. ) 8

9.

ID連携でサービス間を連携させる ( 1 08 ( 0 ) ( 81 22 1 08 . . 9.

10.

Yahoo! ID連携 • Yahoo! JAPAN IDを使ってヤフーの アプリや他社が提供するサービスに ログインする仕組み • 業界標準仕様である OpenID Connectに準拠 0. ( 2 0 2 11 )0. ) 8

11.

PayPayにYahoo! ID連携を導入 0. ( 2 0 2 11 )0. ) 8

12.

ID連携を使わない場合 0. ( 2 0 2 11 )0. ) 8

13.

ID連携を使う場合 ※携帯電話番号入力後SMS認証を行う 0. ( 2 0 2 11 )0. ) 8

14.

ID連携を入れることで • 普段利用しているYahoo! JAPAN IDで ログインできる • Yahoo! JAPAN IDに紐づく属性情報が 連携可能になる • 携帯電話番号、Yahoo!ウォレットの情報 • 別途ID・パスワードを設定する必要がない (4 1 08 ( 044 ) (4 4 814 22 1 08 . . .

15.

認証と認可 • 認証(Authentication) 相手が誰であるか確認すること • 認可(Authorization) 何らかの権限を与えること ( 5 1 08 ( 0 ) 5 ( 5 81 22 1 08 . . .

16.

OAuth2.0 • OAuth 2.0は認可の仕様 • どのAPIにアクセスし情報を取得して よいかをユーザーの同意に基づいて コントロール ( 61 08 ( 0 ) ( 6 6 81 22 1 08 . .6 .

17.

OpenID Connectとは • OAuth 2.0を拡張した仕様 • 認証と認可を兼ね備える • 属性情報取得の仕様も定義 • JSON Web Tokenが認証を担う ( 1 08 ( 0 ) ( 81 22 1 087 .7. .

18.

0. ( 2 0 2 11 )0. ) 8

19.

RP User-Agent (End-User) 0. ( 2 0 2 11 )0. ) 8 UserInfo IdP

20.

RP Relying Party 信頼関係にあるサービス UserInfo ユーザーの属性情報を 返却するWeb API User-Agent (End-User) 0. ( 2 0 2 11 )0. ) 8 ID Provider ユーザーのIDを 管理するサービス IdP 20

21.

0. ( 2 0 2 11 )0. ) 8

22.

RP(PayPay) 1. AuthN/AuthZ Request UserInfo API ログインボタンを押す 認証・認可の処理へ遷移 User-Agent (End-User) 0. ( 2 0 2 11 )0. ) 8 IdP(ヤフー)

23.

Yahoo! JAPAN IDで 新規登録を選択 0. ( 2 0 2 11 )0. ) 8

24.

RP(PayPay) UserInfo User-Agentによって リダイレクト 1. AuthN/AuthZ Request 2. AuthZ Request(Redirect) User-Agent (End-User) 0. ( 2 0 2 11 )0. ) 8 IdP(ヤフー) 24

25.

RP(PayPay) 1. AuthN/AuthZ Request UserInfo IdPはID・パスワードを用いて ユーザーを認証・同意を取得 2. AuthZ Request(Redirect) User-Agent (End-User) 0. ( 2 0 2 11 )0. ) 8 3. Login/Consent IdP(ヤフー) 25

26.

ログインする 0. ( 2 0 2 11 )0. ) 8

27.

RP(PayPay) UserInfo ユーザーが同意した認可情報が ひもづくAuthZ Codeを リダイレクトで返却 1. AuthN/AuthZ Request 4. AuthZ Code(Redirect) 2. AuthZ Request(Redirect) User-Agent (End-User) 0. ( 2 0 2 11 )0. ) 8 3. Login/Consent IdP(ヤフー) 27

28.

RP(PayPay) 1. AuthN/AuthZ Request UserInfo Authz Codeと 事前にRPへ発行している Client IDとSecretを使って Tokenをリクエスト 5. T oke nR equ est 4. AuthZ Code(Redirect) 2. AuthZ Request(Redirect) User-Agent (End-User) 0. ( 2 0 2 11 )0. ) 8 3. Login/Consent IdP(ヤフー) 28

29.

RP(PayPay) UserInfo Web APIアクセスのためのAccess Token それを更新するためのRefresh Tokenを取得 1. AuthN/AuthZ Request 6. A cce ss/ 5. T Re fre oke sh/ nR ID equ Tok est en 4. AuthZ Code(Redirect) 2. AuthZ Request(Redirect) IdPが認証したユーザー認証情報が 含まれるID Tokenを取得 User-Agent (End-User) 0. ( 2 0 2 11 )0. ) 8 3. Login/Consent IdP(ヤフー) 29

30.

7. Verify ID Token RP(PayPay) UserInfo IdPが認証したユーザーの認証結果を ID Tokenを用いて検証する 1. AuthN/AuthZ Request 6. A cce ss/ 5. T Re fre oke sh/ nR ID equ Tok est en 4. AuthZ Code(Redirect) 2. AuthZ Request(Redirect) User-Agent (End-User) 0. ( 2 0 2 11 )0. ) 8 3. Login/Consent IdP(ヤフー) 30

31.

7. Verify ID Token RP(PayPay) 8. Access Tokenを用いて属性情報取得 UserInfo 9. ユーザーが認可した情報を返す 1. AuthN/AuthZ Request 6. A cce ss/ 5. T Re fre oke sh/ nR ID equ Tok est en 4. AuthZ Code(Redirect) 2. AuthZ Request(Redirect) User-Agent (End-User) 0. ( 2 0 2 11 )0. ) 8 3. Login/Consent IdP(ヤフー) 31

32.

ID Tokenとは • ユーザー認証情報を含む改ざん検知用の 署名付きToken • JSON Web Tokenフォーマット • IdPが認証したユーザーの認証情報を含め RPが検証しRP側のセッション管理に用いる • IdPがRPのために誰を認証したかを示すトークン 0. ( 2 0 2 11 )0. ) 8

33.

画面遷移 ※携帯電話番号入力後SMS認証を行う 0. ( 2 0 2 11 )0. ) 8

34.

ヤフーのIDを専門に担う部門 • Yahoo! JAPAN IDに関わる開発運用を 専門で担当する部門が存在 • 4587万ログインユーザー*を 支えるIDサービスを提供 • ID登録、認証、ID連携、属性管理、通知 • 生体認証、パスワードレスへの取り組み ) 201 ) 1 4) 2 4 (33 201 8 8 . *2018年度第2四半期事業指標 推移表

35.

まとめ • PayPayを例にID連携の仕組みを紹介 • 個別のID・パスワードを覚えることが不要 • 属性情報の連携が可能に • ヤフーのIDサービスを一貫して提供する 専門の部門が存在 )5 201 ) 155 )5 5 25 (33 201 8 8 .