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
現状の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
1
990
パスキー導入の課題と ベストプラクティス、今後の展望
ritou
8
1.9k
Password-less Journey - パスキーへの移行を見据えたユーザーの準備 + α
ritou
0
82
Password-less Journey - パスキーへの移行を見据えたユーザーの準備 @ AXIES 2024
ritou
4
1.7k
OIDF-J EIWG 振り返り
ritou
2
43
そのQRコード、安全ですか? / Cross Device Flow
ritou
4
480
MIXI Mと社内外のサービスを支える認証基盤を作るためにやってきたこと #MTDC2024
ritou
3
590
Passkeys and Identity Federation @ OpenID Summit Tokyo 2024
ritou
2
790
Webアプリ開発者向け パスキー対応の始め方
ritou
4
6.4k
Other Decks in Technology
See All in Technology
AIによるコードレビューで開発体験を向上させよう!
moongift
PRO
0
380
コスト最適重視でAurora PostgreSQLのログ分析基盤を作ってみた #jawsug_tokyo
non97
2
880
ガバクラのAWS長期継続割引 ~次の4/1に慌てないために~
hamijay_cloud
1
590
Асинхронная коммуникация в Go: от понятного к душному. Дима Некрасов, Otello, 2ГИС
lamodatech
0
1.9k
更新系と状態
uhyo
8
2.2k
Microsoft Fabric vs Databricks vs (Snowflake) -若手エンジニアがそれぞれの強みと違いを比較してみた- "A Young Engineer's Comparison of Their Strengths and Differences"
reireireijinjin6
1
130
2025-04-24 "Manga AI Understanding & Localization" Furukawa Arata (CyberAgent, Inc)
ornew
2
340
Compose におけるパスワード自動入力とパスワード保存
tonionagauzzi
0
190
Azure Maps Visual in PowerBIで分析しよう
nakasho
0
200
地味にいろいろあった! 2025春のAmazon Bedrockアップデートおさらい
minorun365
PRO
2
560
時間がないなら、つくればいい 〜数十人規模のチームが自律性を発揮するために試しているいくつかのこと〜
kakehashi
PRO
19
3.8k
大規模サーバーレスプロジェクトのリアルな零れ話
maimyyym
3
140
Featured
See All Featured
Build The Right Thing And Hit Your Dates
maggiecrowley
35
2.7k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
47
2.7k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
45
9.5k
The Language of Interfaces
destraynor
158
25k
Gamification - CAS2011
davidbonilla
81
5.3k
Product Roadmaps are Hard
iamctodd
PRO
53
11k
Stop Working from a Prison Cell
hatefulcrawdad
268
20k
GraphQLの誤解/rethinking-graphql
sonatard
71
10k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.2k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
52
2.4k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
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