复盘丨B端产品怎么设计权限管理系统?

作为产品新人,第一次接触设计权限管理系统,借此机会整理出一套较完整的通用设计方案。很多B端产品尤其是企业服务这块,比如OA系统、CRM系统和ERP系统都已经有比较成熟的系统技术和解决方案。

复盘丨B端产品怎么设计权限管理系统?

在整理权限系统的流程结构时,我查阅和借鉴了不少前辈们的文章经验。大多数文章都讲到了RBAC(Role Based Access Control)权限管理模型——基于角色的访问控制技术,在这次设计的权限管理系统也是借用了该模型,再根据公司实际的业务需求进行整合方案。

一、背景及目标

权限管理是后台系统中一个重要的部分,用于控制账号的访问和操作,明确账号在各个系统中的查看和操作范围,增强公司对账号操作的风险控制。本次的目标是对所有系统功能和数据进行统一权限配置管理,包括对商户的组织架构管理,设计一套灵活通用的权限管理系统。整个系统基于RBAC权限模型进行设计,模型图解如下图,即账号与角色是多对多关系,角色与权限是多对多关系,通过给账号赋予不同的角色实现权限控制。

复盘丨B端产品怎么设计权限管理系统?

二、需求说明

在设计权限管理系统时,要求账号唯一,账号归用户所有,用户可以自己在客户端注册账号,通过被邀请或主动申请加入组织,操作类似于企业微信、钉钉等目前主流办公软件的账号管理。

当然权限管理系统也要考虑到不同平台组织架构的接入,还有信息同步的问题,这个后期具体问题具体分析,慢慢迭代。以下提到的商户指的是组织,平台里允许创建多个组织同时管理。结合实际业务需求,整理出权限系统主要实现以下几个功能点:

1.登录与账号设置

  • 统一登录账号,全局账号唯一
  • 密码修改

2.组织架构管理

  • 商户管理
  • 创建商户
  • 商户资料管理
  • 配置商户可分配的权限范围

3.部门管理

  • 创建部门
  • 部门树管理
  • 部门账号管理
  • 部门角色分配
  • 登录设备审核和绑定
  • 账号资料管理
  • 账号角色分配
  • 预创建账号(遵循账号全局唯一)

4.用户管理

  • 账号信息查询
  • 账号类型(平台管理员、商户管理员、普通员工)

5.角色管理

  • 创建角色
  • 角色权限管理
  • 角色分类管理

6.权限管理

  • 新建权限
  • 权限分类管理
  • 权限管理

7.操作日志

8.登录日志

9.操作日志

三、设计流程‍

1.系统概述

权限系统主要包括三个要素:账号、角色、权限,权限管理系统就是用于管理三者之间的关系。

  • 账号:无论移动端、PC端,C端或B端产品,只要是在同一个产品体系里,统一账号登录,全局账号唯一。
  • 角色:权限集,控制账号的操作范围。将权限进行组合分组,制定成不同的角色,再将角色赋予对应的账号,使账号拥有这些权限集。
  • 权限:包括数据权限、菜单权限、操作权限

复盘丨B端产品怎么设计权限管理系统?

为了更灵活高效地管理账号,我对所有账号进行分类(可根据实际业务制定划分规则),不同类型的账号在权限系统管理范围不一样,分为平台管理员、商户管理员、商户成员,各自可管理的范围如下图。

  • 平台管理员:权限管理系统的超级管理员,可登录和管理所有账号,享有最高管理权限;
  • 商户管理员:商户在权限管理系统中的管理员,可管理所属商户的所有账号和权限;
  • 商户成员:各商户的成员,不允许登录权限管理系统;

复盘丨B端产品怎么设计权限管理系统?

如果系统中可配置权限比较繁杂,为方便权限的管理,建议对系统中可配置的所有权限也要做分类处理。权限可分为数据权限、菜单权限、操作权限,如下图所示:

复盘丨B端产品怎么设计权限管理系统?

2.组织架构管理

1、商户管理:新增商户、编辑商户信息、停启用状态、可配置权限范围。

创建商户时,要确认该商户管理员可分配哪些权限。停启用状态控制商户状态,已停用的商户,商户成员赋予的权限无法使用。

复盘丨B端产品怎么设计权限管理系统?
复盘丨B端产品怎么设计权限管理系统?

2、部门管理:部门人员管理、部门角色配置、商户成员角色配置、绑定设备审核、新增成员账号可隶属于多个公司,多个部门,在客户端可以切换公司和部门。权限配置分为部门商户成员分别配置,也是就针对部门添加部门权限,部门下的所有商户成员自动拥有对应权限,这样权限配置时更高效灵活。

设备绑定审核流程,在权限系统化里对账号登录的设备进行管控,大部分企业为了限制账号登录更严密的管控,会对登录的设备号进行审核管理。这个需要配合客户端进行设计,首次在设备登陆时自动提交申请,审核通过后才能登录系统。

复盘丨B端产品怎么设计权限管理系统?

图(成员管理)

复盘丨B端产品怎么设计权限管理系统?

图(设备绑定审核)

复盘丨B端产品怎么设计权限管理系统?

图(成员管理-基础资料)

复盘丨B端产品怎么设计权限管理系统?

图(成员管理-成员角色)

复盘丨B端产品怎么设计权限管理系统?

图(新增成员)

3.用户管理

用户账号管理:该页面只开放给平台管理员,可查看所有账号,及对应的基础信息。账号由商户创建,或者用户自行注册,所以权限系统-用户管理只做搜索查看。

复盘丨B端产品怎么设计权限管理系统?

4.角色管理

角色管理:新增角色,对该角色所拥有的权限进行添加,也就是所谓的权限集;既然是做通用权限管理,角色肯定要做分类,树形管理是比较好的选择,不同商户的管理员,对角色可自行增删改查。

复盘丨B端产品怎么设计权限管理系统?

5.权限管理

权限管理:无论移动端、PC端,C端或B端产品,可配置的资源在这里增删查,页面只开通到平台管理员,权限通过KEY的方式进行添加。

前面也有讲到将权限进行分类,常见的是分三类,这里做下补充说明:

  • 菜单权限:如文字所示,即各个系统页面菜单的页面访问权限,如:菜单、子菜单等。
  • 操作权限:指用户可以操作的内容,增删改查都属于操作,操作权限主要是对操作按钮进行控制;
  • 数据权限:可查看的数据范围和内容,包括查看的列表字段等

总 结

权限管理系统的存在,是为了辅助企业分工协作,应该根据实际业务需求进行设计。

以上是一个产品新人对权限管理系统的思考,仅代表个人观点,如有不足之处,欢迎大家一起交流。

业界动态

进阶:如何进行产品的架构?

2019-11-23 21:13:55

业界动态

谈谈什么是B端产品

2019-11-23 23:10:45

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索