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
次世代認証プラットフォーム “Auth0” を使ってみた / Next Geneartion...
Search
Takahiro Tsuchiya
September 27, 2018
Technology
18
7.9k
次世代認証プラットフォーム “Auth0” を使ってみた / Next Geneartion Identity "Auth0"
* 外部認証基盤の話
* Auth0 / Amazon Cognito / Firebase Authentication / Netlify Identity の比較
* Auth0 を選んだ理由
Takahiro Tsuchiya
September 27, 2018
Tweet
Share
More Decks by Takahiro Tsuchiya
See All by Takahiro Tsuchiya
Kaigi on Rails 2024 - Rails APIモードのためのシンプルで効果的なCSRF対策 / kaigionrails-2024-csrf
corocn
11
6.4k
現場のエンジニアから見た採用担当との協働
corocn
7
3k
シリーズAをリファラル採用中心に走り抜ける / leaner-referral-engineer-2024
corocn
4
2.2k
捨てて加速するプロダクト開発 / sutete-speedup-product-development
corocn
3
710
リファラル採用にフルベットしてみた
corocn
3
3.9k
エンジニアとプロダクトマネージャーを兼任した1年間を振り返る / pdm-furikaeri
corocn
17
8.1k
育休のすゝめ #devsumi 2023
corocn
3
5k
GCPでRubyを動かしている話 / ruby on gcp
corocn
0
950
フルリモートワーカーのデスク選定 / how-to-select-remote-work-desk
corocn
1
640
Other Decks in Technology
See All in Technology
Terraformで構築する セルフサービス型データプラットフォーム / terraform-self-service-data-platform
pei0804
1
180
AIのグローバルトレンド2025 #scrummikawa / global ai trend
kyonmm
PRO
1
290
Firestore → Spanner 移行 を成功させた段階的移行プロセス
athug
1
480
[ JAWS-UG 東京 CommunityBuilders Night #2 ]SlackとAmazon Q Developerで 運用効率化を模索する
sh_fk2
3
430
これでもう迷わない!Jetpack Composeの書き方実践ガイド
zozotech
PRO
0
860
20250913_JAWS_sysad_kobe
takuyay0ne
2
220
Rustから学ぶ 非同期処理の仕組み
skanehira
1
140
機械学習を扱うプラットフォーム開発と運用事例
lycorptech_jp
PRO
0
250
Function Body Macros で、SwiftUI の View に Accessibility Identifier を自動付与する/Function Body Macros: Autogenerate accessibility identifiers for SwiftUI Views
miichan
2
180
下手な強制、ダメ!絶対! 「ガードレール」を「檻」にさせない"ガバナンス"の取り方とは?
tsukaman
2
450
Autonomous Database - Dedicated 技術詳細 / adb-d_technical_detail_jp
oracle4engineer
PRO
4
10k
20250910_障害注入から効率的復旧へ_カオスエンジニアリング_生成AIで考えるAWS障害対応.pdf
sh_fk2
3
260
Featured
See All Featured
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
112
20k
A Tale of Four Properties
chriscoyier
160
23k
Navigating Team Friction
lara
189
15k
Code Reviewing Like a Champion
maltzj
525
40k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
31
2.2k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Bash Introduction
62gerente
615
210k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.7k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
9
810
RailsConf 2023
tenderlove
30
1.2k
Transcript
࣍ੈೝূϓϥοτϑΥʔϜ “Auth0” ΛͬͯΈͨ ςΫʮ࠷ۙͷWebٕज़ʹ͍ͭͯϫΠϫΠޠΔձʯ 2018/09/27ʢʣ Takahiro Tsuchiya / @corocn
Agenda • ࣗݾհ • ֎෦ೝূج൫ͷ • αʔϏεͷൺֱ • ೝূج൫αʔϏε “Auth0”
ͷհ
ࣗݾհ • @corocn / Takahiro Tsuchiya / و༟ • Misoca
Inc. • Auth0 Ambassador
ຊΛॻ͖·ͨ͠ ٕज़ॻయ4Ͱ൦ AmazonͰൢചத ·ͨվగ͍ͨ͠ʂ
ࠓͷ͓
ΣϒΞϓϦέʔγϣϯͱ ֎෦ೝূج൫ͷ
WebαʔϏεΛ࡞ΔͳΒೝূ ͷΈඞਢʹͳΔ
ͰຊʹϢʔβʔʹఏڙ͠ ͍ͨͷೝূ͡Όͳ͍
ͬͱαʔϏεͷຊ࣭తͳͱ ͜Ζʹ࣌ؒΛ͍͍ͨ
Ͱೝূͬͯ͘͠ͳ͍ʁ શવΘ͔Γ·ͤΜ ਓྨʹೝূ͍͠
Ͳ͏ͬͯػೳ࣮͢Δʁ
ࣗͰҰ͔Β࣮͢Δ • Βͳ͍΄͏͕͍͍ • ηΩϡϦςΟϗʔϧΛ࡞Δࣗ৴͕͋Δ • ंྠͷ࠶ൃ໌ • ηΩϡϦςΟͷ࣮ϊϋ֎ʹग़ͯ͜ͳ ͍ͷͰ͍͠
Frameworkඪ४ͷϥΠϒϥϦΛ͏ • ͋ΔఔϨʔϧʹΕΔ • ࠷ݶͷػೳ͔͠ͳ͍ • ڽͬͨॲཧͰ్ʹഁ͕ͪ͠ • RailsͷDevise? Sorcery?
ΈΜͳਏ͍ਏ͍ͱ ݴ͍ͬͯͬͯΔΑ͏ͳɾɾɾ
https://qiita.com/cigalecigales/items/73d7bd7ec59a001ccd74
৽͍༷͠ʹैͰ͖·͔͢ʁ • ύεϫʔυೝূ • SSO, Social Login, ύεϫʔυϨε • MFAʢଟཁૉೝূʣ
• FIDO 1.0 ʢU2F, UAFʣ • FIDO 2.0ʢU2F + UAFʣ, WebAuthn API ͙ͦ͢͜·Ͱ ഭ͍ͬͯΔ
ͦ͏ͩ ֎෦ͷೝূج൫ ͓͏
ҙ͍ͨ͜͠ͱ
• ֎෦αʔϏεΛ͑ηΩϡϦςΟϦεΫ͕ ফ͑ΔΘ͚Ͱͳ͍ • ࿈ܞ෦։ൃऀͰ࣮͢Δ • ͪΌΜͱཧղ͔ͯ͠ΒΘͳ͍ͱવࣄނ • ͰͪΌΜͱ͑େ෯ʹ࣮࣌ؒอकί ετΛݮͰ͖Δ
͍Ζ͍Ζࢼͨ͠
ࢼͯ͠ΈͨೝূαʔϏε • Amazon Cognito • Firebase Authentication • Netlify Identity
• Auth0 ← ࠷ऴతʹ͜Εʹམͪண͘
Amazon Cognito • AWSͷਂ͍͕ࣝཁٻ͞ΕΔ • UserPool, ID PoolͳͲ֓೦͕͍͠ • ֶशίετ͕ߴ͍
• αʔϏε͕AWSͬͨΓͳΒݕ౼͍͍ͯ͠ ͚Ͳɺݕ౼͢Δͷʹ͕͔͔࣌ؒΓͦ͏
Firebase Authentication • ແྉʢҰ෦ΦϖϨʔγϣϯʹ੍ݶ༗Γʣ • γϯϓϧɻμογϡϘʔυ͔ͳΓ؆ૉɻ • αʔϏεܧଓੑͳ͠ • GCPଞFirebaseαʔϏεΛ͏લఏͳΒ˕
• ࡉ੍͔͍͕ॻ͚ͳ͍ͷ͕ਏ͍ • υΩϡϝϯτಡΈͮΒ͍
Netlify Identity • ָ࣮ͩͬͨ • ػೳ͕Γͯͳͯ͘ɺϩʔΧϧͰͷσόοά ͕ࠔͩͬͨͷͰΪϒΞοϓ • ݱࡏվળ͍ͯ͠Δ͔͠Εͳ͍
Auth0 • ֶशίετͷ͞ɺ֦ுੑͷߴ͕͞࠷ߴ • ࠷ऴతʹ͜Εʹམͪண͘
None
Auth0ͬͯʁ • Ϋϥυೝূϕϯμʔ • IDaaSʢIdentity as a Serviceʣ • ຊࣾ
Bellevue, Washington • ϑϧϦϞʔτϫʔΫΛ࠾༻ • Company OffsiteʢΧϯΫϯͱ͔ύφϚͱ͔ʣ
IDaaS • اۀID͕ࢥ͍ු͔Ϳ͔ʢOkta, OneLoginͱ͔ʣ • Auth0ͷ߹C͚Ͱ͍͍͢ҹ •
ͱΓ͋͑ͣ৮ͬͯࢼͤΔ • جຊແྉͰ͑Δʢ22ؒEnterprise൛͕ࢼͤΔʣ • 7000Ϣʔβʔɺແ੍ݶϩάΠϯ • ύεϫʔυϨεରԠ • ΈࠐΈϑΥʔϜʢLockʣ← ͋ͱͰ
• ιʔγϟϧϩάΠϯʢ2ݸ·Ͱʣ • ແ੍ݶͷϧʔϧఆٛ ← ͋ͱͰ
๛ͳνϡʔτϦΞϧ
https://auth0.com/docs
Mobile
SPA
Web App 1
Web App 2
Backend API
• νϡʔτϦΞϧ͕Ұ௨Γἧ͍ͬͯΔ • JWT Handbook ೝূܥͷϒϩά • ͘ຊޠ൛Ͱͳ͍͔ͳʙʁʢνϥο • jwt.io
powered by Auth0 • ϒϥβͰ͑ΔJWTͷσόοάπʔϧ
None
Lock
None
Lock • Auth0͕ఏڙ͢ΔࠐΈϩάΠϯϑΥʔϜ • ֤छϓϥοτϑΥʔϜରԠ • ଟݴޠରԠ • ෦Ͱ Auth0
SDKʢauth0.jsͳͲʣΛ͍ͬͯΔ • ࡉ੍͔͍ޚ͕ඞཁͳ߹ͪ͜ΒΛ • νϡʔτϦΞϧ auth0.jsΛ࣮ͬͨ
• Social LoginͳͲɺઃఆLockʹଈ࣌ө • Auth0͕อ༗͢ΔdevΩʔ͕ॳظͰઃఆ͞Εͯ ͍ΔͷͰɺͱΓ͋͑ͣࢼͤΔʢخ͍͠ʣ • ਖ਼ࣜʹ͏߹औಘͯ͠ઃఆ͢Δ͜ͱ
Webtask
Webtask • AWS LambdaϥΠΫͳαʔόϨεڥΛࣗલ Ͱอ༗͍ͯ͠Δ • JavaScriptɺC#Ͱهड़Մ • Node v8ͳͷͰasync
await • WebtaskʹΑͬͯߴ͍֦ுੑΛ࣮ݱ͍ͯ͠Δ
Rule
Rule • ೝূػೳͷ֦ுRuleͰઃఆ • ྫ1ʣυϝΠϯΛ੍ݶ͍ͨ͠ • ྫ2ʣ໊دͤΛ࣮ݱ͍ͨ͠ • ࣮ߦج൫Webtask •
ϢʔεέʔεผʹେྔͷςϯϓϨʔτ͕ఏڙ͞Ε ͍ͯΔͷͰɺগ͠मਖ਼͢Δ͚ͩͰ͍͍ͩͨಈ͘
Rule: Template
Rule: Whitelist
ͦͷଞ • ϢʔβʔμογϡϘʔυ͕ඪ४උ • Auth0 GuardianʢMFAʣ • FIDO2ͷରԠʁ → AddonͰՄೳ
·ͱΊ • αʔϏε։ൃαʔϏεͷຊ࣭ʹྗ͖͢ • ࣮ίετݮͷͨΊʹɺ֎෦ͷೝূج൫Λ ͏ͷ͋Γ • Auth0ଟػೳͰ֦ுੑ͕ߴ͍ͷͰɺબࢶͱ ͯ͠༗ •
ϦεΫΛͪΌΜͱཧղ͔ͯ͠Β͏͠
͋Γ͕ͱ͏͍͟͝·ͨ͠