Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

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

Abierto
#358 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
48/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
go

Línea de trabajo

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.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

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

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 需要重新认证;关闭该选项时维持现有行为。

Lenguaje dominante
Go
Estrellas
3k
Forks
375
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de 1Panel-dev/KubePi

Todos los issues de 1Panel-dev/KubePi

Issues similares

Más issues de Go

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.