请教大佬们,微服务中多系统统一权限怎么设计 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
rapperx2
V2EX    Java

请教大佬们,微服务中多系统统一权限怎么设计

  •  
  •   rapperx2 Sep 17, 2021 4332 views
    This topic created in 1683 days ago, the information mentioned may be changed or developed.
    之前全部是单体应用,现在想改成微服务架构了。

    比如现在有 ERP,MES,OMS 这几个系统需要整合,但是每个系统权限控制都不一样,有的可能需要需要分企业账号和个人账号,权限分配给企业管理,每个企业有自己的权限控制。有的系统就只需要一个系统管理员做所有控制。

    之前都是自己的系统负责自己的权限控制,现在想做统一权限没经验,所以想请教下大佬们都是怎么做的。
    14 replies    2021-09-18 12:41:53 +08:00
    leon0318
        1
    leon0318  
       Sep 17, 2021 via iPhone
    这个是强业务相关,没人能给你答案啊……除非梳理出一张大而全的现有权限列表
    qwerthhusn
        2
    qwerthhusn  
       Sep 17, 2021
    在网关弄一个 RBAC 权限模型

    用户的请求经过网关的时候,根据 URL 直接判断用户有没有权限
    nong99
        3
    nong99  
       Sep 17, 2021 via Android
    最近也想自己折腾下,不过是侧重实验微前端的。请问您们这边有使用到微前端吗?有什么推荐方案吗?谢谢哈(个人实验玩,没有上过真实项目)
    JamChiu
        4
    JamChiu  
       Sep 17, 2021
    账号 1:N 子系统 1:N 角色 1:N 权限

    这样应该就可以了,多一层子系统而已
    thtznet
        5
    thtznet  
       Sep 17, 2021   2
    ERP 、MES 、OMS,你这个不像微服务,最多可以拆成 SOA 吧。微服务不是应该打碎所有系统模块,将每个服务独立出来,我的理解是,例如 [基础数据-物料] 应该是一个独立服务,ERP 模块、MES 模块、OMS 模块都可以访问这个服务,同样的,模块的组织形式就不在后端了,而是由前端根据业务形态组织起来,在后端看上去,就没有什么 ERP 模块、MES 模块的组织形式了。
    litchinn
        6
    litchinn  
       Sep 17, 2021
    目前从你的描述来看感觉就是个普遍的权限控制,通过组织机构可以控制数据权限,比如企业和个人,通过角色可以控制用户对各个模块和方法的访问
    masterclock
        7
    masterclock  
       Sep 17, 2021
    nicholasxuu
        8
    nicholasxuu  
       Sep 17, 2021
    k8s+envoy 的话,envoy 的 ext_authz 可以提供统一鉴权的功能,比如通过 rpc 服务,把 jwt token 解密后,把用户权限信息放到 header 里给服务使用。
    https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/filters/http/ext_authz/v3/ext_authz.proto
    nicholasxuu
        9
    nicholasxuu  
       Sep 17, 2021
    不然就是在微服务的共享框架代码里,添加调用鉴权服务的中间件。让每个微服务都可以方便的使用。
    MasterMonkey
        10
    MasterMonkey  
       Sep 17, 2021
    OAUTH2/OIDC/API Manager 了解下? 我最近也在了解这个
    swcat
        11
    swcat  
       Sep 17, 2021
    user role user_role permission
    其他的就是在这个基础上扩展

    使用的话, 最终形态就是 user->can()

    然后权限控制可以写在 nginx 那一层, 有权限的放, 没权限的禁止, 再细致的数据权限, 需要在代码里面处理
    initdada
        12
    initdada  
       Sep 17, 2021
    SAAS,单独做个统一管理授权系统,然后下发子系统权限就好了
    kiddingU
        13
    kiddingU  
       Sep 17, 2021
    网关入口做鉴权呗,微服务只做具体业务
    liian2019
        14
    liian2019  
       Sep 18, 2021
    搞一个授权网关
    About     Help     Advertise     Blog     API     FAQ     Solana     5029 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 73ms UTC 09:49 PVG 17:49 LAX 02:49 JFK 05:49
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86