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
OpenID Connect から学ぶ認証・認可
Search
kumico
June 07, 2025
Technology
42
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
OpenID Connect から学ぶ認証・認可
社内 LT で発表した内容に加筆・改訂したスライド
kumico
June 07, 2025
More Decks by kumico
See All by kumico
こんにちは DID
devoc
0
21
インタラクティブシェルのカスタマイズを楽しもう
devoc
0
210
Grafana Cloudとソラカメ
devoc
0
390
モダンターミナルエミュレータは画像を表示できるらしい
devoc
1
50
アプリケーションパフォーマンスの計測と改善の方法を勉強している話
devoc
11
3.4k
Other Decks in Technology
See All in Technology
え?フロントエンドエンジニアの ワイがインフラも!?
puku0x
1
760
同じWAFが、攻撃の“形”は弾く── 正当な“形”の不正は通す
kuroneko13
0
240
Service Connect 上のサービスに ECS Service の外側から到達できなかった話
ota1022
1
270
What's new in Go 1.27?
ciarana
0
260
Eight Engineering Unit 紹介資料
sansan33
PRO
3
8.2k
Go 1.27 の標準パッケージに uuid が入った!のでいろいろ喋る / go_127_std_go_uuid
convto
1
280
関東Kaggler会発表資料
takoi
1
260
AWS ネットワーク構築でハマった(ハマりかけた) 5選とそこから得た教訓
nagisa53
4
270
私がブラウザを自作したくなった理由
supurazako
1
270
モバイルアプリ開発概論2026
recruitengineers
PRO
6
660
まちスペース®とデジタルツインと「まちづくり」
hiro_ogi
0
130
My broken English still works: speaking at global OSS events
naruoga
0
110
Featured
See All Featured
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.8k
Building AI with AI
inesmontani
PRO
1
1.1k
Automating Front-end Workflow
addyosmani
1369
210k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
470
Ruling the World: When Life Gets Gamed
codingconduct
0
300
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
800
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.9k
We Are The Robots
honzajavorek
0
300
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.5k
How to Think Like a Performance Engineer
csswizardry
28
2.7k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
Transcript
5BLVNJ,BUBTF 0QFO*%$POOFDU͔ΒֶͿ ೝূɾೝՄ
ࣗݾհ w 5BLVNJ,BUBTF w (POFPWJN5FSSBGPSN w ❤🍜ήʔϜΞχϝ ˡ࠷ۙϋϚͬͨήʔϜ
0QFO*%$POOFDUͬͯͳΜ͚ͩͬʁ
0"VUIYೝՄͷͨΊͷϓϩτίϧ 0QFO*%$POOFDU0"VUIYΛϕʔεʹೝূʹ͑Δ Α͏ʹ֦ு༷ͨ͠
0"VUIYೝՄͷͨΊͷϓϩτίϧ 0QFO*%$POOFDU0"VUIYΛϕʔεʹೝূʹ͑Δ Α͏ʹ֦ு༷ͨ͠ Α͘ݴΘΕΔɾɾɾ🤔
ೝূɾೝՄΛ໌֬ʹݴޠԽ͢ΔͷϜζΠͷͰͦΕͧΕͷڍಈ ʹ͍ͭͯগ͠ਂ۷Γͯ͠ΈΔ
0"VUI αʔυύʔςΟΞϓϦέʔγϣϯʹΑΔ)551αʔϏεͷݶఆతͳΞΫηε ΛՄೳʹ͢ΔೝՄϑϨʔϜϫʔΫ IUUQTPQFOJEGPVOEBUJPOKBQBOHJUIVCJPSGDKBIUNM
ϦιʔεΦʔφʔ ΫϥΠΞϯτ ೝՄαʔόʔ Ϧιʔεαʔόʔ
ϦιʔεΦʔφʔ ΫϥΠΞϯτ ೝՄαʔόʔ Ϧιʔεαʔόʔ ϦιʔεαʔόʔͷϦιʔεʹ ରͯ͠ૢ࡞ ᶃ
ϦιʔεΦʔφʔ ΫϥΠΞϯτ ೝՄαʔόʔ Ϧιʔεαʔόʔ ೝՄαʔόʔʹରͯ͠ΞΫηε ݖΛཁٻ ᶃ ᶄ
ϦιʔεΦʔφʔ ΫϥΠΞϯτ ೝՄαʔόʔ Ϧιʔεαʔόʔ ᶃ ᶄ ᶅ ϦιʔεͷΞΫηεݖΛΫϥΠΞϯτ ʹҕৡ͢Δ͜ͱͷಉҙ֬ೝ
ϦιʔεΦʔφʔ ΫϥΠΞϯτ ೝՄαʔόʔ Ϧιʔεαʔόʔ ᶃ ᶄ ᶅ ݖݶΛҕৡ͢Δ͜ͱʹಉҙ ᶆ
ϦιʔεΦʔφʔ ΫϥΠΞϯτ ೝՄαʔόʔ Ϧιʔεαʔόʔ ᶃ ᶄ ᶅ ݖݶ͕ҕৡ͞Εͨূͱͯ͠ΞΫηε τʔΫϯΛΫϥΠΞϯτʹൃߦ ᶆ
ᶇ
ϦιʔεΦʔφʔ ΫϥΠΞϯτ ೝՄαʔόʔ Ϧιʔεαʔόʔ ᶃ ᶄ ᶅ ΞΫηετʔΫϯΛͬͯϦιʔε αʔόʔʹରͯ͠ಛఆͷૢ࡞Λߦ͏ ᶆ
ᶇ ᶈ
ϦιʔεΦʔφʔ ΫϥΠΞϯτ ೝՄαʔόʔ Ϧιʔεαʔόʔ ᶃ ᶄ ᶅ Ϧιʔεαʔ όʔΞΫηετʔΫϯͷ༗ޮੑͱ ඥͮ͘ݖݶΛ֬ೝ͠ɺͳ͚ΕϨ
εϙϯεΛฦ͢ ᶆ ᶇ ᶈ ᶉ
0"VUI w ҎԼͷάϥϯτλΠϓ͕ఆٛ͞Ε͍ͯΔ w ೝՄίʔυ w ΠϯϓϦγοτ w ϦιʔεΦʔφʔύεϫʔυΫϨσϯγϟϧ w
ΫϥΠΞϯτΫϨσϯγϟϧ IUUQTPQFOJEGPVOEBUJPOKBQBOHJUIVCJPSGDKBIUNM
0"VUI άϥϯτλΠϓʹΑͬͯɺΞΫηετʔΫϯΛऔಘ͢ΔࡍͷΫϥΠΞϯτͱೝՄ αʔόʔͱͷΓͱΓํ๏͕มΘΔɻ ͜ͷ͋ͨΓ
0"VUI 0"VUIͷ࠷Ұൠతʹ༻͞ΕΔػೳΛ౷߹͓Αͼ؆ૉԽ͢ΔͨΊͷ ਐߦதͷ༷ w ҎԼͷάϥϯτλΠϓ͕ఆٛ͞Ε͍ͯΔ w ೝՄίʔυ 1,$& w ΠϯϓϦγοτ
w ϦιʔεΦʔφʔύεϫʔυΫϨσϯγϟϧ w ΫϥΠΞϯτΫϨσϯγϟϧ IUUQTEBUBUSBDLFSJFUGPSHEPDIUNMESBGUJFUGPBVUIW
ೝՄίʔυ 1,$& w ύϒϦοΫΫϥΠΞϯτ 41"ωΠςΟϒΞϓϦ ͱίϯϑΟσϯγϧΫϥ ΠΞϯτ྆ํʹରԠ͍ͯ͠Δ w ΞΫηετʔΫϯΛऔಘ͢ΔաఔͰɺΫϥΠΞϯτʹରͯ͠ϦιʔεΦʔφʔ ʹΑΔಉҙ͕ඞཁ
1,$&ͬͯͳʹ w ೝՄίʔυԣऔΓ߈ܸͷରࡦͱͯ͠ఏҊ͞Ε༷ͨɻ w 0"VUIͰਪ͞Ε͍͕ͯͨɺ0"VUIͰඞਢʹͳΔ
ೝՄίʔυ 1,$& w ύϒϦοΫΫϥΠΞϯτ 41"ωΠςΟϒΞϓϦ ͱίϯϑΟσϯγϧΫϥ ΠΞϯτ྆ํʹରԠ͍ͯ͠Δ w ΞΫηετʔΫϯΛऔಘ͢ΔաఔͰɺΫϥΠΞϯτʹରͯ͠ϦιʔεΦʔφʔ ʹΑΔಉҙ͕ඞཁ
ೝՄίʔυ 1,$&
ೝՄίʔυ 1,$& ϦιʔεαʔόʔͷϦιʔεʹ ରͯ͠ૢ࡞
ೝՄίʔυ 1,$& ೝՄαʔόʔʹରͯ͠ΞΫηε ݖΛཁٻ
ೝՄίʔυ 1,$& ϦιʔεͷΞΫηεݖΛΫϥΠΞϯτ ʹҕৡ͢Δ͜ͱͷಉҙ֬ೝ *%ύεϫʔυΫϥΠΞ ϯτΛհ͞ͳ͍
ೝՄίʔυ 1,$& ݖݶΛҕৡ͢Δ͜ͱʹಉҙ
ೝՄίʔυ 1,$& ϦμΠϨΫτͤͯ͞ɺ ೝՄίʔυΛฦ͢ URI_SCHEME://callback? code=xxxx
ೝՄίʔυ 1,$& τʔΫϯϦΫΤετ
ೝՄίʔυ 1,$& ΞΫηετʔΫϯɺϦϑϨογϡτʔ ΫϯΛฦ͢
ೝՄίʔυ 1,$& ΞΫηετʔΫϯΛͬͯϦιʔε αʔόʔʹରͯ͠ಛఆͷૢ࡞Λߦ͏
ೝՄίʔυ 1,$& Ϧιʔεαʔ όʔΞΫηετʔΫϯͷ༗ޮੑͱ ඥͮ͘ݖݶΛ֬ೝ͠ɺͳ͚ΕϨ εϙϯεΛฦ͢
1,$&ͬͯͳʹ w ೝՄίʔυԣऔΓ߈ܸͷରࡦͱͯ͠ఏҊ͞Ε༷ͨɻ w 0"VUIͰਪ͞Ε͍͕ͯͨɺ0"VUIͰඞਢʹͳΔ 1,$&Ͳ͜Ͱग़ͯ͘Δͷ🤔
ೝՄίʔυԣऔΓ߈ܸ
ѱҙ͋ΔΞϓϦ͕ಉ͡ 63*εΩʔϚͰىಈ͞Εͯ͠·͏ URI_SCHEME://callback?code=xxxx ೝՄίʔυԣऔΓ߈ܸ
ѱҙ͋ΔΞϓϦ͕τʔΫϯΛऔಘͰ͖Δ ೝՄίʔυԣऔΓ߈ܸ
1,$&͕͋Δͱʜ
ϦΫΤετݩ͕ೝՄίʔυϦΫΤετΛ ૹ͖ͬͯͨΫϥΠΞϯτͱಉҰͰ͋Δ͜ͱΛݕূ ͢Δ ೝՄίʔυԣऔΓ߈ܸ
ݕূ͕ࣦഊͨ͠߹ΞΫηετʔΫϯΛ ฦ͞ͳ͍ ೝՄίʔυԣऔΓ߈ܸ ✋
0"VUIY w ΫϥΠΞϯτ αʔυύʔςΟͷΞϓϦέʔγϣϯ ͕ϦιʔεΦʔφʔͷΫϨ σϯγϟϧΛ͏ΘΓʹΞΫηεݖݶҕৡ༻ΫϨσϯγϟϧ ΞΫηετʔ Ϋϯ Λ༻ͯ͠ɺอޢ͞ΕͨϦιʔεʹΞΫηε͢Δ w
0"VUIYͰΞΫηετʔΫϯΛ҆શʹΫϥΠΞϯτʹൃߦ͢ΔΈ͕ ඪ४Խ͞Ε͍ͯΔ
͜͜·Ͱ͕ɺ0"VUIYͷ
0QFO*%$POOFDU 0QFO*%$POOFDU 0"VUIϓϩτίϧͷ্ʹγϯϓϧͳΞΠσϯς ΟςΟϨΠϠʔΛ༩ͨ͠ͷͰ͋Δ IUUQTPQFOJEGPVOEBUJPOKBQBOHJUIVCJPPQFOJEDPOOFDUDPSF@KBIUNM
0QFO*%$POOFDU w 0"VUIͱಉ༷ͷϑϩʔ͕ఆٛ͞Ε͍ͯΔ ͜͜Ͱɺ0"VUIʹ߹Θ ͤΔ w ೝՄίʔυ 1,$&
w ΫϥΠΞϯτΫϨσϯγϟϧˡ*%BB4ʹΑ࣮ͬͯ͞Ε͍ͯΔ͕ ʮ0QFO*%$POOFDU$PSFJODPSQPSBUJOHFSSBUBTFUʯʹͳͦ͞ ͏ IUUQTPQFOJEGPVOEBUJPOKBQBOHJUIVCJPPQFOJEDPOOFDUDPSF@KBIUNM
جຊతʹ0"VUIYͱมΘΒͳ͍
ΤϯυϢʔβʔ ϦιʔεΦʔφʔ ϦϥΠϯάύʔςΟʔ ΫϥΠΞϯτ *%ϓϩόΠμ ೝՄαʔόʔ ϢʔβʔϓϩϑΟʔϧ"1* Ϧιʔεαʔόʔ ᶄ ᶅ
ᶆ ᶇ ᶈ ᶉ ᶃ 0QFO*%$POOFDU
ΤϯυϢʔβʔ ϦιʔεΦʔφʔ ϦϥΠϯάύʔςΟʔ ΫϥΠΞϯτ *%ϓϩόΠμ ೝՄαʔόʔ ϢʔβʔϓϩϑΟʔϧ"1* Ϧιʔεαʔόʔ ᶄ ᶅ
ᶆ ᶇ ᶈ ᶉ ᶃ 0QFO*%$POOFDU ΞΫηετʔΫɾϦϑϨογϡτʔΫϯ ʴ *%τʔΫϯ
ೝՄίʔυϑϩʔ ΞΫηετʔΫɾϦϑϨογϡτʔΫϯ ʴ *%τʔΫϯ
*%τʔΫϯ "id_token": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjFlOWdkazcifQ.ewogImlzc yI6ICJodHRwOi8vc2VydmVyLmV4YW1wbGUuY29tIiwKICJzdWIiOiAiMjQ4Mjg5 NzYxMDAxIiwKICJhdWQiOiAiczZCaGRSa3F0MyIsCiAibm9uY2UiOiAibi0wUzZ fV3pBMk1qIiwKICJleHAiOiAxMzExMjgxOTcwLAogImlhdCI6IDEzMTEyODA5Nz AKfQ.ggW8hZ1EuVLuxNuuIJKX_V8a_OMXzR0EHR9R6jgdqrOOF4daGU96Sr_P6q Jp6IcmD3HP99Obi1PRs-cwh3LO-p146waJ8IhehcwL7F09JdijmBqkvPeB2T9CJ NqeGpe-gccMg4vfKjkM8FcGvnzZUN4_KSP0aAp1tOJ1zZwgjxqGByKHiOtX7Tpd QyHE5lcMiKPXfEIQILVq0pc_E2DzL7emopWoaoZTF_m0_N0YzFC6g6EJbOEoRoS
K5hoDalrcvRYLSrQAZZKflyuVCyixEoV9GfNQC3_osjzw2PAithfubEEBLuVVk4 XUVrWOLrLl0nx7RkKU8NXNHq-rvKMzqg" w ϔομʔ w ϖΠϩʔυ w ॺ໊
*%τʔΫϯ
*%τʔΫϯΛͬͯϦϥΠϯάύʔςΟʔ͕ ϢʔβʔೝূͰ͖ΔΈ w ΤϯυϢʔβʔˡˠ*%ϓϩόΠμͰ*%18ͳͲΛͬͯຊਓ֬ೝ͕͞ ΕΔɻ *%ϓϩόΠμʹϩάΠϯࡁΈͰ͋Ε͜ͷखॱεΩοϓ͞ΕΔ߹ ͋Δ w *%τʔΫϯ͕ੜ͞ΕɺϦϥΠϯάύʔςΟʔʹൃߦ͞ΕΔ
w *%τʔΫϯʹॺؚ໊͕·Ε͍ͯΔͷͰɺϦϥΠϯάύʔςΟʔड͚औͬ ͨ*%τʔΫϯ͕ຊ͔Ͳ͏͔ վ᜵͞Ε͍ͯͳ͍͔ ͔֬ΊΒΔ w ϦϥΠϯάύʔςΟʔ*%τʔΫϯ͕*%ϓϩόΠμΛ௨ͯ͠ΤϯυϢʔβ ʔͷͷͰ͋Δͱ৴པ͢Δ͜ͱ͕Ͱ͖Δ
0QFO*%$POOFDU w 0"VUIYͰఆٛ͞Ε͍ͯΔΞΫηετʔΫϯΛൃߦ͢ΔΈʹ*%τʔΫ ϯ͕Ճ͞Εͨ w ൃߦ͞Εͨ*%τʔΫϯɺϦϥΠϯάύʔςΟʔ ΫϥΠΞϯτ ͕ݕূՄೳ ͰɺΤϯυϢʔβʔͷͷͰ͋Δͱ৴པͰ͖Δ