TencentBlueKing / bk-user

蓝鲸用户管理是蓝鲸智云提供的企业组织架构和用户管理解决方案,为企业统一登录提供认证源服务。
MIT License
59 stars 66 forks source link

登录支持 Logout #1560

Open nannan00 opened 7 months ago

nannan00 commented 7 months ago

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

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

nannan00 commented 6 months ago

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

目前存在的问题:


  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 commented 6 months ago

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

wklken commented 6 months ago

LGTM

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

narasux commented 6 months ago

LGTM

nannan00 commented 6 months ago

LGTM

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

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

nannan00 commented 4 months ago

注销安全注意项: