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
19
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
200
RustでもVJしたい!
taiseiue
0
100
“⾞が通れるほど⼤きな”セキュリティーホールを抑えながらログインしたい
taiseiue
0
540
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
SREの越境 / SRE Collaboration
y0hgi
2
290
Heart of Swift Concurrency
koher
0
1.1k
TiDB Cloudのカスタムコントローラーによるオートスケール対応
takaidohigasi
0
140
コードレビューのボトルネックを"する側"と"される側"の両面から解消する
yub0n
2
1.4k
モデルのリファクタリングが難しいと思ったら、そもそも複雑だったのはビジネス仕様だった ? / is-the-business-domain-the-real-complexity
hatsu38
0
440
setup-vp GitLab対応の裏側
naokihaba
0
150
速習iPhone Duo対応
yuukiw00w
2
930
re:Inventに行く前に知っておきたい現地参加のノウハウ
nokomoro3
0
310
mrbgem 三角測量 開発
ogom
0
170
MVNOの申込からeSIM開通までをiOSアプリでつなぐ- 本人確認・MNP・通信事業者基盤をまたぐ実装
satotakeshi
0
520
カツオ、ご期待ください
suneo3476
0
140
WebRTC映像をAirPlayに対応させる挑戦.pdf
monolithic_adam
0
330
Featured
See All Featured
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.6k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Chasing Engaging Ingredients in Design
codingconduct
0
340
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.3k
Designing for Timeless Needs
cassininazir
1
510
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
720
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
My Coaching Mixtape
mlcsv
0
330
How to Ace a Technical Interview
jacobian
280
24k
Facilitating Awesome Meetings
lara
57
7.2k
brightonSEO & MeasureFest 2025 - Winning Strategies for Black Friday CRO & PPC - Christian Goodrich
cargoodrich
3
860
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