Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

[Feature] OIDC SSO 支持可选的身份提供方联合登出

オープン
#358 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
48/100
issue の種類
機能追加
明瞭さ
おおむね明確
活発さ
活発
技術スタック
go

調査の方向性

Start by tracing DELETE /api/v1/sessions and the OIDC discovery flow that obtains end_session_endpoint; the issue names these entry points but no source files or tests. Check how local logout clears the session and cookie, then identify where an optional setting can route the browser through the provider logout endpoint. Done means the setting defaults off, local logout still succeeds when provider logout is unavailable, and enabled behavior can be verified with an OIDC provider.

索引モデルが issue の本文から書いたものです。

説明

请描述您的需求或者改进建议.

KubePi v2.0.3 使用 OpenID Connect 登录时,点击页面上的“退出”仅清除 KubePi 本地会话,没有触发 OIDC 身份提供方(IdP)的登出。若浏览器在 IdP 侧仍有会话,用户再次点击 SSO 登录会立即返回 KubePi,无需重新认证。这在共用浏览器或期望“退出后不能无感重新登录”的场景中容易造成误解。

复现步骤:

  1. 配置支持 OIDC Discovery 和 end_session_endpoint 的 IdP(例如 Casdoor),通过 SSO 登录 KubePi。
  2. 在 KubePi 点击“退出”。
  3. 再次点击 SSO 登录;由于 IdP 会话仍在,浏览器会直接完成授权并重新进入 KubePi。

目前 DELETE /api/v1/sessions 只清除本地 session 中的 profile,前端退出后刷新页面;OIDC 流程没有使用 Discovery 中的 end_session_endpoint。

建议的通用做法

  • 增加“退出时同时退出 OIDC 身份提供方”的可选配置,默认保持现有行为以兼容已有部署。
  • 开启时先销毁 KubePi 本地会话并清理会话 Cookie,再通过浏览器跳转到 IdP 的 end_session_endpoint,按 IdP 支持情况传递 client_id、已登记的 post_logout_redirect_uri,必要时传递 id_token_hint。回跳地址应固定或严格校验,避免开放重定向。
  • 不要把 access token、refresh token 或 client secret 放入浏览器 URL 或日志。若 IdP 未提供登出端点或调用失败,KubePi 本地退出仍应成功,并清楚提示 IdP 会话可能仍在。
  • 本地账号的退出保持原有行为。Token 撤销以及 IdP 主动发起的 back-channel logout 属于不同能力,可另行设计,不应把它们与浏览器端联合登出混为一谈。

期望可用 Casdoor/Keycloak 这类 IdP 验证:开启联合登出后,退出 KubePi 会同时结束当前 IdP 浏览器会话,再次进入 SSO 需要重新认证;关闭该选项时维持现有行为。

主要言語
Go
スター
3k
フォーク
375
PR マージ指標
30日以内にマージされた PR はありません

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

1Panel-dev/KubePi のほかの issue

1Panel-dev/KubePi の issue をすべて見る

似ている issue

Go の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。