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
0
15
OpenID Connect から学ぶ認証・認可
社内 LT で発表した内容に加筆・改訂したスライド
kumico
June 07, 2025
Tweet
Share
More Decks by kumico
See All by kumico
Grafana Cloudとソラカメ
devoc
0
280
モダンターミナルエミュレータは画像を表示できるらしい
devoc
1
21
アプリケーションパフォーマンスの計測と改善の方法を勉強している話
devoc
11
3.3k
Other Decks in Technology
See All in Technology
あとはAIに任せて人間は自由に生きる
kentaro
3
1k
新卒(ほぼ)専業Kagglerという選択肢
nocchi1
1
1.8k
ウォンテッドリーのアラート設計と Datadog 移行での知見
donkomura
0
270
モダンな現場と従来型の組織——そこに生じる "不整合" を解消してこそチームがパフォーマンスを発揮できる / Team-oriented Organization Design 20250825
mtx2s
3
350
Amazon Inspector コードセキュリティで手軽に実現するシフトレフト
maimyyym
0
150
いま、あらためて考えてみるアカウント管理 with IaC / Account management with IaC
kohbis
2
580
MySQL HeatWave:サービス概要のご紹介
oracle4engineer
PRO
4
1.6k
意志の力が9割。アニメから学ぶAI時代のこれから。
endohizumi
1
110
Engineering Failure-Resilient Systems
infraplumber0
0
130
LLM時代の検索とコンテキストエンジニアリング
shibuiwilliam
2
1.1k
Observability for LLM Application lifecycle
ivry_presentationmaterials
1
210
RAID6 を楔形文字で組んで現代人を怖がらせましょう(実装編)
mimifuwa
0
260
Featured
See All Featured
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Designing Experiences People Love
moore
142
24k
RailsConf 2023
tenderlove
30
1.2k
Rails Girls Zürich Keynote
gr2m
95
14k
Optimizing for Happiness
mojombo
379
70k
jQuery: Nuts, Bolts and Bling
dougneiner
64
7.9k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
The Straight Up "How To Draw Better" Workshop
denniskardys
236
140k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.4k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
Building a Modern Day E-commerce SEO Strategy
aleyda
43
7.5k
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 ൃߦ͞Εͨ*%τʔΫϯɺϦϥΠϯάύʔςΟʔ ΫϥΠΞϯτ ͕ݕূՄೳ ͰɺΤϯυϢʔβʔͷͷͰ͋Δͱ৴པͰ͖Δ