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

优化通过URL访问资源时的权限验证 #6048

Open
ecoli666 opened this issue Sep 18, 2022 · 2 comments
Open

优化通过URL访问资源时的权限验证 #6048

ecoli666 opened this issue Sep 18, 2022 · 2 comments
Assignees
Milestone

Comments

@ecoli666
Copy link
Collaborator

ecoli666 commented Sep 18, 2022

问题

用户接收到他人复制的资源链接,直接通过URL访问标准运维对应的资源,如流程、任务记录等。此时用户还未拥有资源的访问权限,但平台仅告知用户去申请【项目查看】权限,用户无法通过一次权限申请完成资源访问的目的

image

image

优化

优化鉴权模型,直接给权限中心传递资源id,并包含依赖权限。这样用户就不用分多次才能申请到权限

@ecoli666 ecoli666 added this to the Code Hawk milestone Sep 18, 2022
@ecoli666 ecoli666 changed the title 优化直接访问资源链接时的权限验证 优化通过URL访问资源时的权限验证 Sep 18, 2022
@normal-wls normal-wls self-assigned this Sep 23, 2022
@normal-wls
Copy link
Member

方案

  1. 目前的实现:
    1. 前端在访问任务详情页面时,会先尝试查看project权限,如果没有项目权限,则优先请求项目权限
    2. 后端项目权限&任务查看权限两个action的鉴权和校验逻辑分开,前端请求的哪个权限,就会返回对应权限的499和申请链接
  2. 处理方案:
    1. 前端在请求任务详情时直接请求对应的接口,以对应接口的返回为主,不做提前的拦截。校验优先级为 请求资源权限 → 请求资源依赖资源权限
    2. 后端请求权限时,需要支持将 请求资源及其对应所需资源进行打包申请。
  3. 注意:
    1. 需要排查其他资源的访问上是否有类似情况:如流程、轻应用等

讨论

  1. 目前在获取权限中心申请链接时,如果只对请求资源动作进行传参,则权限中心不会进行关联申请,需要调用方在请求前自己将所有关联资源动作全部准备好一起传参。
    1. 对于某一个action的关联action,调用方在注册时会注册到权限中心。在申请动作时,关联的资源会一起发送到权限中心,所以理论上权限中心可以实现该场景下关联action的自动申请关联。需要评估这种做法的可行性。

@normal-wls normal-wls assigned hanshuaikang and unassigned normal-wls Oct 8, 2022
@hanshuaikang
Copy link
Collaborator

方案实现:

通过与权限中心进行沟通之后得出结论: 通过子权限申请的url跳转到权限中心不自动关联到上级权限是不合理的,后面权限中心会支持这一特性,通过[任务查看]的链接进入权限中心,会自动关联申请对应的[项目查看权限]

所以只需要在用户访问资源详情页之前,优先向后台确认用户是否有对应资源类型的查看权限,如果没有的话,直接引导用户申请对应的权限就好。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants