编辑导语:与To C产品不同,SaaS产品的面向用户大多为企业用户,在产品的使用过程中,便会涉及到“权限管理”的相关问题。那么,你知道SaaS产品的权限管理设计有哪些特点吗?在SaaS产品权限设计中,又有哪些常见问题?
一、前言
SaaS产品大部分会面向企业用户,而企业是由若干个岗位相互协作的一个经营组织,每类岗位都有各自的职能,在企业经营管理的要求下,这些不同的岗位各司其职不可越权,否则可能给公司的正常经营带来风险,比如在功能权限上,客服不能有财务资金管理的权限;在数据权限上,分公司员工不能有总部的数据权限等。
所以SaaS产品需要对不同岗位的功能和数据范围进行约束,于是就有了「权限管理」。
1. 什么是权限管理?
权限管理是指让用户只能访问自己在系统中被授权的资源的一种功能。
其解决了企业需要对不同岗位员工权限的区别管理的问题,能够防范管理上违规操作的风险,体现在软件中即是不同用户拥有的功能或数据权限不同。
2. 什么样的企业需要权限管理?
当有敏感职责的岗位和其他岗位都需要使用同一系统时,这个企业在该产品中就需要用到权限管理功能。这类企业的特征是存在多个岗位,且某些岗位的职责其他岗位不能拥有。
敏感职责指的是某项工作只让特定的岗位来完成,如果其他员工操作会给经营管理带来风险,体现在系统中就是某些功能只允许部分员工操作。
比如连锁零售店的收银员和财务,分别会分配收银和资金管理权限,收银和资金管理都是敏感职责,其他大部分岗位都不允许拥有这两项权限,不然资金上有出现问题的风险。
此时,使用权限管理就可以限制商品管理员、库存管理员、美工等岗位不能拥有资金管理和收款权限,无法进行收款、资金提现操作,资金就是由特定岗位按照公司的流程制度来管理,不会出现职责范围外的员工挪用资金的情况。
那么,哪些企业会存在敏感职责的岗位呢?比如做零售、餐饮、酒店这些业务涉及到金钱的企业,政府这种数据要求保密的组织等等,如果SaaS产品面向具有这类特点的企业,就需要做权限管理。
二、SaaS产品权限管理设计有何特点?
“多租户”是SaaS产品的一个基本特征,所以与企业内部管理软件不同的是,SaaS产品需要让n个企业都能在同一个产品中使用,需要找到不同企业权限管理的共性和区别,这就使得SaaS产品的权限管理具有了以下特点:
1. 产品中各租户的权限管理相互独立
因为SaaS产品所有企业用户都是在同一个平台上使用,每个企业都是独立的主体,不能互相影响,所以,与企业内部管理系统只用考虑管理本公司员工权限管理不同,SaaS产品需要让每个企业都能够独立管理各自的员工权限。
每个企业用户登录后,仅可查看和管理自己企业的用户权限,这是产品能正常使用最基本的条件。如果不同企业之间能够互相查看或管理其他企业的用户,可想而知用户对产品的安全性、可靠性会产生多大的质疑。
各租户权限管理功能的关系图
2. 权限管理需要兼容不同类型的组织架构
每个企业的组织架构不一定相同,比如集团企业和小微企业的组织架构不同,权限管理复杂度也会不同,所以这就给SaaS产品的权限管理带来了另一个不同之处——需考虑是否要兼容不同的组织架构。
产品设计时,是否需要兼容不同类型的组织架构,由产品面向的客户群体的组织架构特点来决定。
从组织层级的角度可以简单分为2类组织架构:
1)单层级架构
指公司只有总部这一个经营机构,总部下面无分机构的企业架构。
其特点是组织结构简单,设计权限管理功能时不用考虑多机构的情况,例如非连锁的零售、美容、餐饮店,其组织结构简单,没有分机构。
2)多层级架构
指公司除总部以外还分了其他经营机构的企业架构。
其特点是组织结构较复杂,机构之间存在上下级关系,有的还存在平级关系,使得权限管理需要考虑跨机构的场景。
例如连锁零售、餐饮企业,制造业、地产、物流、医院、教育行业的集团型企业,会有很多分支经营机构,目标客户是这类大中型企业的SaaS产品,权限管理就会变得复杂。
3. 存在可标准化的通用角色
尽管不同企业都有自己独立的权限管理功能,但有些角色在各公司都存在,且这些角色的权限在每个企业中可以相同,所以SaaS平台可以将这些角色默认设置为所有企业都有,即为标准化的通用角色。
通用角色的作用是方便新客户快速配置员工权限。举个例子,某线下零售店主,新入驻一家零售SaaS平台,需要配置仓库管理员、商品管理员、收银员、导购员的员工权限:
第一种方案,进入到用户权限分配页面后,没有通用角色,店主需要先创建角色,然后进入权限列表后,发现权限项共100个以上,店主需要逐个权限项识别,判断能否赋给该角色,每个角色都需要如此配置,如果有不懂,还需要咨询平台客服/售后,进行讲解。
第二种方案,进入到用户权限分配页面后,有通用角色,已默认配置好了各角色的通用权限,店主直接选择仓库管理员、商品管理员、收银员、导购员赋给员工。
两种方案对比,显然第二种方案能帮助新客快速使用产品,减少培训成本。这一点对于SaaS产品来说比较重要,因为SaaS产品需要依赖足够大的客户规模实现盈利,如果每入驻一个客户,都需要对客户进行系统培训,那么当客户规模越来越大时,培训成本不免非常高昂。
所以,就需要提炼出通用角色,默认定义好这些角色的权限。
比如上述的这款零售SaaS产品,目标客户是服装店,那么导购员、收银员就可作为通用角色,导购员默认拥有商品管理、会员管理、订单查询的权限,收银员默认拥有订单管理、收银管理的权限。
新客分配员工权限时,可以直接选择角色分配给员工,快速高效。
三、SaaS产品权限设计常见的问题
我们入职一家SaaS公司后,通常是在已有的产品上做迭代,已有了一套权限管理功能,所以较少考虑权限管理,但假如有一天我们要打造一款新的SaaS产品时,就必须得从0到1设计权限管理功能。
而权限管理设计不合理,可能会出现A岗位的员工拥有B岗位的权限,而B岗位含敏感职责,导致公司在使用系统时存在管理风险,权限问题一旦暴露出来,会影响客户对系统的信任度,进而对老客户的续费和新客户的订购意愿产生负面影响。
以下是SaaS产品权限设计中常见的问题。
1. 没有做数据权限控制
这种情况是指同企业下的用户之间完全没有做数据权限控制,即同企业下面的任何账号在同一页面中,可查看的数据范围相同。
有些情况下,企业内不同员工允许看到的数据范围会不相同。比如某汽车经销公司有多个销售部,每个销售部不允许看其他销售部的客户数据,每个销售员不允许看其他销售员的客户数据,否则可能会出现抢客户的情况,每个销售部主管又需要看到自己部门的所有客户数据。
这时,如果系统没有数据权限控制,那么就会出现每个员工都可以看到所有客户数据,没办法满足上述情况下的需求。
有的产品会做成【我的客户】和【公司客户】2个页面查看客户数据,解决无法自定义配置数据权限的问题。
【我的客户】页面中只有本员工的客户数据,【公司客户】页面中包含公司所有客户。普通员工没有【公司客户】权限,而管理者有这个权限,所以就解决了普通员工只允许查看自己的客户数据,管理者可以查看所有客户数据的问题。
但显然这样也没有完全解决问题。
前面提到过“某汽车经销公司有多个销售部”,如果按上面这种方案,那么每个销售部的主管都可以看到其他销售部的数据,同样存在互相抢客户的风险。
解决方案:
在用户的权限管理操作,增加选择客户管理模块数据范围的配置,选项包含本人、本部门、本公司。
配置本人时,用户只能看到本人的客户数据,配置本部门时,该用户可以看到本部门的客户数据,本公司同理。
当然,也不是所有SaaS产品都需要数据权限控制,这并不是标配逻辑,需不需要做数据权限控制与产品的业务性质和客户的组织结构有关。
比如产品的业务中不存在员工之间的敏感数据,那么就完全不需要数据权限控制。
再如客户群体只有小微企业,没有多个部门,即便存在敏感的客户数据,用【我的客户】和【公司客户】两个页面权限也可以实现数据控制。
2. 支持配置数据权限,但不支持跨机构配置数据权限
这种情况是指系统支持配置本人/本部门/本公司数据权限,但无法自定义控制只允许拥有哪几个机构的数据权限。
在只有一个机构的企业中,不支持跨机构配置数据权限不会有问题,但在多机构的企业中,可能会无法满足客户权限管理的需求。
比如某集团公司在各一线城市都设有分公司,属于多机构企业,员工A只在深圳分公司任职,那么数据权限就不能设置成“本公司”,否则就能查到总部的数据。
也许有人会说,开发时把“本公司”的数据权限定义为本所属机构的数据权限,如果员工在分公司任职,就有该分公司的数据权限,如果在总部任职,就有总部的数据权限,不就解决这个问题了吗?
但是,假如员工B在总部任职,组织架构上只属于本部,却分管了广州和深圳分公司的财务数据,那么分配数据权限时,广州和深圳这2个分机构的数据权限员工B需要拥有,但总部下面其他的分公司的数据不能拥有。
如果系统不支持跨机构自定义数据权限,就无法满足这种应用场景。
解决方案:
可以在权限管理中上,加上跨机构分配数据权限的逻辑,在用户权限分配的界面,支持选择拥有哪些分公司的数据,解决同一用户在多个机构均有数据权限的问题。
关系图
假如上图中的用户1分管深圳和北京分公司的财务,那么在用户权限分配的界面,可以把深圳和北京分公司的数据权限都勾选给该员工,即满足了该员工仅允许拥有这2个分公司数据权限的需求。
3. 不设置通用角色,新客使用权限管理的学习成本高
通用角色是指企业开通账号时,在角色列表中默认给出已经配置好权限的角色,其适合在产品的目标企业群体普遍存在相同职责的用户时,平台给出标准化的角色配置。
例如某零售SaaS产品的目标客户是服装店,那么导购员、收银员就是目标客户中通用的角色,导购员可以默认拥有商品管理、会员管理、订单查询的权限,收银员默认拥有订单管理的权限。
前文中已经阐述了关于通用角色的作用,很多SaaS产品没有设置通用角色,在产品初期用户量小、权限项少时不会暴露出问题,当产品用户规模越来越大、功能越来越多时,不免会有新客户因为不懂如何配置繁多的权限而中断了产品的使用,增加新客流失率。
毕竟,并不是所有的客户都有耐心研究系统,市面上还有更多使用起来便捷的产品可以选择。
解决方案:
设置产品的公共角色,定义好这些角色默认拥有的权限,所有企业注册后即可使用这些角色,配置员工权限时,可以直接勾选该员工有什么权限。
“有赞”产品定义的通用角色
四、结语
权限管理是SaaS产品搭建系统之初就需要定义好的基础功能,如果因设计不当而使后期再来改造,则会影响所有企业用户的账号使用,影响平台的稳定性和可靠性;而如果过度设计,对于创业初期的SaaS团队来说研发成本又不免高昂。
因此,我们需要根据SaaS产品面向客户群体的特征,选出合适的设计方案,才能让权限管理满足客户的使用场景。
作者:子文,:SaaS产品闻
本文由 @子文 原创发布于人人都是产品经理,未经作者许可,禁止转载
题图来自Unsplash,基于CC0协议