笔者分享了后端设计中权限管理的相关知识权限管理设计角色,希望能给大家的产品工作带来一些帮助。
我隐居在一个人人都是产品经理的网站上学习了四年。 由于我最近的工作方向偏向后端,所以在设计后端的时候经常会查阅后端的相关资料,但是关于后端的文章等内容分享的太多了。 不多。 这段时间我正在调整,想尝试写一系列关于后端的文章。 希望与大家讨论和分享。 我希望它对每个人都有好处。 由于不同后端需求的多样化3D场景,我们无法全部考虑到。 如果你能简单地接触到水,请尝试用简单而深刻的方式解释它。
权限管理系统定义
权限管理是一个重要的组件,几乎所有后端系统都会涉及到。 主要目的是对整个后台管理系统的权限进行控制,目标是员工,避免因权限控制缺失或操作不当而带来的风险。 比如操作错误、数据泄露等问题。 其实权限管理的设计并不难。 目前最常见的是一个账户对应多个角色,每个角色对应相应的权限集(RBAC模型)。 这个模型基本上可以处理所有的问题,并且通过角色,来实现灵活多样的权限操作需求,我们来梳理一下上面提到的主要术语:账户、角色、权限。
账户定义
每个想要进入系统的员工都必须有一个账号,这个账号就是一把钥匙。 通过控制账户的权限,我们控制了该员工的授权范围。 因此,需要提醒员工不要轻易将自己的账号和密码提供给他人,否则遇到任何问题将由自己负责。
角色定义
角色管理是确定角色拥有哪些权限的过程。 它是一个集合概念,由很多最小权限粒子组成。 我们通过给这个角色赋予权限来实现账户的权限,然后再把角色赋予给账户,这样就起到了桥梁的作用。 引入角色的概念可以帮助我们灵活扩展,使得一个账户可以拥有多个角色。
最好根据职位来命名角色,比如市场部的普通员工、市场部总监等。因为职位在任何企业都存在,而且都是有限的,而且很容易理解,所以营销文员的角色就是角色营销员的权限3D素材,方便我们配置权限时的判断,避免配置错误。
权限定义
权限可以分为三种:页面权限、操作权限、数据权限。
页面权限控制您可以看到哪些页面以及您不能看到哪些页面。 许多系统只控制页面级别。 实施起来相对简单。 有的系统会这样设计,但是比较老式,控制权限不精准。 页面上很难将权限划分到下一级。
操作权限控制您可以操作页面上的哪些按钮。 (引申:当我们进入一个页面时,我们的目的无非就是对这个页面进行添加、删除、修改、查看,页面上对应的操作可能是:查询、删除、编辑、添加四个按钮)也许你在某个页面上,只能查询数据,不能修改数据。
数据权限控制您可以看到的数据。 比如市场部门A的人只能看到或者修改部门A创建的数据,而不能看到或者修改部门B的数据(引申:我们一般控制数据是通过部门来实现的,每条记录都有一个创建者,而每个创作者都属于某个部门,所以部门越细,数据控制的级别就越精细。除了部门之外,还有其他好的办法吗?如果有其他方式来控制数据权限尺寸,您可以讨论它们)。
哪些权限应该放在哪个页面完全是根据业务需求配置的。 只需要列出控制权限的地方,交给开发即可。
权限管理系统的基本页面设计。 在角色列表页面删除某个角色,需要判断是否有该角色关联的账号。 如果存在关联,则不允许删除。 如果您不想使用该角色或已取消该角色,可以将该角色设置为无效状态。 当账户获取角色时,会首先判断该角色是否有效。 便捷性方面,可以提供批量添加账户到某个角色的功能。 当新员工加入,尤其是同职位的员工加入时,设置权限的效率会大大提高。
配置角色权限
账户列表页面首先我们要有一个账户列表,因为我们是在给账户配置权限。 可以查询或者添加全部人员(为什么要添加,因为很多大公司有很多管理系统,而每个管理系统只有部分人使用,所以在账户列表中不会显示所有人,所以使用添加)。 这里需要注意的是账号的禁用,这是为了防止员工离职后出现问题。 它可以连接到HR系统。 员工离开公司后,所有系统帐户将自动禁用。 有很多系统提供了直接为账户添加特定权限的功能,而不是通过角色权限管理设计角色,如下图所示。 我不提倡这样做。 给员工添加特定权限时,虽然操作比较方便,但缺乏标准化。 一个明明只承担营销部门角色的员工,实际上却拥有财务部门的支付职能。 这在页面上是无法解释的,久而久之就会导致人员权限混乱。 这种需求可以通过添加新的角色来处理。
账户列表
配置帐户角色
从权限添加帐户
也不推荐这种方法。 如果像上面提到的这种方式直接给账户添加特定的权限,虽然提高了操作的便利性,但是影响了权限的标准化和可维护性。 角色是桥梁。 它将成为断桥,团结将被破坏。
部分原型页面截图有点粗糙,仅供参考。
权限分配
权限分配必须合理。 很多公司对部门的权限分配很随意。 他们给予各部门任何他们想要的权限。 其实,这存在着隐患。 我们需要更深入地考虑部门有什么权限,而不是他们有什么权限。 什么权限,这块经常被忽略。
总结
归根结底,我想强调一件事:如何从公司系统上关注权限的管理,即如何规范权限的分配,即该部门的哪些员工需要审批或哪些员工需要审批。在他们可以配置之前通过电子邮件通知。 哪些数据需要设置权限,哪些操作需要设置权限,这些权限管理流程是权限系统的核心,但这些核心的东西并不能在系统中体现出来。 前期的不慎,后期就会变成麻烦,不仅会影响企业效率,还会引发风险危机。 权限管理最终是为了风险控制。 如果权限的风控意识不好,再好的权限体系也是枉然。