Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

登录支持 Logout #1560

Open
nannan00 opened this issue Feb 19, 2024 · 6 comments
Open

登录支持 Logout #1560

nannan00 opened this issue Feb 19, 2024 · 6 comments
Assignees
Labels
tenant 多租户版本功能

Comments

@nannan00
Copy link
Collaborator

当前跳转到登录页面是不注销登录态 bk_token 的,如何支持跳转登录页时同时注销登录态

  • 支持Logout 参数

需要考虑对于直接跳转到第三方登录,如何支持配置注销第三方票据?

@nannan00 nannan00 added the tenant 多租户版本功能 label Feb 19, 2024
@nannan00 nannan00 added this to the Y2024M08 milestone Feb 19, 2024
@nannan00 nannan00 self-assigned this Feb 19, 2024
@nannan00 nannan00 modified the milestones: Y2024M08, Y2024M09 Feb 26, 2024
@nannan00
Copy link
Collaborator Author

nannan00 commented Mar 1, 2024

基于 SSO (单点登录)的支持

  • 【登录】任何跳转到登录 URL的请求,如果登录态有效,则应该立即重定向回业务页面
  • 【登出】任何跳转到登录注销 URL的请求,无论登录态是否有效,都需要进行登录态注销(包括第三方登录票据),然后重定向回登录 URL 让用户进行登录操作

目前存在的问题:

  • 【需要兼容 2.x 版本】跳转到登录 URL,
    • 【非自定义登录】无论登录态是否有效,登录态都自动注销,都让用户进行登录操作,
    • 【自定义登录】如果登录URL 带有 is_from_logout=1 的参数,则 is_from_logout 参数透传给第三方登录,由插件决定是否实现注销第三方登录的功能,是否注销 bk_token
  • 【3.x 版本】对于第三方登录,如何注销第三方登录票据(2.x 里未解决该问题)

  1. 如何在兼容2.x版本的情况下,支持 SSO

    • 对于 /login/ 和 /login/?is_from_logout = 1 保持 与 2.x 版本一致的逻辑
    • 新增 /login/signin/ ,用于 SSO 登录(即登录态有效则立即重定向回业务页面),新增 /login/signout/,用于登出,进行无条件注销蓝鲸登录票据和第三方登录票据
  2. 如何支持第三方登录注销登录态

    • 【第三方登录支持 SSO Logout】第三方登录基类除必须实现 build_login_uri、handle_callback 方法外,还需要额外实现 build_logout_uri方法
    • 【第三方登录不支持 SSO Logout】需要实现展示页面,用于展示 第三方主页URL,同时文字指引用户如何在第三方页面上进行注销后再回到蓝鲸登录页面刷新页面(比如github 不支持 SSO Logout,只能指引用户在Github主页进行手动注销后回到蓝鲸登录刷新)

@nannan00
Copy link
Collaborator Author

nannan00 commented Mar 1, 2024

记录 bk_token 产生的 认证源 ID,注销时才能进行第三方登录注销

@nannan00 nannan00 modified the milestones: Y2024M09, Y2024M10 Mar 4, 2024
@wklken
Copy link
Collaborator

wklken commented Mar 5, 2024

LGTM

/login/signin/ 这里的前缀是因为之前用的子路径导致的?统一登录未来考虑用子域名会好一些,不会那么别扭

@narasux
Copy link
Collaborator

narasux commented Mar 6, 2024

LGTM

@nannan00
Copy link
Collaborator Author

nannan00 commented Mar 6, 2024

LGTM

/login/signin/ 这里的前缀是因为之前用的子路径导致的?统一登录未来考虑用子域名会好一些,不会那么别扭

即使是子域名,也会带上前缀 /login/ ,这是需要兼容的

@nannan00 nannan00 modified the milestones: Y2024M10, Y2024M12 Mar 18, 2024
@nannan00
Copy link
Collaborator Author

nannan00 commented May 9, 2024

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
tenant 多租户版本功能
Projects
None yet
Development

No branches or pull requests

3 participants