Saas平台级架构:统⼀⾝份认证管理系统⽤户权限管理 对于 Saas业内在⽤户统⼀⾝份认证及授权管理领域,主要关注 4 个⽅⾯(4A管理)):
集中账号管理(Account)、集中认证管理(Authentication)、集中授权管理(Authorization)和集中审计管理(Audit), 简称4A 管理。
后来发展了 IAM(Identity and Access Management,即⾝份识别与访问管理)的相关技术,在云计算等领域应⽤⼴泛。整体来说,不管是 4A 还是 IAM 还是未来可能的其他技术⽅案,都可以归纳为『统⼀⾝份治理』的范畴。本⽂基于『统⼀⾝份治理』的概念提出了统⼀⾝份管理系统(Unified Identity Management System)的设计思路。
⼀、统⼀⾝份管理系统(Unified Identity Management System)
统⼀⾝份管理系统(简称 UIMS)可以认是多租户架构的升级版,通常是整个平台帐号和权限管控的基础性系统,平台下所有系统的账户管理、⾝份认证、⽤户授权、权限控制等⾏为都必须经由该系统处理,提供帐号密码管理、基本资料管理、⾓⾊权限管理等功能。UIMS 基于『统⼀⾝份治理』的概念,可划分为两级账户体系、基础权限模块和基础信息模块三⼤模块。其中两级账户体系将账户分为组织实体帐号和个⼈实体账户两⼤类,个⼈实体从属于组织实体,也可以不从属任何组织实体,且个⼈实体可 同时从属于多个组织实体;基础权限模块将各业务系统的资源权限进⾏统⼀管理和授权;基础信息模块⽤于描述组织实体和个⼈实体的基本信息,如组织实体名称、地址、法⼈,个⼈实体姓名、电话号码、性别等基础信息。UIMS 提供统⼀的 API 与各⼦系统连接。
从整个平台的⾓度来看,UIMS 除了提供上述功能和服务,还应该满⾜以下需求:
编号需求描述
印刷界1软件授权云平台付费授权机制,可按时间、功能、数量等进⾏付费授权
2组织⼊驻允许组织主动申请加⼊平台
3实名认证个⼈实名认证、组织实名认证
4资质审核个⼈和组织的资质审核,如对获得的证书或荣誉进⾏审核
5组织绑定个⼈账户绑定组织,与组织建⽴关联关系
6组织解绑个⼈账户与组织进⾏解绑
7账户注销个⼈账户注销,并销毁所有个⼈资料和档案
8统⼀登录即 SSO
9统⼀注册提供统⼀的⽤户注册页⾯
因此,从功能的⾓度可以将 UIMS 划分为以下模块:
⼀)功能
数据库测试
系统设置 System Configuration
系统标识管理 System Identifiers Management
服务账户管理 Service Accounts Management
账户实体管理 Account Entities Management
组织实体管理 Organization Entities Management
组织架构管理 Organization Management
个体账户管理 Individual Accounts Management
账户权限管理 Account Permissions Management
⽤户组管理 User Group Management
⾓⾊管理 User Roles Management
资源权限管理 Permission Resources Management
权限策略组管理 Permission Group Management
认证审核管理 Authentication Management
个⼈认证管理 Individual Authentication Management
组织认证管理 Organization Authentication Management
资质审核管理 Qualification Management
付费授权管理 Authorization Management
组织授权管理 Organization Authorization Management
⼆)页⾯
统⼀注册页⾯ Unified Signup Page
统⼀登录页⾯ Unified Signin Page
组织⼊驻页⾯ Organization Signup Page
个⼈实名认证页⾯ Individual Authentication Page
组织实名认证页⾯ Organization Authentication Page
三)API
鉴权相关的APIs
吾守尔大爷的冰业务相关的APIs
其中组织绑定和解绑的功能,可以放到『组织实体管理』 或『个体账户管理』的功能中。需要注意的是,组织绑定与解绑功能,是否与业务系统关联,下⽂将进⾏阐述。
⼆、两级账户体系和基础权限模块
基于『统⼀⾝份治理』的理念,采⽤两级账户体系(UIMS 提供接⼝)实现多系统融合的平台级 SAAS。两级账户体系将账户类别分为组织实体和个⼈实体两类(详见下⽂⽤户分类)。个⼈实体可以从属于组织实体(可以从属于多个组织实体),也可以不从属。个⼈账户体系和组织账户体系在云平台内享有的权限是不⼀样的,虽然⼤部分功能和服务两个体系的实体均可独⽴使⽤,互不⼲扰,但部分功能和服务有所不同。
1. 基本原则
平台级 SAAS 模式账户体系应遵循以下⼏个基本原则:
个⼈账户统⼀原则:个⼈账户⼀次注册,全平台通⽤,类似于全⽹通⾏证和 SSO,注册和登录都在 UIMS 进⾏。
业务权限独⽴原则:每个⼦系统的权限体系是独⽴管理的。『个⼈账户统⼀原则』明确了账户体系是统⼀的,但是对于每个⼦系统⽽⾔,每个账户所能使⽤的功能和服务,所能查看的数据权限是独⽴维护的,⽐如 XXX 公司(组织)-研发T3组(⽤户组)-张三(⽤户)-研发⼈员(⾓⾊),在 CRM 系统中,拥有的资源权限(详见下⽂),与其在 OA 系统中的所拥有的资源权限肯定是不⼀致的。
组织实体隔离原则:不同的组织实体之间,是相互隔离,独⽴管理的。每个组织实体可以⾃⾏组织⾃⼰的组织体系、账户体系和权限体系。不同的组织实体资源权限也是隔离的。
从属关系隔离原则:个体账户与组织实体的从属关系是基于单独的业务系统存在的,『个⼈账户统⼀原则』明确的仅是个⼈账户的全⽹统⼀,但组织实体、从属关系并没有统⼀,并且是隔离的。⽐如在 CRM 系统中,张三(⽤户)从属于 XXXX 公司(组织),但在
OA 系统中,张三(⽤户)默认是不从属于任何组织的,从属关系受到具体业务系统的影响。事实上,这个原则是⾮强制的,具体取决于各⾃的业务逻辑和业务场景。如果要简化从属关系的管理,那么可以不遵循此原则,即个体账户与组织实体的从属关系是全平台统⼀的,与业务系统⽆关,但这会为降低平台的灵活性和扩展性。灵活性和复杂度之间通常要做⼀个取舍。
2. 权限原则
类似于 RBAC 原则,平台的权限体系采⽤ OS-RBAC 的概念:
OS:O 代表 Organization 组织,S 代表 System 业务系统,即权限是受到组织实体和业务系统双重影响的。
RBAC:基于⾓⾊的访问控制。
OS-RBAC:组织实体-业务系统-⽤户-⾓⾊-权限标识。分为两种情况:⼀种是有从属组织的个⼈账户;另⼀种是⽆从属组织的个⼈账户,后者⽆组织,但同样遵守 RBAC 的权限限定,且其权限标识体
系允许组织为空。
资源标识:分为逻辑资源和实体资源。逻辑资源如菜单、页⾯、表单、按钮组、按钮、字段等功能型资源,或⼈员档案、考勤记录、任务记录、位置数据、积分、电⼦钱包等数据资源;实体资源如椅⼦、凳⼦、电脑、车辆等实物资产,另外有时候部分逻辑资源也可以归纳为实体资源,如电⼦照⽚、视频⽂件、⾳乐⽂件等。
条件标识:权限的约束条件,主要有可见组织架构范围限定、时间限定、区域限定等。例如某权限仅财务部可见,有效期⾄11⽉2号,这⾥『财务部』属于可见组织架构范围限定,『⾄11⽉2号』则是时间限定。
权限标识:⽤于标识账户实体在指定的条件下拥有访问某项功能、查看某些数据的权限。资源标识和条件标识与权限标识关联,权限标识与⾓⾊关联,⾓⾊与⽤户关联。例如张三(⽤户)-研发⼈员(⾓⾊)-拥有『研发部』所有⼈员档案的增上改查权限。
业务系统标识符:受『业务权限独⽴原则』的约束,与传统的资源权限有所不同的是,所有权限标识都与具体的业务系统关联,例如企业CRM系统就是⼀个业务系统,具体的权限标识与业务系统有直接的关系,例如菜单、表单、页⾯、按钮、图⽚等资源。
权限策略组:权限策略组是在 OS-RBAC 基础上设置的,为简化权限配置的⼀种辅助⼿段,在实际应⽤中可以不创建策略组。策略组分为平台级策略组和业务系统级别的策略组,两种策略组的作⽤域仅限于相同组织实体内部,但对于⽆从属组织的个⼈账户除外。策略组与⾓⾊类似,可以将资源权限绑定到策略组中,但不同之处是,平台级策略组可以横跨业务系统进⾏平台级的资源权限绑定。因为账户体系跨越多个⼦系统,在遵循『业务权限独⽴原则』的限定下,每个⼦系统都需要做⼀套权限配置,操作上较为繁琐,因此充分运⽤策略组可以⼤⼤简化权限配置⼯作。平台可以内置多套常⽤的策略组,终端⽤户可以直接选⽤策略组,也可以基于某个策略组为基础,进⾏修改。值得注意的是,策略组的作⽤域仅限于相同组织实体内部,即策略组可以横跨业务系统,但不能同时作⽤于多个组织实体。
权限交集:与 RBAC2 的静态职责分离-⾓⾊互斥原则相反,平台采⽤多⾓⾊权限并集的设计。
RBAC模型
『权限标识』⽰例:在企业CRM系统[1]中,在2019年3⽉5号以前[2],对百度科技[3],研发中⼼[4],在⼴东区域[5]的所有⼈事档案[6]拥有只读权限[7]。
1. [1]业务系统标识;
2. [2]条件标识:时间限定;
3. [3]组织实体标识;南京市外事服务有限公司
4. [4]条件标识:可见组织架构范围限定;
5. [5]条件标识:区域范围限定;
6. [6]资源标识;
7. [7]权限类型。
3. 从属关系梳理
为简单起见,我们将不遵守『从属关系隔离原则』,即⽤户实体与组织实体的从属关系与业务系统⽆关。系统涉及的实体类型有:
业务系统(系统标识)
服务账户(客户端)
个⼈账户实体
组织账户实体
组织架构
⽤户组(⾮必选项)
⾓⾊实体
权限实体
资源实体
限定条件实体
权限策略组(⾮必选项)
3.1 与组织实体强关联的实体
本溪四高中
基于『组织实体隔离原则』,这类实体类型不能脱离组织实体独⽴存在。
组织架构
⾓⾊实体
权限实体
资源实体
限定条件实体
由于组织架构不能脱离组织实体单独存在,因此当⽤户实体绑定组织架构时,该⽤户实体必须⾪属于该组织架构所从属的组织实体。
同理可知以下从属关系遵从同样的约束——即每对关系的两个实体对象必须属于相同的组织实体:
⽤户与⾓⾊
⾓⾊与权限
资源与权限
限定条件与权限
3.2 与业务系统强关联的实体
基于『业务系统隔离原则』,这类实体类型不能脱离业务系统独⽴存在。
汤炳正权限实体
资源实体
限定条件实体
4. 实体类型
基于以上各项原则,实体类型⼜分为以下⼏种情况:
组织实体(未认证):在组织实体的模式下,可以按照组织的管理要求,独⽴设置⼀套组织架构、账户和数据权限体系,⽐如设置下属企业、分公司、部门、岗位职务、⾓⾊权限,组织实体缺省分配⼀个管理员帐户,拥有全部权限,由管理员初始化配置信息。
组织实体(已认证):拥有未认证组织实体的所有权利,但已认证的实体通常拥有更多的配额更少的功能限制,此外有些特定的业务功能和业务流程,必须是实名认证的实体才能使⽤,⽐如⽀付和交易。
个⼈实体(未认证):在个⼈实体的模式下,享受的权利由具体的业务系统决定,原则上个⼈实体作为独⽴的账户类型,应该享有基本的功能权限和数据权限,如个⼈中⼼的各项功能等。
个⼈实体(已认证):与组织实体(已认证)类似。
个⼈实体(未从属于组织):未从属组织的个⼈实体账户,与上述个⼈实体类型⼀致。
个⼈实体(从属单个组织):从属单个组织的个⼈实体账户,除了具备个⼈实体账户的原本权利外,还受到组织权限的约束,原本个⼈实体不享受的权利,可能现在可以享受,原本享受的权利,可能现在不可以享受了。
个⼈实体(从属多个组织):当个⼈实体账户从属于多个组织时,除了个⼈账户原本拥有的权利外,所从属的组织所带来的权利须遵循『组织实体隔离原则』,且受到『从属关系隔离原则』的约束,具体的权利配置由各个业务系统独⽴管理。这⾥有两种情况:⼀是在⽤户登录时,必须选择所属的组织机构,类似于 LOL 游戏,在登录时须选择所属的区域和服务器;⼆是在⽤户登录后,可以⾃由选择组
织实体,类似于阿⾥云或华为云的区域选择,在⽤户未选择所属组织时,应当按照未从属于组织的个⼈实体账户对待。
组织管理员:组织管理员拥有该组织内部的全部资源权限,例如可以创建个⼈账户,在个⼈未完成⾸次登录前,可以删除(解雇),修改,在个⼈完成登录后,则权限移交给了个⼈;删除(解雇)时,只是个⼈脱离组织,个⼈不再拥有组织员⼯的权限,在组织内的个⼈⼯作经历仍然保留,组织清除离职员⼯,则这些在职经历将不为企业可管理,但个⼈⾃⼰可见,不可变更。
5. ⽤户分类
⽤户分类
6. 组织分类