Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
自サークルのIdPからログアウトできるようになるまで
Search
taiseiue
October 05, 2026
Programming
110
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
自サークルのIdPからログアウトできるようになるまで
Kyoto.js 25
で発表した資料です
taiseiue
October 05, 2026
More Decks by taiseiue
See All by taiseiue
同人サークルを作って 8年経った僕らの現在地
taiseiue
0
250
RustでもVJしたい!
taiseiue
0
110
“⾞が通れるほど⼤きな”セキュリティーホールを抑えながらログインしたい
taiseiue
0
550
Kotlinのデフォルト引数の話
taiseiue
0
120
.NETの上でお手製の言語を動かす技術
taiseiue
0
120
AIの力でお手軽Chrome拡張機能作り
taiseiue
0
490
振り向き美人
taiseiue
0
41
Tadpole operators
taiseiue
0
92
(自作の)プログラミング言語ができるまで
taiseiue
1
690
Other Decks in Programming
See All in Programming
Simple Storage Service(S3) is not simple
iwatsukayura
0
210
難しいけど、読めた。- OSSの入口に立った話。
sts11142
0
140
Everything will be SERVERLESS — 信じて運用した10年の経験値 / Everything Will be Serverless — Lessons Learned from 10 Years of Operational Experience
seike460
PRO
1
760
UnityでSystem.Net.WebSocketsなWebSocketサーバが動かないのでUnity Monoのコードを覗いてみた / about implementing websocket server with unity mono
drumath2237
1
550
Heart of Swift Concurrency
koher
0
1.2k
APNsからLive Activityを開始する話
yumnumm
0
150
Jetpack Compose Mechanisms
skydoves
2
470
パーソナライズPodcastを作った話
repunit11
0
120
速習iPhone Duo対応
yuukiw00w
2
960
AI が書く Go コードの品質を劇的に向上させる Linter: “declscope”
mpyw
0
480
更なる可用性を求めて、5年間運用したKotlinのアプリケーションをGoでリプレイスする話
ken_tunc
0
450
モジュールの視点からSwiftを読み解く #iosdc
s_shimotori
0
350
Featured
See All Featured
Darren the Foodie - Storyboard
khoart
PRO
4
4k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
69
66k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.9k
The Pragmatic Product Professional
lauravandoore
37
7.5k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
760
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
420
Measuring & Analyzing Core Web Vitals
bluesmoon
9
1k
[SF Ruby Conf 2025] Rails X
palkan
3
1.4k
The Curse of the Amulet
leimatthew05
3
15k
Amusing Abliteration
ianozsvald
1
330
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Context Engineering - Making Every Token Count
addyosmani
9
1.2k
Transcript
自サークルのIdPから ログアウトできるようになるまで taiseiue 2026/10/5 Kyoto.js #25
JavaScript
https://www.nicovideo.jp/watch/sm1122515
https://dic.pixiv.net/a/ブラクラ
window.self • 上村太成 a.k.a. taiseiue • Kyoto.cs / CKP学生部 •
趣味: TS / Go / C# でない: TS / Go / Perl • 京都産業大学 / はてな マネーフォワード
前半の話 自サークルのIdPから ログアウトできるようになるまで 後半の話 taiseiue 今日はあんまりしない話 2026/10/5 Kyoto.js #25
None
None
None
None
None
None
自サークルのIdPから ログアウトできるようになるまで taiseiue 2026/10/5 Kyoto.js #25
https://speakerdeck.com/taiseiue/discord-oidc-proxy
https://speakerdeck.com/taiseiue/discord-oidc-proxy
https://speakerdeck.com/taiseiue/discord-oidc-proxy
https://speakerdeck.com/taiseiue/discord-oidc-proxy
一見さんもログインしてもらいたい
ロールベースのアクセス制御もしたい
fl Cloud areを挟めないサービスもある
オレオレアカウントを作る
オレオレアカウントを作る ↑たぶんやらない方がいい選択↑
None
None
None
None
😭
世間では最近ory stackが人気 https://www.ory.com/
世間では最近ory stackが人気 https://www.ory.com/
ory stackのいいところ • セルフホストできる • コンポーネントに分かれていて、 それぞれHeadlessなのでカスタムしやすい
https://www.ory.sh/docs/ecosystem/projects
アプリケーションはログインすると き、はじめory/hydraに遷移する
アプリケーションはログインすると き、はじめory/hydraに遷移する アプリケーションから見ると ory/hydraがOpenID Providerに見えている
ory/hydraは誰がログインしているか 知らないのでory/kratosに 遷移させログインさせる
ory/hydraは誰がログインしているか 知らないのでory/kratosに 遷移させログインさせる ユーザーはここでory/kratosにログインする
ory/kratosから受け取った情報を元に アプリケーションにユーザー情報を返す ここでory/hydraはユーザーに情報を渡していいかの fl 許可取り(consent ow)も行っている
かっこいい!うちもこれで!!
でももうユーザーアカウントちょっとある
😭
ory/hydraは誰がログインしているか 知らないのでory/kratosに 遷移させログインさせる ユーザーはここでory/kratosにログインする https://www.ory.sh/docs/ecosystem/projects
ory/hydraは誰がログインしているか 知らないのでory/kratosに 遷移させログインさせる ユーザーはここでory/kratosにログインする https://www.ory.sh/docs/ecosystem/projects
ory/hydraは誰がログインしているか 知らないのでAuth0に 遷移させログインさせる ユーザーはここでAuth0にログインする https://www.ory.sh/docs/ecosystem/projects
そんなこんなでできました
None
クライアント アプリケーション RP=Relying Party
OP=OpenID Provider クライアント アプリケーション RP=Relying Party
クライアント アプリケーション アカウント設定画面 Next.js製
クライアント アプリケーション アカウント設定画面 Next.js製 スタッフ側管理画面 TanStack製
Auth0のIDからAccountDBを引いてアカウント情報をhydraに渡す Go製 クライアント アプリケーション アカウント設定画面 Next.js製 ユーザーのプロフィールなどは Auth0ではなくこっちに保存 スタッフ側管理画面 TanStack製
None
自サークルのIdPから ログアウトできるようになるまで taiseiue 2026/10/5 Kyoto.js #25
ログアウトって何する処理でしょう?
CookieとかSession消したらよさそう
None
None
None
None
ここに残ったセッション情報で ログインし続けられてしまう
https://openid.net/specs/openid-connect-rpinitiated-1̲0.html
None
アプリケーションがログアウトする ときにOPのセッションを失効させる
アプリケーションがログアウトする ときにOPのセッションを失効させる
None
None
None
まだログインしたまま
https://www.ory.com/docs/hydra/guides/logout
None
hydraはログアウトしてよいかユーザーに尋ねるので、 これを利用してapps/coreがAuth0からもログアウトさせる
hydraはログアウトしてよいかユーザーに尋ねるので、 これを利用してapps/coreがAuth0からもログアウトさせる
ここはstate-lessだよ
ここはstate-lessだよ
ここはstate-lessだよ
ここはstate-lessだよ
ログアウト成功 ここはstate-lessだよ
アレ... ログアウト成功 ここはstate-lessだよ
他のアプリケーションからも ログアウトされていてほしい ログアウト成功 ここはstate-lessだよ アレ...
https://openid.net/specs/openid-connect-backchannel-1̲0.html
hydraがログアウト時に他のアプリケーションに back-channel logoutして周る ここはstate-lessだよ
None
ここはstate-lessだよ
ログアウト成功! ここはstate-lessだよ
わかったこと • 認証認可の不具合はコンポーネント単体よりも 境界面で起きる • 認証認可を設計するとき、どこに状態があるか を最初に洗い出すと良い
自サークルのIdPから ログアウトできるようになるまで taiseiue 2026/10/5 Kyoto.js #25
時間余ったとき用
None
None