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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
nhosoya
January 19, 2023
Technology
2.5k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
マネーフォワードの認証基盤のこれまでとこれから
サービスの当たり前を支える認証認可 〜マネーフォワードxマクアケ〜
https://makuake.connpass.com/event/269014/
nhosoya
January 19, 2023
More Decks by nhosoya
See All by nhosoya
マネーフォワードの認証基盤の現在地
nhosoya
1
1.5k
Other Decks in Technology
See All in Technology
2026-08-15 JAWS-UG 茨城 #16 Secrets ManagerにおけるSecret値の管理(Terraformの場合) / Secrets Manager Secrets
masasuzu
0
330
名刺メーカーDevグループ 紹介資料
sansan33
PRO
0
1.2k
[potatotips #96] Give Your AI Agent the Flutter Playbook
korodroid
0
110
Bits Agent Builder の⼊⾨と活⽤事例
nulabinc
PRO
0
250
巨大気象データと戦う ― サロゲートモデル学習を高速化する圧縮技術
gpuunite_official
0
140
DatadogのBits Chatが開発組織にもたらしたもの / What Bits Chat Has Brought Us
sms_tech
1
290
同じWAFが、攻撃の“形”は弾く── 正当な“形”の不正は通す
kuroneko13
0
250
Head First モブプログラミング / Head First Mobprogramming
takaking22
10
12k
DDDのエッセンスを取り入れたAIでの開発
ak2ie
0
150
【GCC2026】TrueHDRIを用いたルックデブ環境とライティングテクニック
bandainamcostudios
PRO
0
110
ホームラボ紹介
y_sera15
0
210
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
5k
Featured
See All Featured
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2.1k
WCS-LA-2024
lcolladotor
0
800
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.5k
A designer walks into a library…
pauljervisheath
211
24k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.8k
Site-Speed That Sticks
csswizardry
13
1.5k
It's Worth the Effort
3n
188
29k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
250
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.5k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
500
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
290
Balancing Empowerment & Direction
lara
6
1.2k
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