• 请不要在回答技术问题时复制粘贴 AI 生成的内容
wktrf
V2EX  ›  程序员

大佬们,鉴权所需的业务属性应该如何提供啊?

  •  
  •   wktrf · Jul 29, 2021 · 2936 views
    This topic created in 1934 days ago, the information mentioned may be changed or developed.

    比如说一个订单,只有 订单所有者 或者 具备相关管理角色 的人才能看。

    这个订单所有者只能在业务代码里面查出来再进行鉴权吗?

    12 replies  •  2021-07-30 11:58:09 +08:00
    meshell
    meshell
    Jul 29, 2021
    1
    你这个粒度有点小呀。能不能按订单分类,根据分类创建角色?
    securityCoding
    securityCoding
    Jul 29, 2021
    2
    不用
    有网关的话在网关层面做,没有网关就封装一个可配置的拦截器,不要在业务代码直接判断
    zoharSoul
    zoharSoul
    Jul 29, 2021
    3
    业务鉴权.
    网关不管这种
    BQsummer
    BQsummer
    Jul 29, 2021
    4
    网关不会管数据权限的。
    我们公司自己造轮子,做了个权限系统(介于 rbac 和 abac,资源是树状布局),接口权限和前端组件权限都能通过注解进行拦截(拦截器能获取到当前登录人和注解传的 key,做权限查询);数据权限就只能写代码里了。
    权限也不可能到订单这么细,还是要分类的。
    myCupOfTea
    myCupOfTea
    Jul 29, 2021
    5
    @securityCoding 他这个也太细力度了,网关做也太不方便了
    securityCoding
    securityCoding
    Jul 29, 2021
    6
    @myCupOfTea 具备相关管理角色的人才能看这种其实不算数据权限,完全可以在业务网关做。订单所有者这种算是数据权限必须在业务层做
    libook
    libook
    Jul 29, 2021
    7
    不了解具体什么需求,以前做类似的功能是在业务里判断,网关负责确定请求的人是谁,然后业务里用网关认证的身份信息来判断是否有权限。

    如果业务里涉及鉴权规则的地方也比较多,可以在业务层塞入一个鉴权层,可以把权限简单划分为公开、已登录用户、自己等类别,然后业务返回这个属于哪种鉴权类别,鉴权层再直接套用通用逻辑鉴权。
    securityCoding
    securityCoding
    Jul 29, 2021
    8
    @myCupOfTea 我个人的方案是在网关层会将登录态用户属性( id,商户 id,角色,部门等等)解析好放在上下文( http-header )让业务层直接获取,业务层基本上不用自己去查询
    xuanbg
    xuanbg
    Jul 29, 2021
    9
    列表的话,查询的时候注入条件。详情的话,读出数据后代码里面判断。
    zm8m93Q1e5otOC69
    zm8m93Q1e5otOC69
    Jul 29, 2021
    10
    这种你就要将角色对应的权限控制好,现有的框架可以做到按钮权限化
    realpg
    realpg
    Jul 30, 2021❤️1
    11
    不是针对楼主提到的问题
    针对 1 楼 5 楼说

    这个还细?
    难道你们做的系统 URL 里改一下订单号就能看别人订单?
    liuidetmks
    liuidetmks
    Jul 30, 2021
    12
    @realpg 这样是很常见的 Bug,给人提了,别人觉得你装逼,狗拿耗子。又不是不能跑,是吧
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1909 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 00:18 · PVG 08:18 · LAX 16:18 · JFK 19:18
    ♥ Do have faith in what you're doing.