[Feature] OIDC SSO 支持可选的身份提供方联合登出
まだ誰も着手していません。
評価
- 難易度
- 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,无需重新认证。这在共用浏览器或期望“退出后不能无感重新登录”的场景中容易造成误解。
复现步骤:
- 配置支持 OIDC Discovery 和
end_session_endpoint的 IdP(例如 Casdoor),通过 SSO 登录 KubePi。 - 在 KubePi 点击“退出”。
- 再次点击 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 はありません
環境構築
- Dockerfile または Docker Compose ファイルあり
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
1Panel-dev/KubePi のほかの issue
-
[Bug] 丢失节点端口対応中かも @wanghe-fit2cloud が 22 日前に担当しました。 オープン
1Panel-dev/KubePi#357 · 担当者 1 名 ·
-
[Bug]WEB的 BUG再び着手できるかも @wanghe-fit2cloud が 44 日前に担当しましたが、オープン中のプルリクエストはありません。 オープン
1Panel-dev/KubePi#356 · 担当者 1 名 ·
-
[Feature]深色和浅色主题同时需要再び着手できるかも @wanghe-fit2cloud が 44 日前に担当しましたが、オープン中のプルリクエストはありません。 オープン
1Panel-dev/KubePi#355 · 担当者 1 名 ·
1Panel-dev/KubePi の issue をすべて見る
似ている issue
-
triage/pending-triage
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
external-secrets/external-secrets#7117 ·
メンテナーはふだん 2 日以内に返信
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
ENTERPILOT/GoModel#1183 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
enhancement good first issue
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
Edwin-metcalf/MetCode#16 ·
-
Action Required: Fix Renovate Configuration対応中かも @thompson-tomo が今日担当しました。 オープン
難易度 1/5 1時間未満 初心者へのやさしさ 78/100
open-telemetry/opentelemetry-collector#16170 ·
メンテナーはふだん 1 日以内に返信
-
Buffer.writeRTX drops the RTCP returned by calc, so NACKs for other lost packets are never sentオープン
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
メンテナーはふだん 1 日以内に返信