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

【免评审】禁用用户时支持同步中止用户登录态 #938

Open
neronkl opened this issue Mar 3, 2023 · 11 comments
Open

【免评审】禁用用户时支持同步中止用户登录态 #938

neronkl opened this issue Mar 3, 2023 · 11 comments
Assignees
Labels
approved 需求评审已经通过 canway 需求来源为嘉为侧

Comments

@neronkl
Copy link
Contributor

neronkl commented Mar 3, 2023

用文字描述你遇到的问题

某个用户进行登录后会签发token,但是管理员将该用户进行禁用,该用户仍能正常使用平台功能

重现方法
前置:打开两个页面,开启无痕模式

  1. 登录测试用户testerA
  2. 管理员禁用用户testerA
    image
  3. testerA所在页面仍能使用平台功能
    image

预期行为
异常状态用户无法使用平台功能,即设置异常状态后,该用户的token应该失效

版本

  • 2.5.1
  • 企业版问题

如果是 SaaS 页面问题,请提供使用的操作系统和浏览器信息

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

额外信息

任何你觉得有助于问题解决的内容

@pagezz-canway
Copy link

禁用用户常用在发现安全风险时,此时应该立刻刷新数据库中的token,确保用户不能进行任何操作。(如果后续能实现账号禁止多地登录和主动踢出,也是可行的方案)

@Xmandon
Copy link
Collaborator

Xmandon commented Mar 13, 2023

需要主动踢出某个在线用户

@wklken
Copy link
Collaborator

wklken commented Mar 13, 2023

需要注意: 用户可能签发了bk_token被第三方持有在做一些异步任务/脚本执行类任务, 此时回收后, 那些任务将直接失败

@Canway-shiisa Canway-shiisa modified the milestones: Y2023M11, Y2023M12, Y2023M13 Mar 20, 2023
@Canway-shiisa Canway-shiisa added the canway 需求来源为嘉为侧 label Mar 28, 2023
@Shutulee Shutulee modified the milestones: Y2023M13, Y2023M14 Apr 3, 2023
@Shutulee
Copy link
Collaborator

Shutulee commented Apr 4, 2023

image
1、管理员选择禁用某用户
->二次确认,告知管理员这次禁用的影响范围。
->提供两种禁用逻辑:

a、仅用并踢出。刷新用户的登录态token,禁用用户的同时,立即将用户踢出登录。(有风险)
b、仅禁用。仅将用户状态更改为禁用状态。不对用户登录态做处理,自动等待用户token24小时后失效(或2小时无操作,也会自动失效)。

@Shutulee Shutulee changed the title 禁用用户的token仍旧有效 【免评审】禁用用户的token仍旧有效 Apr 4, 2023
@Shutulee Shutulee added the backlog 需求初始状态,等待产品进行评估 label Apr 4, 2023
@Shutulee Shutulee changed the title 【免评审】禁用用户的token仍旧有效 【免评审】禁用用户时支持同步中止用户登录态 Apr 4, 2023
@Xmandon
Copy link
Collaborator

Xmandon commented Apr 4, 2023

image 1、管理员选择禁用某用户 ->二次确认,告知管理员这次禁用的影响范围。 ->提供两种禁用逻辑: a、立即生效。刷新用户的登录态token,禁用用户的同时,立即将用户踢出登录。(有风险) b、仅禁用。仅将用户状态更改为禁用状态。不对用户登录态做处理,自动等待用户token24小时后失效(或2小时无操作,也会自动失效)。

文案直接点:禁用并踢出、仅禁用

@Xmandon Xmandon added for approve 产品经理评估ok并对需求进行了细化, 等待评审 and removed backlog 需求初始状态,等待产品进行评估 labels Apr 6, 2023
@Xmandon Xmandon assigned EchoQT and unassigned Xmandon Apr 6, 2023
@EchoQT
Copy link
Collaborator

EchoQT commented Apr 6, 2023

禁用某账号却不马上踢出的合理性在哪里?对于一个已经被非法的账号,为何还可以在各系统中正常使用n个小时?

@EchoQT EchoQT assigned Xmandon and unassigned EchoQT Apr 6, 2023
@Canway-shiisa Canway-shiisa modified the milestones: Y2023M14, Y2023M15 Apr 10, 2023
@Canway-shiisa
Copy link
Contributor

采用<禁用并踢出>的方案、<仅禁用>方案废弃

@Shutulee
Copy link
Collaborator

Shutulee commented Apr 13, 2023

1、管理员选择禁用某用户
->二次确认,告知管理员这次禁用的影响范围。
->提供两种禁用逻辑:
a、仅用并踢出。刷新用户的登录态token,禁用用户的同时,立即将用户踢出登录。(有风险)
b、仅禁用。仅将用户状态更改为禁用状态。不对用户登录态做处理,自动等待用户token24小时后失效(或2小时无操作,也会自动失效)。

image
更改后方案:
1、禁用直接踢出登录,不考虑仅禁用的情况。

@Shutulee Shutulee assigned EchoQT and unassigned Xmandon Apr 13, 2023
@Canway-shiisa Canway-shiisa removed this from the Y2023M15 milestone Apr 14, 2023
@EchoQT
Copy link
Collaborator

EchoQT commented Apr 14, 2023

ok

@EchoQT EchoQT assigned Xmandon and Shutulee and unassigned EchoQT Apr 14, 2023
@EchoQT EchoQT added approved 需求评审已经通过 and removed for approve 产品经理评估ok并对需求进行了细化, 等待评审 labels Apr 14, 2023
@Canway-shiisa Canway-shiisa self-assigned this Apr 25, 2023
@Xmandon Xmandon added this to the Y2023M19 milestone May 8, 2023
@Canway-shiisa
Copy link
Contributor

方案:
bklogin登录模块增加一个注销指定用户token的接口,在用户管理对用户进行禁用时增加该注销接口的调用
细节:

  1. bklogin-api模块下增加接口和逻辑:accounts/logout
  2. 由于超管在用户管理侧禁用用户时需要做的非踢出自己的token,而是对应用户的token,通过用户名直接反查token困难,这里选择在login_bktoken增加用户名标识(同时调整生成token的逻辑 新增一个用户名写入)

@Canway-shiisa Canway-shiisa modified the milestones: Y2023M19, Y2023M20 May 15, 2023
@nannan00
Copy link
Collaborator

方案: bklogin登录模块增加一个注销指定用户token的接口,在用户管理对用户进行禁用时增加该注销接口的调用 细节:

  1. bklogin-api模块下增加接口和逻辑:accounts/logout
  2. 由于超管在用户管理侧禁用用户时需要做的非踢出自己的token,而是对应用户的token,通过用户名直接反查token困难,这里选择在login_bktoken增加用户名标识(同时调整生成token的逻辑 新增一个用户名写入)

表里增加了用户名标识会导致信息泄露,降低了安全性,非必要不可使用该方式,建议调研一下是否有其他方案

@nannan00 nannan00 modified the milestones: Y2023M20, Y2023M21 May 22, 2023
@Canway-shiisa Canway-shiisa removed this from the Y2023M21 milestone May 29, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved 需求评审已经通过 canway 需求来源为嘉为侧
Projects
None yet
Development

No branches or pull requests

8 participants