无人驾驶|怎么做好 B 端产品的权限设计?

无人驾驶|怎么做好 B 端产品的权限设计?

文章图片

无人驾驶|怎么做好 B 端产品的权限设计?

文章图片


\">【无人驾驶|怎么做好 B 端产品的权限设计?】
对于 B 端的 PM 来说 , 权限设计可以说是最基础的技能之一了 , 对于权限设计的相关问题 , 行业内也都有很多比较成熟的解决方案 , RBAC 模式甚至都演变出 RBAC1、RBAC2、RBAC3了 , 这对于很多人来说反而加大了理解的难度 。 今天我就从另一个角度来跟大家探讨一下权限设计的看法 。

权限的意义权限来源于用户管理的需要 , 而最终又作用于用户 。 对于 B 端产品来说 , 通常都会包含很多不同的功能模块 , 有针对运营人员的模块、财务人员的模块或者管理人员的模块 , 在实际的使用场景中 , 由于用户职责的不同以及企业对员工接触数据的限制等 , 需要 B 端产品能够支持不同用户登录同一应用去使用相应的模块 , 彼此互不干扰 , 因此便有了权限设计的需求 。
权限的构成沉下心来仔细想想系统权限的构成 , 其实无非就是功能权限(页面和操作)和数据权限 , 我们平时在设计权限的时候 , 其实要做的就是控制用户哪些页面能进入、哪些操作能做 , 哪些数据能看到 。

权限模型在互联网行业 , 权限模型有很多种 , 比如 DAC、ACL、MAC、RBAC、RBAC1、RBAC2、RBAC3 等 , 在这里我主要讲 RBAC , 因为 RBAC 是目前 B 端产品最受用的权限模型 , 没有之一 。
RBAC , 即 Role-based Access Control , 字面意思就是基于角色的权限控制 , 实际含义即字面上说的 , 通过给用户赋予角色来控制用户的权限范围 。 比如小王和小张都是销售人员 , 那么可以定义一个销售人员的角色 , 给销售人员这个角色赋予权限 , 然后在系统中将小王和小张设置为销售人员 , 那么小王和小张就都具有了销售人员的权限 。

权限设计的目的上文中 , 我提到了权限的意义、权限的构成以及最典型的 RBAC 权限模型 , 目的其实是想跟大家传达一点:权限设计的目的无非就是控制用户哪些页面能进入、哪些操作能进行、能看到哪些数据 。 当产品能清晰了解权限设计的目的 , 再复杂的权限场景都不在话下 。

权限设计的注意要点本人之前在做权限设计的时候有遇到过一些坑 , 在此也跟大家分享一下 , 避免还有人也踩到一样的坑:
? 注意页面地址的权限控制:通过菜单控制权限是比较常见的做法 , 如果没有加路由权限 , 那菜单地址被暴露后 , 其他人员就可能通过直接访问页面地址的方式进入到相应的页面内;
? 注意接口权限的控制:这一点应该比较少见 , 因为开发人员在开发接口的时候通常都会加上各种鉴权方式;
? 注意权限复杂度的控制:在设计权限的时候 , 不仅仅要考虑到完美控制好用户的权限范围 , 还要考虑到权限模型的易用性 , 否则对用户来说是非常灾难性的事件 。
写在最后权限设计虽说只是非常基础的模块 , 但可谓是牵一发而动全身 , 也是很关键的设计要点 , 产品经理在这里是万万不可疏忽的 。 以上是我对权限设计的一些看法 , 大家有其他想法欢迎留言探讨 。