Robust 第 016 期:设计一个权限系统

广告位招租
扫码页面底部二维码联系

【作者:唐霜】原创内容,盗版必究。

权限系统是应用开发中极为复杂的一个部分,【原创不易,请尊重版权】【访问 www.tangshuang.net 获取更多精彩内容】如何能够让权限系统在符合我们业务场景的需【原创内容,转载请注明出处】本文版权归作者所有,未经授权不得转载。要下,满足我们自定义配置权限的需要,同时原创内容,盗版必究。【原创内容,转载请注明出处】又在复杂场景下能够灵活的和业务系统对接上转载请注明出处:www.tangshuang.net原创内容,盗版必究。?本期 Robust 就来聊一聊权限系统【转载请注明来源】本文作者:唐霜,转载请注明出处。

【原创内容,转载请注明出处】【转载请注明来源】

【关注微信公众号:wwwtangshua【作者:唐霜】本文版权归作者所有,未经授权不得转载。ngnet】原创内容,盗版必究。

网易云音乐:点击播放

原创内容,盗版必究。本文作者:唐霜,转载请注明出处。【访问 www.tangshuang.n【版权所有,侵权必究】【版权所有】唐霜 www.tangshuang.netet 获取更多精彩内容】

喜马拉雅:点击播放

原创内容,盗版必究。【作者:唐霜】【版权所有】唐霜 www.tangshu本文作者:唐霜,转载请注明出处。【关注微信公众号:wwwtangshuangnet】ang.net

求打赏🙇如果你觉得 Ro转载请注明出处:www.tangshuang.net【未经授权禁止转载】bust 这样一档技术类的谈话节目还不错【原创内容,转载请注明出处】未经授权,禁止复制转载。,希望我继续做下去,不妨打赏支持。你可以【未经授权禁止转载】【转载请注明来源】扫描本文下方的二维码打赏,也可以加我微信【版权所有】唐霜 www.tangshuang.net【本文受版权保护】后红包打赏。

著作权归作者所有,禁止商业用途转载。【未经授权禁止转载】未经授权,禁止复制转载。【版权所有,侵权必究】

纠错

  • 音频中提到英文单词 Enterprise本文版权归作者所有,未经授权不得转载。【访问 www.tangshuang.net 获取更多精彩内容】 中文解释应为“企业”
  • 未经授权,禁止复制转载。原创内容,盗版必究。原创内容,盗版必究。【版权所有,侵权必究】

内容大纲

一、通用权限系统设计
【本文首发于唐霜的博客】未经授权,禁止复制转载。转载请注明出处:www.tangshua【本文受版权保护】本文版权归作者所有,未经授权不得转载。ng.net
  1. 什么是权限系统?
  2. 【访问 www.tangshuang.n【访问 www.tangshuang.net 获取更多精彩内容】本文作者:唐霜,转载请注明出处。et 获取更多精彩内容】【未经授权禁止转载】
  3. 权限系统不做什么事?
  4. 【访问 www.tangshuang.n原创内容,盗版必究。【访问 www.tangshuang.net 获取更多精彩内容】et 获取更多精彩内容】原创内容,盗版必究。【本文首发于唐霜的博客】本文作者:唐霜,转载请注明出处。
  5. Morningstar EAMS
  6. 【原创不易,请尊重版权】【原创内容,转载请注明出处】【版权所有】唐霜 www.tangshu【版权所有,侵权必究】本文版权归作者所有,未经授权不得转载。ang.net
  7. 权限系统三大要素:
    1. 账号、角色、权限
    2. 【原创内容,转载请注明出处】【本文受版权保护】原创内容,盗版必究。【关注微信公众号:wwwtangshua【版权所有】唐霜 www.tangshuang.net【版权所有】唐霜 www.tangshuang.netngnet】
    3. 用户(user)、系统/应用(syste【转载请注明来源】本文作者:唐霜,转载请注明出处。m/application)、策略(po【版权所有,侵权必究】未经授权,禁止复制转载。licy)
    4. 本文版权归作者所有,未经授权不得转载。著作权归作者所有,禁止商业用途转载。【版权所有,侵权必究】【访问 www.tangshuang.n【版权所有】唐霜 www.tangshuang.net未经授权,禁止复制转载。et 获取更多精彩内容】
  8. 【版权所有】唐霜 www.tangshu本文版权归作者所有,未经授权不得转载。【原创内容,转载请注明出处】ang.net本文作者:唐霜,转载请注明出处。【版权所有】唐霜 www.tangshu【版权所有】唐霜 www.tangshuang.net著作权归作者所有,禁止商业用途转载。ang.net【版权所有】唐霜 www.tangshu【转载请注明来源】【版权所有】唐霜 www.tangshuang.netang.net
  9. 权限系统存在形式:
    1. 嵌入在业务系统中
    2. 著作权归作者所有,禁止商业用途转载。【未经授权禁止转载】
    3. 权限系统的管理界面单独存在,权限被用在业本文版权归作者所有,未经授权不得转载。本文版权归作者所有,未经授权不得转载。务系统中
    4. 【作者:唐霜】【原创不易,请尊重版权】转载请注明出处:www.tangshua【关注微信公众号:wwwtangshuangnet】【未经授权禁止转载】ng.net著作权归作者所有,禁止商业用途转载。
    5. 权限系统分为两个部分,一个部分管理用户和原创内容,盗版必究。著作权归作者所有,禁止商业用途转载。角色,独立存在,另一部分管理角色和权限的【访问 www.tangshuang.net 获取更多精彩内容】著作权归作者所有,禁止商业用途转载。联系,在多个业务系统中
    6. 【原创内容,转载请注明出处】【版权所有】唐霜 www.tangshu著作权归作者所有,禁止商业用途转载。【作者:唐霜】ang.net【访问 www.tangshuang.n【本文首发于唐霜的博客】【版权所有】唐霜 www.tangshuang.netet 获取更多精彩内容】【本文受版权保护】
  10. 本文作者:唐霜,转载请注明出处。【未经授权禁止转载】本文版权归作者所有,未经授权不得转载。本文版权归作者所有,未经授权不得转载。
  11. 常见权限管理模型:DAC, MAC, R未经授权,禁止复制转载。未经授权,禁止复制转载。BAC, ABAC
  12. 【转载请注明来源】【转载请注明来源】原创内容,盗版必究。
  13. RBAC(Role-Based Acce著作权归作者所有,禁止商业用途转载。未经授权,禁止复制转载。ss Control)模型
    1. RBAC0: 账号-<多对多>著作权归作者所有,禁止商业用途转载。原创内容,盗版必究。;-角色-<多对多>-权限
    2. 【作者:唐霜】【关注微信公众号:wwwtangshua【版权所有】唐霜 www.tangshuang.net【关注微信公众号:wwwtangshuangnet】ngnet】【作者:唐霜】
    3. RBAC1: RBAC0+角色分级(继承本文版权归作者所有,未经授权不得转载。转载请注明出处:www.tangshuang.net
    4. 【关注微信公众号:wwwtangshua【本文受版权保护】【原创内容,转载请注明出处】ngnet】本文版权归作者所有,未经授权不得转载。未经授权,禁止复制转载。原创内容,盗版必究。
    5. RBAC2: RBAC0+角色限制(角色本文版权归作者所有,未经授权不得转载。转载请注明出处:www.tangshuang.net互斥、基数限制、先决条件限制、运行限制&【本文首发于唐霜的博客】【作者:唐霜】#8230;)
    6. 本文作者:唐霜,转载请注明出处。【版权所有,侵权必究】【作者:唐霜】【转载请注明来源】
    7. RBAC3: RBAC1+RBAC2
    8. 著作权归作者所有,禁止商业用途转载。【本文受版权保护】【版权所有,侵权必究】
  14. 原创内容,盗版必究。本文作者:唐霜,转载请注明出处。原创内容,盗版必究。
  15. T-RBAC
  16. 【本文受版权保护】著作权归作者所有,禁止商业用途转载。【作者:唐霜】未经授权,禁止复制转载。
  17. ABAC(Attribute-Based本文作者:唐霜,转载请注明出处。【原创内容,转载请注明出处】 Access Control)模型
    1. 当前用户是否拥有某个操作的权限,依赖四种【版权所有】唐霜 www.tangshuang.net【版权所有】唐霜 www.tangshuang.net属性的计算结果:用户属性(who)、环境【转载请注明来源】【原创不易,请尊重版权】属性(when)、操作属性(how)、对本文作者:唐霜,转载请注明出处。【版权所有,侵权必究】象属性(what)
    2. 本文版权归作者所有,未经授权不得转载。【本文首发于唐霜的博客】转载请注明出处:www.tangshua【作者:唐霜】本文作者:唐霜,转载请注明出处。ng.net【本文首发于唐霜的博客】
    3. Kubernetes便因为ABAC太难用著作权归作者所有,禁止商业用途转载。【版权所有】唐霜 www.tangshuang.net,在1.8版本里引入了RBAC的方案
    4. 【原创不易,请尊重版权】【关注微信公众号:wwwtangshua本文版权归作者所有,未经授权不得转载。【关注微信公众号:wwwtangshuangnet】ngnet】转载请注明出处:www.tangshua【原创内容,转载请注明出处】【作者:唐霜】ng.net
    5. 也被称为 PBAC(Policy-Bas本文作者:唐霜,转载请注明出处。【版权所有】唐霜 www.tangshuang.neted Access Control)
    6. 【转载请注明来源】未经授权,禁止复制转载。转载请注明出处:www.tangshua转载请注明出处:www.tangshuang.net著作权归作者所有,禁止商业用途转载。ng.net
  18. 【关注微信公众号:wwwtangshua未经授权,禁止复制转载。原创内容,盗版必究。ngnet】【版权所有,侵权必究】未经授权,禁止复制转载。
  19. 权限分类:功能权限(是否能进入某个功能模【转载请注明来源】著作权归作者所有,禁止商业用途转载。块,前端是否展示)、业务权限(是否能进行【版权所有】唐霜 www.tangshuang.net著作权归作者所有,禁止商业用途转载。某个具体的提交操作)
  20. 【原创不易,请尊重版权】【本文首发于唐霜的博客】【原创不易,请尊重版权】
【本文首发于唐霜的博客】【原创内容,转载请注明出处】著作权归作者所有,禁止商业用途转载。【访问 www.tangshuang.n转载请注明出处:www.tangshuang.net【访问 www.tangshuang.net 获取更多精彩内容】et 获取更多精彩内容】
二、具体问题处理
著作权归作者所有,禁止商业用途转载。转载请注明出处:www.tangshua【关注微信公众号:wwwtangshuangnet】原创内容,盗版必究。ng.net【转载请注明来源】未经授权,禁止复制转载。
  1. 不同端权限不同
  2. 【原创不易,请尊重版权】著作权归作者所有,禁止商业用途转载。【未经授权禁止转载】【转载请注明来源】
  3. 同一公司旗下不同产品中权限不同
  4. 本文作者:唐霜,转载请注明出处。转载请注明出处:www.tangshua【原创不易,请尊重版权】【转载请注明来源】ng.net【作者:唐霜】
  5. 字段级权限
  6. 【未经授权禁止转载】【作者:唐霜】【关注微信公众号:wwwtangshua转载请注明出处:www.tangshuang.net【作者:唐霜】ngnet】
  7. 单一记录权限
  8. 【转载请注明来源】【访问 www.tangshuang.n本文版权归作者所有,未经授权不得转载。【作者:唐霜】et 获取更多精彩内容】【版权所有】唐霜 www.tangshu【本文受版权保护】【版权所有,侵权必究】ang.net【本文受版权保护】
  9. 动态角色:这个订单产生之后,订单的运营、著作权归作者所有,禁止商业用途转载。原创内容,盗版必究。配送、消费者才产生,在这个订单中,这些角原创内容,盗版必究。著作权归作者所有,禁止商业用途转载。色的权限生效,否则无效。
  10. 转载请注明出处:www.tangshua未经授权,禁止复制转载。本文版权归作者所有,未经授权不得转载。ng.net转载请注明出处:www.tangshua【未经授权禁止转载】【版权所有,侵权必究】ng.net
  11. 动态权限:我是这个订单的配送,在订单不同【未经授权禁止转载】著作权归作者所有,禁止商业用途转载。阶段,我在某个功能上权限不同。
  12. 本文作者:唐霜,转载请注明出处。著作权归作者所有,禁止商业用途转载。
  13. 5+6:在权限系统中,我的角色拥有该权限未经授权,禁止复制转载。【原创内容,转载请注明出处】,但是实际使用中,我并不拥有该权限。
  14. 【访问 www.tangshuang.n【版权所有】唐霜 www.tangshuang.net【版权所有】唐霜 www.tangshuang.netet 获取更多精彩内容】本文作者:唐霜,转载请注明出处。
  15. 上级自动拥有下级部分权限
  16. 本文作者:唐霜,转载请注明出处。未经授权,禁止复制转载。
  17. 用户只能看自己所在部门的数据(数据范围限【版权所有,侵权必究】本文作者:唐霜,转载请注明出处。定)
  18. 【版权所有】唐霜 www.tangshu【版权所有】唐霜 www.tangshuang.net【版权所有,侵权必究】ang.net【版权所有,侵权必究】【关注微信公众号:wwwtangshua未经授权,禁止复制转载。【访问 www.tangshuang.net 获取更多精彩内容】ngnet】
  19. 权限期限(试用期、过期)
  20. 未经授权,禁止复制转载。著作权归作者所有,禁止商业用途转载。
  21. 许可证(用来卖的)
  22. 未经授权,禁止复制转载。【转载请注明来源】【访问 www.tangshuang.n【版权所有,侵权必究】本文版权归作者所有,未经授权不得转载。et 获取更多精彩内容】
  23. 到底是用户组、还是权限组?
  24. 本文作者:唐霜,转载请注明出处。未经授权,禁止复制转载。转载请注明出处:www.tangshua本文版权归作者所有,未经授权不得转载。转载请注明出处:www.tangshuang.netng.net著作权归作者所有,禁止商业用途转载。
  25. 超级管理员应该具备什么权限?
  26. 【未经授权禁止转载】【访问 www.tangshuang.n原创内容,盗版必究。【转载请注明来源】et 获取更多精彩内容】未经授权,禁止复制转载。【版权所有,侵权必究】
  27. 权限分层:拥有A权限才有资格去判断B权限原创内容,盗版必究。本文作者:唐霜,转载请注明出处。,否则根本不需要判定B权限
  28. 【版权所有】唐霜 www.tangshu本文作者:唐霜,转载请注明出处。【访问 www.tangshuang.net 获取更多精彩内容】ang.net著作权归作者所有,禁止商业用途转载。未经授权,禁止复制转载。【版权所有】唐霜 www.tangshu【未经授权禁止转载】【版权所有】唐霜 www.tangshuang.netang.net
  29. 组合权限:拥有A权限同时不拥有B权限,相【转载请注明来源】转载请注明出处:www.tangshuang.net当于拥有C权限,同时拥有AB权限相当于拥转载请注明出处:www.tangshuang.net原创内容,盗版必究。有D权限
  30. 【原创不易,请尊重版权】转载请注明出处:www.tangshua【原创不易,请尊重版权】【原创不易,请尊重版权】ng.net
  31. 某个上级领导,要求他自己登陆系统去配置自【访问 www.tangshuang.net 获取更多精彩内容】【作者:唐霜】己下属的权限
  32. 原创内容,盗版必究。【本文受版权保护】
  33. 独立的权限管理系统,权限和业务的联系在具【未经授权禁止转载】【作者:唐霜】体业务系统中实现
  34. 【原创内容,转载请注明出处】【原创内容,转载请注明出处】
  35. 权限命名怎么才能更合理?
  36. 本文作者:唐霜,转载请注明出处。本文版权归作者所有,未经授权不得转载。转载请注明出处:www.tangshua【原创内容,转载请注明出处】【版权所有】唐霜 www.tangshuang.netng.net
  37. API Gateway
  38. 原创内容,盗版必究。原创内容,盗版必究。本文作者:唐霜,转载请注明出处。【关注微信公众号:wwwtangshua【作者:唐霜】【原创不易,请尊重版权】ngnet】
转载请注明出处:www.tangshua【原创不易,请尊重版权】转载请注明出处:www.tangshuang.netng.net【转载请注明来源】著作权归作者所有,禁止商业用途转载。原创内容,盗版必究。

2020-06-21 5072

为价值买单,打赏一杯咖啡

本文价值50.72RMB
已有2条评论
  1. acfasj 2020-08-01 16:59

    在知乎关注了博主, 然后发现了这个博客, 很多内容都是现阶段我想看到的, 很棒!
    这期音频从通用设计讲到一些比较具体的点, 让我对权限管理管理有了一点点进一步的认识, 我觉得印象比较深的点有:
    1. 权限系统不做和业务逻辑相关的任何事情
    2. RBAC + ABAC 合理搭配使用. (感觉rbac像编译时, abac像运行时  

    我是一个前端, 如果让我单单想前端这一部分的话:
    1. 某个页面用户是否可见  
    2. 某个页面里的某些元素用户是否可见  
    3. 一些表单字段, 是否需要根据权限, 让前端做一些表单校验的限制
    其中1,2应该都是好办的, 直接判断显示不显示就好了, 3应该看产品需求, 因为表单形式多样, 需要前端做校验的话必须先调用接口先获取一些校验规则, 太麻烦. 不知道3这种情况的需求博主碰到的多吗? 感觉就是音频里说到的字段级权限, 前后端处理这种情况都比较麻烦

    另外就是, 没有实际的抽象良好的项目例子来参考的话, 单单听这些听完以后我的感觉还是比较泛. 当然不是说博主说得不好, 是说得很好, 也符合talk这个主题, 而且有实际项目参考也不现实, 只是写代码的话没有show me the code总感觉不完整哈哈哈哈哈

    • 否子戈 2020-08-01 20:01

      播客没法show the code,至于业务案例,因为公司内项目不便公开讨论