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
Webサービス開発とSPAの認証の話 / spa-and-identity
Search
Takahiro Tsuchiya
May 29, 2019
Technology
9
2.9k
Webサービス開発とSPAの認証の話 / spa-and-identity
SPAとサービス開発と認証への気持ちをまとめました
Takahiro Tsuchiya
May 29, 2019
Tweet
Share
More Decks by Takahiro Tsuchiya
See All by Takahiro Tsuchiya
PicoRubyでLチカ
corocn
0
84
Kaigi on Rails 2024 - Rails APIモードのためのシンプルで効果的なCSRF対策 / kaigionrails-2024-csrf
corocn
11
6.6k
現場のエンジニアから見た採用担当との協働
corocn
7
3.1k
シリーズ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
960
Other Decks in Technology
See All in Technology
オープンソースでどこまでできる?フォーマル検証チャレンジ
msyksphinz
0
120
Developer Advocate / Community Managerなるには?
tsho
0
120
Reflections of AI: A Trilogy in Four Parts (GOTO; Copenhagen 2025)
ondfisk
0
110
「れきちず」のこれまでとこれから - 誰にでもわかりやすい歴史地図を目指して / FOSS4G 2025 Japan
hjmkth
1
250
英語は話せません!それでも海外チームと信頼関係を作るため、対話を重ねた2ヶ月間のまなび
niioka_97
0
130
Vibe Coding Year in Review. From Karpathy to Real-World Agents by Niels Rolland, CEO Paatch
vcoisne
0
120
Git in Team
kawaguti
PRO
3
330
LLM時代にデータエンジニアの役割はどう変わるか?
ikkimiyazaki
6
1.2k
How to achieve interoperable digital identity across Asian countries
fujie
0
140
AI ReadyなData PlatformとしてのAutonomous Databaseアップデート
oracle4engineer
PRO
0
230
セキュアな認可付きリモートMCPサーバーをAWSマネージドサービスでつくろう! / Let's build an OAuth protected remote MCP server based on AWS managed services
kaminashi
3
280
大規模サーバーレスAPIの堅牢性・信頼性設計 〜AWSのベストプラクティスから始まる現実的制約との向き合い方〜
maimyyym
6
4k
Featured
See All Featured
[RailsConf 2023] Rails as a piece of cake
palkan
57
5.9k
The Art of Programming - Codeland 2020
erikaheidi
56
14k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.7k
Code Reviewing Like a Champion
maltzj
525
40k
Gamification - CAS2011
davidbonilla
81
5.5k
Java REST API Framework Comparison - PWX 2021
mraible
33
8.9k
YesSQL, Process and Tooling at Scale
rocio
173
14k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.5k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Rebuilding a faster, lazier Slack
samanthasiow
84
9.2k
Transcript
8FCαʔϏε։ൃͱ 41"ͷೝূͷ *EFOUJUZ%BODF4DIPPMJEEBODF -FTTPOٕज़ॻయͱ%JHJUBM*EFOUJUZٕज़ ʢਫʣ 5BLBIJSP5TVDIJZB!DPSPDO
!DPSPDO 5BLBIJSP5TVDIJZB ͜ΖͪΌΜ
ࣗݾհ w ذෞݝࡏॅ w ϑϧϦϞʔτϫʔΫ!Ωϟελʔ w ਓҎ্͕ϦϞʔτϫʔΫ͍ͯ͠Δձࣾ w ຊۀ8FCαʔϏε։ൃ w
ηΩϡϦςΟΤϯδχΞͰͳ͍ w *EFOUJUZٕज़ڵຯͰͬͯΔ w ॳ৺ऀ͚ͱฉ͍͖ͯͨͷʹ᱐͞Εͨ w 3VCZ3BJMT 7VF "84 ($1 w "VUI"NCBTTBEPS bosyu
ΞδΣϯμ w ٕज़ॻయ Ͱॻ͍ͨຊͷհ w *EFOUJUZٕज़ʹର͢Δؾ࣋ͪͷڞ༗ w 41"ͷηογϣϯཧͷ
ࠓ͍͍ػձͳͷͰஏΛࡽ ͍ͯ͜͠͏͔ͱɾɾɾ
ٕज़ॻయͱͷؔΘΓ w લ৬ಉ྅ͱϊϦͰਃ͠ࠐΜͩͷ͕࠷ॳ w ٕज़ॻయ ͱԿ͔͠ΒͷܗͰࢀՃ w ౦ژͷೝূք۾ͷਓͨͪͱͷܨ͕Γ͕Ͱ͖ͨ w
ذෞͰೝূͬͯΔਓશવ͍ͳ͍ͷͰخ͍͠ w *%Ͳ͜Ζ͔8FCͬͯΔਓ΄ͱΜͲ͍ͳ͍ w ຊۀͰͬͯͳ͍ࣗʹͱͬͯେ͖ͳϞνϕ
ٕज़ॻయ w 7VFKTɺ/VYUKTΛͬͨ41"͕Γ্ ͕Γ͡Ίͨ࣌ظ w 41"ͷೝূʹ՝ҙࣝ w "VUIͬͯΈͨΒඇৗʹศརͩͬͨͷ͕ Ϟνϕ w
࣌ؒͰ෦ച w ΈΜͳҙ֎ͱೝূपΓʹࠔͬͯΔʁͱ͍͏ײ Λͬͨ w "VUIͷ$&0͕تΜͰ࣋ͬͯؼͬͨΒ͍͠ w ຊΛॻ͍ͨ͜ͱͰதͷਓͱͷܨ͕Γ͕Ͱ͖ ͨ
None
ۀࢴ w ༰ಉ͡ w "VUIͷதͷਓʹϨ Ϗϡʔͯ͠ΒͬͨΓ w ྦྷܭͰ෦͙Β͍ʁ ʢ,JOEMFͷηʔϧͱ͔Ͱ ͦͦ͜͜ചΕͨΓʣ
w ࠓݟΔͱஏ͔͍ͣ͠આ໌ͳ ͷͰͱͯվగ͍ͨ͠
ٕज़ॻయ w લ৬Ͱ߹ಉࢴΛग़ͨ͠ w %FW0QTϝΠϯͷ w τʔΫϯͷΛগ͠ w ͬͨࣽ͝ຊചΕʹ͍͘ w
એΊͬͪΌେࣄ
ٕज़ॻయ w ٕज़ॻయͷͱ͖ʹ!XBUBIBOJ ͞Μʹձͬͨͷ͕͖͔͚ͬ w ඒຯ͍͠মʹΒΕͯدߘ w 8FC"VUIOͰΫοΩʔηογϣ ϯ͍ͨ͘ͳ͍ͱ͍͏ڧ͍ؾ࣋ͪ w
'*%0αʔόʔΛηογϣϯϨε Ͱ࣮ͯ͠Έͨ w 3VCZ3BJMTͰύεϫʔυϨε ͍͖͍ͬͯͨ
https://twitter.com/kaitendaentai/status/1052689241744896001
https://twitter.com/kaitendaentai/status/1052689241744896001 ٕज़ॻయ ग़ͨ࣌͠
https://twitter.com/kaitendaentai/status/1052689241744896001 ٕज़ॻయ ग़ͨ࣌͠ ٕज़ॻయ ग़ͨ࣌͠ ٕज़ॻయ ग़ͨ࣌͠ ݱࡏ
https://twitter.com/kaitendaentai/status/1052689241744896001 ٕज़ॻయ ग़ͨ࣌͠ ٕज़ॻయ ग़ͨ࣌͠ ٕज़ॻయ ग़ͨ࣌͠ ͜ͷΜ ࢦ͍ͨ͠ ݱࡏ
ݱঢ়ͷؾ࣋ͪͷڞ༗ w ݸਓతͳͩͱೝূɺೝՄٕज़ָ͍͠ w ͔͠͠ʜ w αʔϏε։ൃऀͱͯ͠ఏڙ͍ͨ͠αʔϏεͷʮຊ࣭ʯͰͳ͍ w ͪΖΜ69ͷ্Լʹܨ͕ΔͷͰେࣄ w
झຯͳΒ·ͩ͠ϏδωεϢʔεͩͱࣗ࡞ා͍ w ηΩϡϦςΟϗʔϧ࡞Γͦ͏ w ಛʹελʔτΞοϓଞʹ࡞Δ͖ͷͨ͘͞Μ͋ΔͷͰ w ͱ͍͑ཧղͯ͠ͳ͍ͱ*%BB4ͱͷ࿈ܞͦ͠͏ w ৄ͘͠ΕΔ΄Ͳʮ͍͍ͬͨԿ͕ਖ਼͍͠ΜͩɾɾɾʯˡΠϚίί
Ͱ͖Εࣗ࡞ͤͣؤுΓ͍ͨ w ։ൃεϐʔυΛग़ͨ͢Ίͷ*%BB4ͱ͍͏બ w ͱͱ*%BB4&OUFSQSJTFͳೝࣝͩͬͨ w #UP$Ͱ͑ͦ͏ͳ*%BB4͕૿͖͑ͯͨ w ศརͳͷ͑Δ͚͍͖͍ͩͬͯͨ w
αʔϏε্ཱͪ͛࣌ʹΨνΨνʹࣗ࡞͢Δͷɺඞཁʁ w దʹ*%BB4ΛऔΓೖΕΒΕΔ͕ࣝ΄͍͠ w ࠷ۙ"VUIMFUFʹڵຯͰͯΔ
Ξτϓοτ͍͠ w ࣝΛʹ͚ͭΔ্ͰΞτϓοτେࣄ w ͰηΩϡϦςΟͬͯਆܦ࣭ͳʹͳΓ͕ͪ w ࣮ࡍͷϢʔεέʔεʹԊͬͨ༰Λެ։ͮ͠Β͍ w ݟ͕ΫϥΠΞϯτϫʔΫͷձࣾʹدΓ͕ͪʁ w
ਖ਼͘͠ཧղͯ͠ਖ਼͘͠ॻ͔ͳ͍ͱΕͳ͘Ԍ্ w ਖ਼͘͠ཧղͰ͖Δͷ͍ͭͰ͔͢ʁ w ֤༷ͷղઆଟ͍͕͍ॴϢʔεέʔεʹԊͬͨগͳ ΊͳͷͰΠϯϓοτେม
Ҏલ͜Μͳ-5Λͨ͠ https://speakerdeck.com/corocn/next-geneartion-identity-auth0
+85͕ʹͳͬͨ࣌ظ w ʮͲ͏ͯ͠ϦεΫΞηεϝϯτͤͣʹ+85Ληογϣϯ ʹͬͪΌ͏Θ͚ʁʯ w ʮ+85ೝূɺศརΜʁʯ w IUUQTBVUIIBUFOBCMPHDPNFOUSZ w
தͷਓΛΘͤͨΑ͏ͳهࣄ͕ʢதͷਓͰͳ͔ͬͨʣ w -5ͷલ͙Β͍ͩͬͨͷͰϏΫϏΫ͍ͯͨ͠
࠷ۙͷٙ
41"Ͱ+85Ͱηογϣϯ ཧͨ͠Β͔͋Μͷʁ
41"ͱ w ୯Ұϖʔδ +4 ओʹ3&45"1*ͷίϯς ϯπΓସ͑Ͱߏ͞ΕΔ8FCΞϓϦ w Ϧονͳ6*Λఏڙ͍͢͠ w ϑϩϯτͱόοΫΤϯυΛͰ͖Δ
w ϞόΠϧϑΝʔετͰ࡞ͬͨ"1*ͷྲྀ༻ w ৫ߏʢઐੑɾۀʣͳഎܠ͋Γͦ͏
41"ͷηογϣϯཧͷ w ʮMPDBM4UPSBHFʹอଘͨ͠Β͑͑Ζʂ͆ʯ w ͦ͏ࢥ͍ͬͯΔ࣌ظ͕ࢲʹ͋Γ·ͨ͠ w 944ʹऑ͍͔Βൈ͔ΕΔ w ˢͳ͍Α͏ʹ࡞Δͷ͕جຊ͚ͩͲݶք͋Δ w
5PLFOηΩϡΞʹอͰ͖ͳ͍ w "84"NQMJGZ͘ͳΜͱ͔ͯ͋͛ͯ͠ w ϞόΠϧͷ0"VUI 1,$&ͱಉ͡Α͏ʹ͍͔ͳ͍
$PPLJFPS5PLFO w ʮ$PPLJF͓͏Ͷʯೝ͍ࣝͯ͠Δ w αʔόʔϨε͕བྷΉͱτʔΫϯΛͬͨೝূͰ͍݁ͤͨ͞έʔε ଟʑ͋Δ w 41" αʔόʔϨεͳ։ൃ͕ʑ૿͍͑ͯΔ w
ࠓޙˢͳεΩϧηοτΛ࣋ͭਓ૿͑ͯ͘ΔͩΖ͏ w ϞόΠϧͱಉ͡ํ๏Ͱѻ͑ͳ͍͔ w ϞόΠϧ8FCҰॹʹ࡞Δέʔεͦ͜·Ͱͳ͍ͱࢥ͍ͭͭ w ҰาҾ͍ͯݟͨ࣌ʹDPPLJFDPPLJFͰѻ͍͍͠ w ͍׳ΕͯΔɺੜଘόΠΞε
*%BB4ͬͨ߹Ͳ͏͔ w *%BB4ͱηΩϡΞʹηογϣϯҡ࣋Ͱ͖͍ͯΕ+85Ͱ"1*ͷೝূ͍ͯ͠ ͍ͷͰʁ w *%BB4ଆʹػೳ͕͋Ε w ۩ମతʹ w 41"Ͱ࡞͞Εͨϖʔδදࣔ࣌ʹ*%BB4͔Βຖճ+85Λ͍ग़͢
w JONFNPSZͰ+85Λཧͯ͠ӬଓԽ͠ͳ͍ w +85ͷ༗ޮظݶՄೳͳݶΓ͘ w ϔομʹͤͯ"1*+85Λݕূ͢Δ͚ͩ w ͜ͷΈͳΒ+85ʹدͤΒΕΔͷͰʁ w ͋Μ·Γࣗ৴ͳ͍ͷͰϦεΫʹ͍ͭͯͬͱΓ͍ͨ
ͦͷଞͷϑϩϯτΤϯυٕज़ͱೝূ w 41" 443ʢ4FSWFS4JEF3FOEFSJOHʣ w 4FSWJDF8PSLFSͰτʔΫϯߋ৽ w Ұ୴ߟ͑ͨ͘ͳ͍ɾɾɾ w 443ͦͦαʔόʔ͋Δ͔Βɾɾɾ
w 41"ΛϞόΠϧͱಉྻͰߟ͑ͨ͘ͳΔࣗͷࢥ ߟճ࿏͕ΑΖ͘͠ͳ͍͔
·ͱΊ w ٕज़ॻయָ͍͔͠ΒΈΜͳຊॻ͜͏ʂใ Ξτϓοτͨ͠ਓʹू·Δ w ઐԽۀԽ͕ਐΜͰ͖ͨͷͰɺͦΕͧΕΛ ͭͳ͛Δ͞ΒʹॏཁੑΛ૿ͦ͠͏ w ΑΓָʹγϯϓϧ͔ͭηΩϡΞΛߟ͍͍͑ͯ ͖͍ͨ