Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
現状のFedCMの動作解説と OIDCとの親和性について- OpenID TechNight ...
Search
ritou
June 21, 2022
Technology
2
1.1k
現状のFedCMの動作解説と OIDCとの親和性について- OpenID TechNight vol.19
下記イベントの発表資料です。
https://openid.connpass.com/event/249281/
ritou
June 21, 2022
Tweet
Share
More Decks by ritou
See All by ritou
“パスワードレス認証への道" ユーザー認証の変遷とパスキーの関係
ritou
2
5.3k
パスキー導入の課題と ベストプラクティス、今後の展望
ritou
12
6.3k
Password-less Journey - パスキーへの移行を見据えたユーザーの準備 + α
ritou
1
130
Password-less Journey - パスキーへの移行を見据えたユーザーの準備 @ AXIES 2024
ritou
4
1.8k
OIDF-J EIWG 振り返り
ritou
2
77
そのQRコード、安全ですか? / Cross Device Flow
ritou
4
610
MIXI Mと社内外のサービスを支える認証基盤を作るためにやってきたこと #MTDC2024
ritou
3
740
Passkeys and Identity Federation @ OpenID Summit Tokyo 2024
ritou
2
910
Webアプリ開発者向け パスキー対応の始め方
ritou
4
6.8k
Other Decks in Technology
See All in Technology
コミューンのデータ分析AIエージェント「Community Sage」の紹介
fufufukakaka
0
270
プロダクトマネジメントの分業が生む「デリバリーの渋滞」を解消するTPMの越境
recruitengineers
PRO
3
620
乗りこなせAI駆動開発の波
eltociear
1
570
Symfony AI in Action
el_stoffel
2
380
Playwright x GitHub Actionsで実現する「レビューしやすい」E2Eテストレポート
kinosuke01
0
170
GitLab Duo Agent Platformで実現する“AI駆動・継続的サービス開発”と最新情報のアップデート
jeffi7
0
190
最近のLinux普段づかいWaylandデスクトップ元年
penguin2716
1
560
Agents IA : la nouvelle frontière des LLMs (Tech.Rocks Summit 2025)
glaforge
0
460
.NET 10 のパフォーマンス改善
nenonaninu
2
4.9k
Agentic AI Patterns and Anti-Patterns
glaforge
1
150
AI駆動開発によるDDDの実践
dip_tech
PRO
0
370
21st ACRi Webinar - Univ of Tokyo Presentation Slide (Ayumi Ohno)
nao_sumikawa
0
120
Featured
See All Featured
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.5k
Making the Leap to Tech Lead
cromwellryan
135
9.7k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
The Pragmatic Product Professional
lauravandoore
37
7.1k
Site-Speed That Sticks
csswizardry
13
990
Build The Right Thing And Hit Your Dates
maggiecrowley
38
3k
What's in a price? How to price your products and services
michaelherold
246
12k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.3k
Rebuilding a faster, lazier Slack
samanthasiow
84
9.3k
Typedesign – Prime Four
hannesfritz
42
2.9k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
253
22k
Statistics for Hackers
jakevdp
799
230k
Transcript
!"#$%&'(#)*+,- /01'-#2345678 /9%:01.;%<=>?@=A.BCDEFG.H$%&'(.I J?ACK.LMLLNONLF.
• https://ritou.hatenablog.com • FedCMೖ ͦͷ1 ~ ID࿈ܞͷ՝ͱFedCMͷΞϓϩʔν • FedCMೖ ͦͷ2
~ ݱঢ়ͷFedCM࣮ղઆ • FedCMೖ ͦͷ3 ~ OIDCͱͷࠩղઆ (·ͩԼॻ͖) $%&'(5678#PQ  2
• FedCMͷID࿈ܞϑϩʔ • OIDCͱͷࠩ • ࠩղফͷͨΊͷΞϓϩʔν RSTU  3
• IdP : Identity Provider. ଞαʔϏεʹରͯ͠ϢʔβʔใΛ ఏڙ͢Δ αʔϏε • RP
: Relying Party. IdPͷϢʔβʔใΛ༻͍ͯೝূػೳΛ࣮ ݱ͢Δ αʔϏε • Ϣʔβʔ : IdP/RPͦΕͧΕΛར༻͢ΔϢʔβʔ • ϒϥβ : FedCMʹରԠͨ͠ϒϥβ VWXY  4
1. ϢʔβʔIdPʹϩάΠϯ͍ͯ͠Δલఏ 2. Ϣʔβʔ͕RPͰ "IdPͰϩάΠϯ" Λར༻͠Α͏ͱͯ͠ɺRP FedCMͷAPIΛݺͼग़͢ 3. ϒϥβIdPʹରͯ͠ϩάΠϯதͷΞΧϯτใ(Ϧετ)Λཁ ٻ͠ɺID࿈ܞͷͨΊͷϓϩϯϓτΛRPυϝΠϯ্Ͱදࣔ͢Δ
4. ϒϥβϢʔβʔ͕બ/ڐՄͨ͠ΞΧϯτใʹඥͮ͘ೝূ ༻τʔΫϯ(OIDCͷIDToken)ΛIdPʹཁٻ͠ɺऔಘͨ͠ͷΛRPʹ ͢ɻRPͦΕΛೝূػೳʹར༻͢Δɻ 01Z[\]  5
VWXY-01Z[\]  6
1. ϢʔβʔIdPʹϩάΠϯ͍ͯ͠Δલఏ 2. Ϣʔβʔ͕RPͰ "IdPͰϩάΠϯ" Λར༻͠Α͏ͱͯ͠ɺRP FedCMͷAPIΛݺͼग़͢ 3. ϒϥβIdPʹରͯ͠ϩάΠϯதͷΞΧϯτใ(Ϧετ)Λཁ ٻ͠ɺID࿈ܞͷͨΊͷϓϩϯϓτΛRPυϝΠϯ্Ͱදࣔ͢Δ
4. ϒϥβϢʔβʔ͕બ/ڐՄͨ͠ΞΧϯτใʹඥͮ͘ೝূ ༻τʔΫϯ(OIDCͷIDToken)ΛIdPʹཁٻ͠ɺऔಘͨ͠ͷΛRPʹ ͢ɻRPͦΕΛೝূػೳʹར༻͢Δɻ 01Z[\]  7
^_`abcdefghigj  8
01Z[#klmin  9
opqr#01Z[]s  10
opqr#01Z[]s  11 • FedCM͕༗ޮ͔Ͳ͏͔ͷఆ • ID࿈ܞཁٻ
0&p.t%Au&uAuv]s  12
0&p.t%Au&uAuv]s  13 • Top level domain manifest • IdP
manifest f ile
'D?%:A.t%Au&uAu.v]s  14
'D?%:A.t%Au&uAu.v]s  15 • Client metadata Endpoint
hwxiy#z{`ij|njv]s  16
hwxiy#z{`ij|njv]s  17 • Client metadata Endpoint
}~•lal#01;C€%:v]s  18
}~•lal#01;C€%:v]s  19 • Accounts list endpoint
01;C€%:v•78‚ƒNV„…†  20
01;C€%:v•78‚ƒNV„…†  21 • ID Token Endpoint
PC/Android ͷ Chrome Canary Ͱಈ࡞֬ೝͰ͖·͢ɻ • IdP : https://ex-fedcm-idp.herokuapp.com/ •
RP : https://ex-fedcm-rp.herokuapp.com/ ‡ˆ‰Š  22
• FedCMͷID࿈ܞϑϩʔ • OIDCͱͷࠩ • ࠩղফͷͨΊͷΞϓϩʔν RSTU  23
• ݱঢ়ͷFedCMͰͰ͖Δ͜ͱʮϑϩϯτνϟϯωϧͰͷ IDTokenͷΓͱΓʯ $%&'(  24
• Authorization Code Flow • ϑϩϯτνϟϯωϧ : Authorization Code (+
ID Token) • όοΫνϟϯωϧ : ID Token / AT / RT • Implicit Flow <- ͜Εʹ͍ۙ • ϑϩϯτνϟϯωϧ : ID Token (+ α) • Hybrid Flow (ུ) /01'.$DC‹Œ  25
/01'.0t9D?<?A.$DC‹  26
• IdP metadata : OpenID Provider Con f iguration ͰٵऩՄೳ
• Clientใཁٻ : ະఆٛ • ΞΧϯτϦετཁٻ : ະఆٛ • ID Tokenཁٻ -> Implicit Flowʹ͍ۙ • ϒϥβʹAuthN Response͕͞ΕΔ • ະఆٛ/লུ͞Εͨύϥϝʔλ $%&'(.BŒ./01'  27
• ༻్ : ιʔγϟϧϩάΠϯػೳ(ϦιʔεΞΫηεͳ͠)ͷ γϣʔτΧοτͱͯ͠ͷΈར༻Ͱ͖Δ • ϦιʔεΞΫηε·Ͱαϙʔτͯ͠΄͍͠ਓ͑ͳ͍ • ID Token
ʹؚ·ΕΔ • IdPʹґଘ /01'.op  28
• ༻్ʹ͍ͭͯRPͱಉ༷ • ࣮ : FedCMରԠͷͨΊͷಠ֦ࣗு͕ඞཁ • Authorization Endpointͷ֦ுʁ •
OIDCະఆٛͷΤϯυϙΠϯτ • ID Token ʹؚ·ΕΔ • ݱঢ়ͰύϥϝʔλҎ֎ͰܾΊΔඞཁ͕͋Δ /01'.0&p  29
• FedCMͷID࿈ܞϑϩʔ • OIDCͱͷࠩ • ࠩղফͷͨΊͷΞϓϩʔν RSTU  30
FedCM - OIDC ؒͷࠩղফͷͨΊʹ 1. FedCM ͕ OIDC ʹدͤΔ 2.
FedCM ͷͨΊʹOIDCΛ֦ு͢Δ 1 Ͱ Implicit Flow ʹدͤΑ͏ͱͯ͠OIDCະఆٛͷϦΫΤε τ/Ϩεϙϯε͋ΔͷͰ 1, 2 ͷ྆ํ͕ඞཁͦ͏ɻ SAML֦ுେมͳΜ͡Όͳ͍ͷʁ •Ž+•#•‘#zghl’  31
• id_token_endpoint = Authorization Endpoint • Authentication Request • “response_type=id_token”
• “prompt=none” • “login_hint” + Cookie Ͱఆ • “scope”, “claims” ύϥϝʔλΛαϙʔτ $%&'(b/01'5“”f  32
• FedCMಠࣗͷϦΫΤετ • Client Metadata Request • Account List Request
• JSONܗࣜͰID TokenΛཁٻ • response_mode: body # body Ͱ Authentication Response Λཁٻ • redirect_uri: “urn…” # fedcm ༻ͷͱ͔ /01'.•–A%:Œ?C:.—CJ.$%&'(  33
• ݱঢ়ͷFedCMͰߦΘΕ͍ͯΔϦΫΤετ/ϨεϙϯεΛઆ໌ ͨ͠ • FedCM ͱ OIDC ͷϓϩτίϧͱͯ͠ͷҧ͍Λઆ໌ͨ͠ • OIDC
Implicit Flow ૬ͷγϣʔτΧοτతͳཱͪҐஔʹ ͳ͍ͬͯΔ • IdPͷՃରԠͷίετ͕͋ΔҹͳͷͰɺࠩղফͷΞϓ ϩʔνʹࠓޙ ˜-‘  34
™š›  35