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
2
1.9k
パスキー導入の課題と ベストプラクティス、今後の展望
ritou
12
4.1k
Password-less Journey - パスキーへの移行を見据えたユーザーの準備 + α
ritou
1
93
Password-less Journey - パスキーへの移行を見据えたユーザーの準備 @ AXIES 2024
ritou
4
1.7k
OIDF-J EIWG 振り返り
ritou
2
52
そのQRコード、安全ですか? / Cross Device Flow
ritou
4
530
MIXI Mと社内外のサービスを支える認証基盤を作るためにやってきたこと #MTDC2024
ritou
3
620
Passkeys and Identity Federation @ OpenID Summit Tokyo 2024
ritou
2
820
Webアプリ開発者向け パスキー対応の始め方
ritou
4
6.5k
Other Decks in Technology
See All in Technology
AI技術トレンド勉強会 #1MCPの基礎と実務での応用
nisei_k
1
240
Agentic Workflowという選択肢を考える
tkikuchi1002
1
200
IIWレポートからみるID業界で話題のMCP
fujie
0
620
AIのAIによるAIのための出力評価と改善
chocoyama
0
370
DB 醬,嗨!哪泥嘎斯基?
line_developers_tw
PRO
0
1k
讓測試不再 BB! 從 BDD 到 CI/CD, 不靠人力也能 MVP
line_developers_tw
PRO
0
1k
Devin(Deep) Wiki/Searchの活用で変わる開発の世界観/devin-wiki-search-impact
tomoki10
0
790
Observability в PHP без боли. Олег Мифле, тимлид Altenar
lamodatech
0
220
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
52
31k
CSS、JSをHTMLテンプレートにまとめるフロントエンド戦略
d120145
0
180
ハノーバーメッセ2025座談会.pdf
iotcomjpadmin
0
140
生成AIをテストプロセスに活用し"よう"としている話 #jasstnano
makky_tyuyan
0
250
Featured
See All Featured
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.9k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Reflections from 52 weeks, 52 projects
jeffersonlam
351
20k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
Designing for Performance
lara
609
69k
[RailsConf 2023] Rails as a piece of cake
palkan
55
5.6k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
790
Rebuilding a faster, lazier Slack
samanthasiow
81
9k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
43
2.4k
BBQ
matthewcrist
89
9.7k
The Cost Of JavaScript in 2023
addyosmani
50
8.4k
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