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
マネーフォワードの認証基盤のこれまでとこれから
Search
nhosoya
January 19, 2023
Technology
0
1.7k
マネーフォワードの認証基盤のこれまでとこれから
サービスの当たり前を支える認証認可 〜マネーフォワードxマクアケ〜
https://makuake.connpass.com/event/269014/
nhosoya
January 19, 2023
Tweet
Share
More Decks by nhosoya
See All by nhosoya
マネーフォワードの認証基盤の現在地
nhosoya
1
840
Other Decks in Technology
See All in Technology
【shownet.conf_】ローカル5Gを活用したウォーキングツアーの体感向上
shownet
PRO
0
250
DenoでもViteしたい!インポートパスのエイリアスを指定してラクラクアプリ開発
bengo4com
1
1.7k
【shownet.conf_】3Dアプローチで守るセキュリティ
shownet
PRO
0
290
Oracle Database 23ai 新機能#4 Real Application Clusters
oracle4engineer
PRO
0
120
【shownet.conf_】持続可能な次世代Wi-Fi運用に向けて
shownet
PRO
0
260
つよつよリーダーが 抜けたらどうする? 〜ナビタイムのAgile⽀援組織の変遷〜
navitimejapan
PRO
22
13k
入門 バックアップ
ryuichi1208
17
5.3k
k6を活用した再現性・拡張性の高い負荷試験基盤の構築
biwashi
11
3k
RAGの性能を評価しよう
kurahara
1
290
クレジットカードを製造する技術
yutadayo
75
38k
Sansanにおける全社横断データ分析基盤の挑戦と未来 / Challenges and Future of Cross-Organizational Data Analytics Platform at Sansan
sansan_randd
2
310
成果のためのコミュニケーション - 語彙を育てよう -/communication-for-good-outcome-developing-vocabulary
hassaku63
4
150
Featured
See All Featured
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
Statistics for Hackers
jakevdp
796
220k
Fontdeck: Realign not Redesign
paulrobertlloyd
81
5.2k
Building Flexible Design Systems
yeseniaperezcruz
327
38k
Why Our Code Smells
bkeepers
PRO
334
57k
A Modern Web Designer's Workflow
chriscoyier
692
190k
From Idea to $5000 a Month in 5 Months
shpigford
380
46k
VelocityConf: Rendering Performance Case Studies
addyosmani
324
23k
For a Future-Friendly Web
brad_frost
174
9.3k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
125
18k
Intergalactic Javascript Robots from Outer Space
tanoku
268
27k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
30
2.6k
Transcript
ϚωʔϑΥϫʔυͷ ೝূج൫ͷ͜Ε·Ͱ ͱ͜Ε͔Β גࣜձࣾϚωʔϑΥϫʔυ @nhosoya ࡉ୩थ 2023-01-19
@nhosoya ʢࡉ୩थʣ גࣜձࣾϚωʔϑΥϫʔυ IDαʔϏε։ൃ෦ 2015 - ϚωʔϑΥϫʔυMEͷ։ൃ ʢAndroid/Rails/EMͬΆ͍ͳʹ͔ʣ 2018 -
ݱࡏ ೝূج൫ͷ։ൃ <- ࠓ͜ͷ 2
ϚωʔϑΥϫʔυͷαʔϏε 3
͜͜ʹςΩετ͕ೖΓ·͢͜͜ʹςΩετ͕ ͜͜ʹςΩετ͕ೖΓ·͢͜͜ʹςΩετ͕ ͜͜ʹςΩετ͕ೖΓ·͢͜͜ʹςΩετ͕ ͜͜ʹςΩετ͕ೖΓ·͢͜͜ʹςΩετ͕ 4
1ͭͷIDͰͯ͢ͷαʔϏεΛར༻Մೳ 31T *E1 01 5
વɺ࠷ॳ͔Β͜͏ͳ͍ͬͯͨΘ͚Ͱͳ͍ 6
2012 ϚωʔϑΥϫʔυ ME ϦϦʔε 7
1App 1DBͷγϯϓϧͳߏ - ΞΧϯτ(ID/PW) - ۚ༥ػؔͳͲ͔Βऔಘͨ͠ใ - ͳͲͳͲ 8
2013 Ϋϥυձܭɾ֬ఆਃࠂ ϦϦʔε 9
ՈܭͷσʔλΛ֬ఆਃࠂͰ׆༻͍ͨ͠ 10
ڞ༗͞ΕΔσʔλϕʔε - ۚ༥ػؔͳͲ͔Βऔಘͨ͠ใ - ՈܭαʔϏεͷΈ͕ར༻͢Δ σʔλ - ΞΧϯτใ (ID/PW) -
ձܭɾ֬ఆਃࠂαʔϏεͷΈ͕ ར༻͢Δσʔλ 11
2014 Ϋϥυٻॻ 2015 Ϋϥυڅ༩ ΫϥυϚΠφϯόʔ 2016 Ϋϥυܦඅ 12
ਐΉີ݁߹ - ΞΧϯτใ (ID/PW) - ۚ༥ػؔͳͲ͔Βऔಘͨ͠ใ - ՈܭαʔϏεͷΈ͕ར༻͢Δ σʔλ -
ϚωʔϑΥʔϫʔυΫϥυͷ αʔϏε͕ڞ௨Ͱར༻͢Δσʔλ 13
͜ͷͱ͖ͳʹ͕ى͖͍͔ͯͨ සൃ͢Δো ɾDBͷੑೳ ɾεϩʔΫΤϦҰൃͰ શαʔϏε͕োʹͳΔ ɾڞ༗ϥΠϒϥϦͰޓੑ Λอͭඞཁ͕͋Δ ɾΫϥυαʔϏεΛ͑ ͳ͍ ɾӨڹ͕શαʔϏεʹٴͿ
ͷͰख͕ग़ͮ͠Β͍ ɾಉҰIDͰ͋Δ͜ͱΛ׆͔ ͤͳ͍ ։ൃͷ੍ ਐԽ͠ͳ͍ೝূ 14
2018 ೝূج൫ͷ։ൃ։࢝ 15
Ͳ͏ղܾ͢Δ DBͷґଘΛ ݮΒ͢ WebAPI ͷΈͰ ΓऔΓ ิॿͰͳ͘ ҕৡͯ͠Β͏ 16
*%τʔΫϯͷऔಘͱݕূ ೝূ 17
OpenID Connect ͷϝϦοτ • ඪ४༷Ͱ͋Δ • ηΩϡϦςΟݒ೦͕গͳ͍ • OSS͕ར༻Ͱ͖ΔʢΫϥΠΞϯτࢹʣ •
RESTful ͳ Web API ͷΈͰͷΓऔΓ • ݴޠɺΠϯϑϥͱʹαʔϏεଆͷ੍͕ͳ͍ • IdP ଆͷ։ൃͷΈͰೝূڧԽ͕Մೳ • ೝূॲཧࣗମ IdP ଆͷυϝΠϯͷΈͰߦΘΕΔ 18
େมͩͬͨ͜ͱ • ༷ͷཧղɾղऍ͕͍͠ • Ͳ͏࡞Δ͔ • طଘαʔϏεͷ IdP ରԠ 19
༷ͷཧղɾղऍ͕͍͠ • ؔ࿈༷͕ଟ͍… • Φϓγϣφϧ͕ଟ͍… • IdP Λ࡞ΔͨΊʹඞཁͳ༷͕ͯ͢ࡌ͍ͬͯΔΘ͚Ͱͳ͍ → OpenID
Foundation Japan ͷ૬ஊ → ΤΩεύʔτͰ͋Δ @nov ͞ΜΛٕज़ސͱܴͯ͑͠Δʢͷͪೖࣾʣ 20
ࣗ࡞ / IDaaS / Managed • طଘσʔλͷҠߦཁ݅ • ϕϯμʔϩοΫΠϯͷෆ҆ •
ྉۚʹݟ߹͏ͷ͔ → OSSϥΠϒϥϦΛͬͯࣗ࡞ ʢݸਓతʹΊͪΌͪ͘Όྑ͍ܦݧʹͳͬͨɻ4͘Β͍େ͖ͳͳ͘ӡ༻Ͱ͖͍ͯΔɻ ͚Ͳ͔ͳΓޭόΠΞεɻຊʹθϩ͔ΒΔͳΒ IDaaS ͬͯΈ͍ͨɻʣ 21
طଘαʔϏεͷ IdP ରԠ • ঢ়گ • ։ൃ։࢝࣌Ͱ7ͭͷαʔϏε͕ӡ༻த • ৽ن2αʔϏεʢIdP ར༻લఏͰ։ൃʣϦϦʔεؒۙ
• ϏοάόϯϦϦʔεૣʑʹఘΊΔ • IdP ͕ڞ௨DB Λར༻͢Δ͜ͱͰޓੑΛอͭ͜ͱʹͨ͠ 22
ཧDBͷڞ༗͕ͳ͍ੈք 23
IdP͕ڞ༗DBʹใΛಉظ͢Δ 24
201812݄ ೝূج൫ͷϦϦʔε 25
ଓ͘৽نαʔϏε 2020 ϚωʔϑΥϫʔυ ͓ۚͷ૬ஊ ϚωʔϑΥϫʔυ ΫϥυձܭPlus ϚωʔϑΥϫʔυ ࣾձอݥ ϚωʔϑΥϫʔυ ։ۀಧ
2021 ϚωʔϑΥϫʔυ Ϋϥυ࠴ࢧ ϚωʔϑΥϫʔυ Ϋϥυܖ ϚωʔϑΥϫʔυ ΫϥυٻॻPlus ϚωʔϑΥϫʔυ Ϋϥυݻఆࢿ࢈ ϚωʔϑΥϫʔυ Ϋϥυਓࣄཧ ϚωʔϑΥϫʔυ Ϋϥυௐ ϚωʔϑΥϫʔυ ITཧΫϥυ ϚωʔϑΥϫʔυ Pay for Business 26
1ͭͷIDͰͯ͢ͷαʔϏεΛར༻Մೳ 27
ϦϦʔε͔ͯ͠ΒԿͬͯͨͷʁ 28
1. طଘαʔϏεͷҠߦαϙʔτ ɹɾશαʔϏε͕ͬͨͷ2020͘Β͍ 29
2. ೝূڧԽ ɹɾ2FA (TOTP/SMS) ɹɾSign in with Apple ɹɾϩάΠϯ௨ ɹɾύεϫʔυϙϦγʔมߋ
ɹɾύεϫʔυڧϝʔλʔ ɹɾWebAuthn/Passkey 30
3. UX্ɺCVR্ ɹɾલճͷϩάΠϯํ๏ͷهԱ ɹɾαʔϏεؒͷSSO ɹɾB2C/B2B ʹ߹ΘͤͨΧελϚΠζ ɹɾݸผͷ RP ʹ߹ΘͤͨΧελϚΠζ 31
4. ΤϯλʔϓϥΠζରԠ ɹɾ৫ཧΞΧϯτ ɹɾSAML 32
5. ͦͷଞݸผχʔζͷରԠ ɹɾi18nʢӳޠʣ 33
6. IDج൫ࣗମͷΞʔΩςΫνϟվળ ɹɾSakura -> AWS ɹɾk8s 34
ࠓޙͳʹ͍͔ͬͯ͘ 35
WebAuthn/Passkey ͷνϟϨϯδ ɹɾ࣮ࡁΈ͕ͩར༻ଅਐ͍ͯ͠ͳ͍ ɹɾAutofill ͷಋೖ ɹɾదͳλΠϛϯάͰͷొͷ༠ಋ ɹɾ”ύεϫʔυϨε” ͷఏڙ 36
ΞΧϯτϦΧόϦͷվળ 37
αʔϏεͷಛੑίϯςΩετʹ߹Θͤͨ ॊೈͳೝূͷఏڙ 38
ୀձ·ΘΓͷ Bad UX վળ ɹɾαʔϏεͷୀձͱIdPͷୀձͷѻ͍ ɹɾҰՕॴͰશ෦ୀձ͍͕ͤͨ͞… 39
άϧʔϓձࣾͷαʔϏεͱͷID౷߹ 40
3rd Party ͷ։์ 41
Pull ͔Β Publish (Push) RISCͷΑ͏ͳΓํͰ https://openid.net/specs/openid-risc-profile-specification-1_0.html https://developers.google.com/identity/protocols/risc 42
ϚϧνΞΧϯτɺϚϧνηογϣϯ ͜Μͳݴ༿͕͋Δ͔Θ͔ΒΜ͚ͲɺGoogle Έ͍ͨʹΓସ͑ ݸਓͱձࣾͰΞΧϯτΛ͍͚Δਓ͚ 43
ڞ༗ΞΧϯτʁ 44
ΞΫηείϯτϩʔϧ 45
Thank you! 46