$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
OpenID Connect から学ぶ認証・認可
Search
kumico
June 07, 2025
Technology
0
20
OpenID Connect から学ぶ認証・認可
社内 LT で発表した内容に加筆・改訂したスライド
kumico
June 07, 2025
Tweet
Share
More Decks by kumico
See All by kumico
インタラクティブシェルのカスタマイズを楽しもう
devoc
0
180
Grafana Cloudとソラカメ
devoc
0
320
モダンターミナルエミュレータは画像を表示できるらしい
devoc
1
27
アプリケーションパフォーマンスの計測と改善の方法を勉強している話
devoc
11
3.4k
Other Decks in Technology
See All in Technology
Connection-based OAuthから学ぶOAuth for AI Agents
flatt_security
0
350
さくらのクラウド開発ふりかえり2025
kazeburo
2
850
AWSインフルエンサーへの道 / load of AWS Influencer
whisaiyo
0
210
AI駆動開発の実践とその未来
eltociear
1
480
障害対応訓練、その前に
coconala_engineer
0
190
Identity Management for Agentic AI 解説
fujie
0
450
"人"が頑張るAI駆動開発
yokomachi
1
120
Strands Agents × インタリーブ思考 で変わるAIエージェント設計 / Strands Agents x Interleaved Thinking AI Agents
takanorig
4
1.9k
[Data & AI Summit '25 Fall] AIでデータ活用を進化させる!Google Cloudで作るデータ活用の未来
kirimaru
0
3.6k
通勤手当申請チェックエージェント開発のリアル
whisaiyo
3
440
ActiveJobUpdates
igaiga
1
310
意外と知らない状態遷移テストの世界
nihonbuson
PRO
1
230
Featured
See All Featured
Test your architecture with Archunit
thirion
1
2.1k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
0
250
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
400
Being A Developer After 40
akosma
91
590k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
50
42k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Balancing Empowerment & Direction
lara
5
820
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
0
88
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
3.4k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
71
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
27
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 ൃߦ͞Εͨ*%τʔΫϯɺϦϥΠϯάύʔςΟʔ ΫϥΠΞϯτ ͕ݕূՄೳ ͰɺΤϯυϢʔβʔͷͷͰ͋Δͱ৴པͰ͖Δ