Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
20151009-technight-osaka-ritou
Search
ritou
October 09, 2015
Technology
0
120
20151009-technight-osaka-ritou
コンシューマ領域におけるID連携のユースケース紹介- ソーシャルログイン実装のコツ-
ritou
October 09, 2015
Tweet
Share
More Decks by ritou
See All by ritou
“パスワードレス認証への道" ユーザー認証の変遷とパスキーの関係
ritou
2
1.9k
パスキー導入の課題と ベストプラクティス、今後の展望
ritou
12
4.1k
Password-less Journey - パスキーへの移行を見据えたユーザーの準備 + α
ritou
1
93
Password-less Journey - パスキーへの移行を見据えたユーザーの準備 @ AXIES 2024
ritou
4
1.7k
OIDF-J EIWG 振り返り
ritou
2
52
そのQRコード、安全ですか? / Cross Device Flow
ritou
4
530
MIXI Mと社内外のサービスを支える認証基盤を作るためにやってきたこと #MTDC2024
ritou
3
620
Passkeys and Identity Federation @ OpenID Summit Tokyo 2024
ritou
2
820
Webアプリ開発者向け パスキー対応の始め方
ritou
4
6.5k
Other Decks in Technology
See All in Technology
Amplifyとゼロからはじめた AIコーディング 成果と展望
mkdev10
1
330
Create a Rails8 responsive app with Gemini and RubyLLM
palladius
0
130
DenoとJSRで実現する最速MCPサーバー開発記 / Building MCP Servers at Lightning Speed with Deno and JSR
yamanoku
1
160
Workflows から Agents へ ~ 生成 AI アプリの成長過程とアプローチ~
belongadmin
3
170
OpenTelemetry Collector internals
ymotongpoo
5
560
米国国防総省のDevSecOpsライフサイクルをAWSのセキュリティサービスとOSSで実現
syoshie
0
330
初めてのAzure FunctionsをClaude Codeで作ってみた / My first Azure Functions using Claude Code
hideakiaoyagi
1
140
Observability infrastructure behind the trillion-messages scale Kafka platform
lycorptech_jp
PRO
0
110
Cloud Native Scalability for Internal Developer Platforms
hhiroshell
2
490
BigQuery Remote FunctionでLooker Studioをインタラクティブ化
cuebic9bic
2
150
Clineを含めたAIエージェントを 大規模組織に導入し、投資対効果を考える / Introducing AI agents into your organization
i35_267
4
1k
生成AIをテストプロセスに活用し"よう"としている話 #jasstnano
makky_tyuyan
0
250
Featured
See All Featured
Making Projects Easy
brettharned
116
6.2k
YesSQL, Process and Tooling at Scale
rocio
172
14k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Become a Pro
speakerdeck
PRO
28
5.4k
Designing for Performance
lara
609
69k
Automating Front-end Workflow
addyosmani
1370
200k
Six Lessons from altMBA
skipperchong
28
3.8k
For a Future-Friendly Web
brad_frost
179
9.8k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
How to Ace a Technical Interview
jacobian
276
23k
Transcript
コンシューマ領域における ID連携のユースケース紹介 - ソーシャルログイン実装のコツ- Ryo Ito(@ritou) 2015/10/9 2015/10/09 ID連携入門セミナー 1
自己紹介 •Ryo Ito @ritou •OpenIDファウンデーション・ジャパン エヴァンジェリスト •(株)ミクシィ エンジニア 2015/10/09 ID連携入門セミナー
2
コンシューマ領域のID連携といえば 2015/10/09 ID連携入門セミナー 3
コンシューマ領域のID連携といえば •「◦◦でログイン」 ↑いわゆる「ソーシャルログイン」 2015/10/09 ID連携入門セミナー 4
ソーシャルログインを一言でいうと サービスのアカウント登録/認証時に(SNSなどの) 外部サービスが提供する属性情報を利用すること 2015/10/09 ID連携入門セミナー 5
レガシーな登録/認証フロー 登場人物は2者 •ユーザ : コンシューマ向けサービスの利用者 •サービス : コンシューマ向けサービス 2015/10/09 ID連携入門セミナー
6
レガシーな登録/認証フロー •登録時 • ユーザがプロフィール情報を入力 • ユーザが認証用のクレデンシャル(メアド/パスワー ドなど)を設定 •認証時 • ユーザが認証用のクレデンシャルを入力、紐づけら
れたユーザを認証済状態にする 2015/10/09 ID連携入門セミナー 7
ソーシャルログイン導入後 登場人物は3者(以上) •ユーザ : コンシューマ向けサービスの利用者 •サービス -> Relying Party(RP) :
コンシューマ 向けサービス •Identity Provider(IdP) : ユーザの属性情報を提 供しているコンシューマ向けサービス。複数の IdPと連携するケースもある 2015/10/09 ID連携入門セミナー 8
ソーシャルログイン導入後 • 登録時 • IdPから受け取ったプロフィール情報を入力フォームに プリセット or そのまま利用 • 新規アカウントとIdPから受け取った識別子を紐づける
• 既存アカウントとの連携 • 既存アカウントにIdPから受け取った識別子を紐づける • 認証時 • IdPから識別子を受け取り、紐づいたユーザを認証済状 態にする 2015/10/09 ID連携入門セミナー 9
ソーシャルログイン導入のメリット •ユーザの利便性向上 • 属性情報入力時の離脱率の改善(ECサイト、モバイ ル端末からの操作) •認証機能の実装コスト削減 • 認証周りをしっかり実装しようと思うとコストがか かる •社会全体のセキュリティ向上
• ユーザ、サービスともに厳重に管理しなければなら ない”パスワード”が増えない 2015/10/09 ID連携入門セミナー 10
ソーシャルログインの課題 必要最小限の用件だけで実装すると、今度は足りない 部分が気になってくる。 • 不透明な認証レベル • ユーザがIdPで多要素認証を利用しているかどうかがRP 側で不明な場合も • IdP起因のトラブルへの対応
• IdP障害/突然のBAN • サポートコストの発生 • 実装が大変? 2015/10/09 ID連携入門セミナー 11
ソーシャルログインを 実装するには? 2015/10/09 ID連携入門セミナー 12
ソーシャルログインの実装 •IdPからの属性情報取得 •ユーザ識別子の管理 2015/10/09 ID連携入門セミナー 13
IdPの選定 •必要な属性情報 • 確認済メアドの提供が必須 など •RPの特性 • エンジニア向け : github
• フィードあり : Twitter/Facebook •IdPのユーザー数など • Google, Facebook, Yahoo! JAPAN 2015/10/09 ID連携入門セミナー 14
IdPの選定 2015/10/09 ID連携入門セミナー 15 引用元 : http://janrain.com/blog/social-login-trends-across-the-web-q1-2015/
IdPの選定 2015/10/09 ID連携入門セミナー 16 引用元 : https://www.feedforce.jp/release/4979/
UX設計 •登録/認証後に元のページ/機能にスムーズに戻れ ることが大事 •ウェブアプリ • 画面遷移?ポップアップ? •ネイティブアプリ • ブラウザ内で完結させる?WebView? •
iOS/Androidのそれぞれで最適化された方法を使う? 2015/10/09 ID連携入門セミナー 17
実装における最大の壁 : IdP間の差異 •サポートしているプロトコル • OAuth 1.0 • OAuth 2.0
• OpenID Connect •属性情報の取得方法 • 取得するタイミング • APIアクセスのリクエスト 2015/10/09 ID連携入門セミナー 18
実装方法 •各IdPが提供するライブラリ •ソーシャルログイン as a Service •複数IdPとのID連携をサポートするライブラリ 2015/10/09 ID連携入門セミナー 19
各IdPが提供するライブラリ 2015/10/09 ID連携入門セミナー 20
各IdPが提供するライブラリ •いわゆるSDK • 画面遷移などフロントエンドの処理 • トークン取得、APIアクセスなどバックエンドの処理 2015/10/09 ID連携入門セミナー 21
各IdPが提供するライブラリ •メリット • ID連携は簡単に実装可能 •デメリット • IdPによっては提供されていない場合もある • IdPが想定しているユースケース、言語に限定される •
複数IdPサポート時に混乱が生じる可能性 2015/10/09 ID連携入門セミナー 22
ソーシャルログイン as a Service 2015/10/09 ID連携入門セミナー 23 引用元 : http://janrain.com/
ソーシャルログイン as a Service •メリット • 各IdPのプロトコルの差異を意識せず、複数IdPから 属性情報を取得可能 •デメリット •
それなりの有償プランを選ばないと不便 2015/10/09 ID連携入門セミナー 24
複数IdPをサポートするライブラリ 2015/10/09 ID連携入門セミナー 25 コア機能+各IdPに対応するStrategyによって構成されている
複数IdPをサポートするライブラリ •メリット • 各IdPのプロトコルの差異を(あまり)意識せず、複数 IdPから属性情報を取得可能 •デメリット • 安全じゃないケースも? 2015/10/09 ID連携入門セミナー
26
ソーシャルログインの実装 •IdPからの属性情報取得 •ユーザ識別子の管理 2015/10/09 ID連携入門セミナー 27
識別子の管理 •RPの内部で管理しているユーザ識別子とIdPから 提供されたユーザ識別子を紐づける • 単一IdPの場合、1:1 • 複数IdPの場合、1:n •メールアドレスによるユーザの紐づけはよくない • IdP側でユーザーが変更した場合
• メールアドレスの所有者が変わった場合 2015/10/09 ID連携入門セミナー 28
クラウドサービスの活用もアリ? •(m)BaaSのUser関連機能 •Amazon Cognito Identity •Azure AD B2C ※利用できるIdPに制限があったりするので注意 2015/10/09
ID連携入門セミナー 29
まとめ •コンシューマ領域のID連携のユースケースで代表 的な、ソーシャルログインの概要を説明した •ソーシャルログイン実装の課題と、少しでも楽に するための方法を紹介した 2015/10/09 ID連携入門セミナー 30