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
熊でもわかるFIDO2
Search
Shohei Kobayashi
June 04, 2023
Technology
170
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
熊でもわかるFIDO2
FIDO2 / PassKey / Webauthnの概念から設計・実装まで
Shohei Kobayashi
June 04, 2023
More Decks by Shohei Kobayashi
See All by Shohei Kobayashi
非同期処理実行基盤 Delayed脱出 → Solid Queue完全移行への旅路。
srockstyle
3
3.2k
CI/CD/インフラ勉強会Vol4 Amazon ECS編 Part1
srockstyle
0
180
熊でもわかるCI/CD/モダンインフラ Vol3 AWS CDK
srockstyle
0
430
熊でもわかるCI/CDモダンインフラ Github Action編
srockstyle
0
430
熊でもわかるCI/CD/モダンインフラVol1:用語を覚えよう編
srockstyle
0
630
Chefとnginxで作るPHPアプリケーションのReliable Blue Green Deployment
srockstyle
6
25k
Other Decks in Technology
See All in Technology
AI駆動開発が変える、大規模開発の前提 ーHuman in the Loop から Human on the Loop へ / AIE2026
visional_engineering_and_design
24
13k
AI-DLCを活用した高品質・安全なAI駆動開発実践 / AI Driven Development
yoshidashingo
1
380
サプライチェーンセキュリティの空白地帯 - 信頼できる”依存性”の未来を考える
rung
PRO
2
740
個人最適 から 全体最適 へ AI情報共有会・AIギルド・AI-DLC で進める カンリーの組織展開
rfdnxbro
0
1.7k
もりもり新機能を一挙紹介! AgentCoreに入門して、AWS上にAIエージェントを構築しよう
minorun365
PRO
6
840
【Gen-AX】20260530開催_JJUG CCC 2026 Spring
genax
0
430
Databricks における 生成AIガバナンスの実践
taka_aki
1
330
Agentic ERPをどう設計するか ー 受発注エージェントを動かす、現場の知見と設計思想ー
recerqainc
1
1.7k
ChatworkとBPaaS 異なる特性で学んだAI機能開発の ベストプラクティス
kubell_hr
2
3k
Building applications in the Gemini API family.
line_developers_tw
PRO
0
2k
Unlocking the Apps
pimterry
0
250
先取りMaven4 ~16年ぶりのメジャーアップデート、その進化とは?~
ogiwarat
0
150
Featured
See All Featured
Designing for Timeless Needs
cassininazir
1
250
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.3k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
520
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
280
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
200
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
1.6k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
300
RailsConf 2023
tenderlove
30
1.5k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
770
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
160
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
600
The Curious Case for Waylosing
cassininazir
1
380
Transcript
۽ͰΘ͔Δ FIDO2
༻ޠղઆ
ύεϫʔυΛΘͣʹೝূΛߦ͏ʮύεϫʔυϨεʯೝূͷ࠷৽ͷٕज़ن֨ ެ։伴Λࣄલʹొ͢Δ ϩάΠϯͷཁٻ νϟϨϯδίʔυΛ͚ͭͯ ೝূΛґཔ ࢿ֨ใͷೖྗ ʢࢦೝূͳͲʣ νϟϨϯδίʔυʹର͠ ൿີ伴Ͱॺ໊ ެ։伴ʹΑΔݕূ
ϩάΠϯڐՄ ൿີ伴ͷอ࣋ ެ։伴ͷอ࣋ '*%0ͱ 8FCαΠτ
'*%0ͷΈͷ՝ ެ։伴Λࣄલʹొࡁ ϩάΠϯͷཁٻ ެ։伴ʹΑΔݕূ ϩάΠϯڐՄ ൿີ伴#ͷอ࣋ ެ։伴ͷอ࣋ ൿີ伴"ͷอ࣋ ެ։伴ະొ ϩάΠϯͷཁٻ
ެ։伴ʹΑΔݕূ ϩάΠϯڐՄͰ͖ͳ͍ ެ։伴ొࡁ 1$ͱεϚϗ྆ํ͔ΒΞΫηε͍͕ͨ͠ɺ εϚϗͷൿີ伴͔͠ొͯ͠ͳ͍ͷͰ 1$͔ΒϩάΠϯͰ͖ͳ͍ͷͭΒ͍ 8FCαΠτ
ύεΩʔʢNVMUJEFWJDF'*%0DSFEFOUJBMʣ ΫϥυͰൿີ伴Λอଘ͠ڞ༗͢Δ͜ͱͰϚϧνσόΠεରԠ͢Δ๏ํ ൿີ伴ΛΫϥυͰڞ༗ ϩάΠϯͷཁٻ ެ։伴ʹΑΔݕূ ϩάΠϯڐՄ ެ։伴ͷอ࣋ ϩάΠϯͷཁٻ εϚϗͰ࡞ͬͨൿີ伴Λ1$Ͱ ڞ༗Ͱ͖ΔͷͰɺ
྆ํͰ'*%0ͰͷϩάΠϯ͕Ͱ͖Δʂ ެ։伴ʹΑΔݕূ ϩάΠϯڐՄ 8FCαΠτ
'*%0ೝূ͢Δ͜ͱʹύεΩʔͱ͍͏จ຺Ͱ ͏ਓ͍ΔͷͰؾΛ͚ͭΑ͏ɻ ʢຊͷҙຯҧ͏Αʣ
࣮
8FCBVUIO ύϒϦοΫΩʔೝূͷΠϯλʔϑΣΠεΛ8FCΞϓϦέʔγϣϯͰඪ४Խ͢ΔͨΊͷ8FCඪ४ɻ ެ։伴Λࣄલʹొ͢Δ ϩάΠϯͷཁٻ νϟϨϯδίʔυΛ͚ͭͯ ೝূΛґཔ 1*/ͷೖྗ UPVDI*% νϟϨϯδίʔυʹର͠
ൿີ伴Ͱॺ໊ ެ։伴ʹΑΔݕূ ϩάΠϯڐՄ ೝূػ 8FC"VUIO $MJFOU ϒϥβ 8FCαΠτ
8FCBVUIO ඞཁͳཁ݅ 1*/ͷೖྗ UPVDI*% ೝূػ 8FC"VUIO $MJFOU ϒϥβ 8FCαΠτ
WebAuthn Relying Partyʹ४ڌ͢Δ͜ͱ WebAutn Clientʹ ରԠ͢Δ͜ͱ FIDO2 authenticaterͱ ޓੑΛอͭ͜ͱ
8FCBVUIO ϒϥβͷରԠঢ়گ V67ʙ V87ʙ V13ʙ V60ʙ Vʙ &EHF)5.-࣌ʹ ରԠࡁΈ 2023/5
V113 2023/5 V16 2023/5 V113 2023/5 V40
8FCBVUIO࣮લ४උ ࢀߟ63- pedz/rails-7-passkey-demo https://github.com/pedz/rails-7-passkey-demo cedarcode/webauthn-ruby https://github.com/cedarcode/webauthn-ruby 'SPOUFOE #BDLFOE $npm install
webauthn-json $gem install webauthn-ruby
8FCBVUIO ೝূػ 8FC"VUIO $MJFOU ϒϥβ 8FCαΠτ Θ͚ͯߟ͑ΔͱΘ͔Γ͍͢Ͱ͢ Web Backend Database
Web Frontend
8FCBVUIO࣮ొ࣌ WebAuthn Client (ϒϥβ) Web Backend Web Frontend Database webauth
register API webautn callback API Home API ৽نొ ϩάΠϯ໊ཁٻ ϩάΠϯ໊1045 ϩάΠϯ໊1045 ϩάΠϯ໊ͷ6TFSΛ࡞ 8FCBVUO*%Λ࡞͠%#ʹอଘ DBMMCBDL"1*Λฦ͢ ެ։伴࡞ґཔ ެ։伴࡞ґཔ ೝূঢ়͚ͭͯ1045 ύϥϝʔλ͔ΒೝূใΛอଘ ϩάΠϯ0, ϩάΠϯ0, ೝূ͖ϖʔδΞΫηε ೝূ͖"1* ΞΫηε ೝূ͖ใΛ ฦ͢ ೝূ͖ใΛ දࣔ
8FCBVUIO࣮όοΫΤϯυͰ࣮͢Δͷ Web Backend Database webauth register API webautn callback API
Home API register API ϢʔβొˍνϟϨϯδίʔυൃߦ"1* register callback API ൿີ伴ͷొηογϣϯ։࢝"1* session API طଘͷϢʔβݕࡧˍνϟϨϯδίʔυൃߦ"1* session callback API ൿີ伴ͷ֬ೝɾηογϣϯ։࢝"1* ͭ"1*Λ࣮͢Δඞཁ͕͋Γɻ தطଘͷͷΛࢀর͢Δ͔৽ن࡞͔ͷҧ͍͔͠ͳ͠ɻ ͜Εطଘͷೝূඞਢ"1*ͳͷͰ ৽ͨʹ࣮͍Βͳ͍Α
8FCBVUIO࣮ϑϩϯτΤϯυͰ࣮͢Δͷ Sign Up Ϣʔβొ ൿີ伴࡞ґཔ SFHJTUFS"1*ͱDBMMCBDL"1*Λೋ࣮ͭߦ͢Δ Sign In طଘͷϢʔβͰϩάΠϯ ൿີ伴ݕࡧґཔ
TFTTJPO"1*ͱDBMMCBDL"1*Λೋ࣮ͭߦ͢Δ Credentials Management Page ൿີ伴ͷཧϖʔδ ͭը໘Λ࣮͢Δඞཁ͕͋Γɻ ͨͩϩάΠϯ෦ͷϩδοΫ͕1045͢Δ͚ͩͰͳ͍ͷͰҙɻ 8FC"VUIO+TPOΛͬͯൿີ伴ͷ࡞Λϒϥβʹଅ࣮͕͢ඞཁɻ Web Frontend
8FCBVUO՝
None
8FCαΠτ 1$ 4BGBSJൿີ伴 $ISPNFൿີ伴 ൿີ伴ೝূ ϩάΠϯ0, ൿີ伴ೝূ ϩάΠϯ/( ൿີ伴ͷڞ༗ ϒϥβؒͰ
ڞ༗ͯ͘͠Εͳ͍ ϒϥβؒͰͷڞ༗ߦΘΕͳ͍
8FCαΠτ macOS 4BGBS࡞ൿີ伴 $ISPNF࡞ൿີ伴 ൿີ伴ೝূ ϩάΠϯ0, ൿີ伴ೝূ ϩάΠϯ0, ൿີ伴ͷڞ༗ "QQMF1BTT,FZͱ͍͏ΈͰJ$MPVEܦ༝ͰσόΠεؒڞ༗͕Մೳ
iOS ൿີ伴ೝূ ϩάΠϯ0,
8FCαΠτ macOS ࡞ͨ͠ൿີ伴 ൿີ伴ೝূ ϩάΠϯ0, ൿີ伴ͷཧ iOS
8FCαΠτ macOS ࡞ͨ͠ൿີ伴 ൿີ伴ೝূ ϩάΠϯ0, ൿີ伴ͷཧ iOS Windows Andoid
ݱঢ়ͷղܾࡦ 8FCαΠτ NBD04J04ͷެ։伴 $ISPNFͷެ։伴 8JOEPXTͷެ։伴 macOS ࡞ͨ͠ൿີ伴 iOS Windows Andoid
"OESPJEͷެ։伴 αΠτଆͰҰਓͷϢʔβʹରͯ͠ެ։伴Λෳ࣋ͭ
'*%0ͷ·ͱΊͱײ w ൿີ伴ͷڞ༗ํ๏Λ͏·͘ΕΕ*1"44ํࣜʹऔͬͯมΘΔͰ͠ΐ͏ w Ϣʔβ໊ͱૹ৴Ϙλϯԡͤηογϣϯ։͍࢝खଆ͔Β͢ΔͱϚδͰָ w ෳ伴ཧϢʔβଆαʔϏεఏڙଆ໘ͳͷͰϢʔβެ։伴ʹ͍ͨ͠
Blog: https://www.srockstyle.com/ • Twitterɿhttps://twitter.com/srockstyle • Facebookɿhttps://www.facebook.com/srockstyle • Githubɿhttps://github.com/srockstyle • Qiitaɿhttp://qiita.com/srockstyle
• Wantedlyɿhttps://www.wantedly.com/users/2279 • YOUTRUST: https://youtrust.jp/users/srockstyle • Slideshareɿhttp://www.slideshare.net/srockstyle ۀҕୗͷࣄɺਖ਼ࣾһͱͯ͠ͷεΧτ͓ͪͯ͠·͢