对于 Saas业内在用户统一身份认证及授权管理领域,主要关注 4 个方面(4A管理)):
集中账号管理(Account)、集中认证管理(Authentication)、集中授权管理(Authorization)和集中审计管理(Audit), 简称 4A 管理。
后来发展了 IAM(Identity and Access Management,即身份识别与访问管理)的相关技术,在云计算等领域应用广泛。整体来说,不管是 4A 还是 IAM 还是未来可能的其他技术方案,都可以归纳为『统一身份治理』的范畴。本文基于『统一身份治理』的概念提出了统一身份管理系统(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。两级账户体系将账户类别分为组织实体和个人实体两类(详见下文用户分类)。个人实体可以从属于组织实体(可以从属于多个组织实体),也可以不从属。个人账户体系和组织账户体系在云平台内享有的权限是不一样的,虽然大部分功能和服务两个体系的实体均可独立使用,互不干扰,但部分功能和服务有所不同。
平台级 SAAS 模式账户体系应遵循以下几个基本原则:
类似于 RBAC 原则,平台的权限体系采用 OS-RBAC 的概念:
『权限标识』示例:在企业CRM系统[1]中,在2019年3月5号以前[2],对百度科技[3],研发中心[4],在广东区域[5]的所有人事档案[6]拥有只读权限[7]。
为简单起见,我们将不遵守『从属关系隔离原则』,即用户实体与组织实体的从属关系与业务系统无关。系统涉及的实体类型有:
3.1 与组织实体强关联的实体
基于『组织实体隔离原则』,这类实体类型不能脱离组织实体独立存在。
由于组织架构不能脱离组织实体单独存在,因此当用户实体绑定组织架构时,该用户实体必须隶属于该组织架构所从属的组织实体。同理可知以下从属关系遵从同样的约束——即每对关系的两个实体对象必须属于相同的组织实体:
3.2 与业务系统强关联的实体
基于『业务系统隔离原则』,这类实体类型不能脱离业务系统独立存在。
基于以上各项原则,实体类型又分为以下几种情况:
基础信息,主要针对个人实体和组织实体,如企业工商信息、通用信息等要满足灵活扩展的需求,实体的类型种类繁多,随着业务场景的变化,信息结构的变化也可能比较频繁。在技术上建议采用以下两种方式应对:
EAV 即 Entity(实体)-Attribute(属性)-Value(值)数据模型,将传统的 ORM 映射模型——即实体属性与数据库表字段一一对应的模型,变换为实体属性与数据表的行记录一一对应的模型。EAV 模型大大增加了数据映射和相关业务逻辑的复杂程度,但是具备高度的灵活性,能够满足随时变化的信息结构,满足动态变更的实体结构、满足字段级权限控制、满足字段级数据版本历史等功能。
其中的代表便是 MongoDB:一个介于关系数据库和非关系数据库之间的分布式文件存储数据库产品,在 CAP 理论中属于 CP 范畴,支持松散数据结构,支持复杂的混合数据类型,支持 JSON 和文档存储。采用此方案的优势比较明显,除了能够满足 EAV 模型所具备的大部分功能外,还大大简化了技术复杂度,支持分布式部署,推荐采用此方案。
平台的信息主要分为基础信息和业务信息两大类。基础信息分为个人实体信息和组织实体信息,主要描述实体的基本信息、通用信息,与业务相关性不大,例如姓名、性别、身份证号码、手机号码、企业通用信息、企业工商信息等。业务信息由各业务系统自行管理和维护,UIMS 不涉及。
实体类别 | 信息类别 | 信息范围 | 备注 |
---|---|---|---|
个人信息 | 基础信息 | 昵称、性别 | 默认公开 |
个人信息 | 基础信息 | 身份证信息、籍贯、性别、出生日期、学历、工作履历、电话号码、通信地址、照片、银行卡号 | 须用户授权收集和公开 |
个人信息 | 业务信息 | LBS数据 | 须用户授权收集和公开 |
个人信息 | 业务信息 | 用户移动终端的设备信息,包括IP地址、Mac地址、操作系统信息、设备型号、识别码等 | 须用户授权收集和公开 |
个人信息 | 业务信息 | 用户的行为信息,包括操作记录,cookies,通过平台编辑或传送的文字、图片、语音或视频信息等 | 须用户授权收集和公开 |
个人信息 | 业务信息 | 用户喜好、特长、手工标签、自动标签、社交互动信息等 | 须用户授权收集和公开 |
组织信息 | 基础信息 | 组织工商信息:名称、法人、营业范围、注册日期、注册资本、通信地址、工商注册号、公司类型、纳税人识别号 | 默认公开,自动审核 |
组织信息 | 基础信息 | 组织介绍、品牌介绍、微信公众号、企业官网、对外联络电话、客服电话 | 默认公开,须人工审核 |
组织信息 | 基础信息 | 企业资质、股权结构、对外投资、工商登记变更记录、企业年报、公司发展历程、行政许可 | 须组织授权收集和公开 |
组织信息 | 基础信息 | 核心团队和成员、融资历程、核心产品、公司规模、知识产权 | 须组织授权收集和公开 |
组织信息 | 基础信息 | 组织架构、组织成员档案、司法风险、法律诉讼 | 须组织授权收集和公开 |
所有与信息收集、储存、处理及数据安全有关的书面政策,应当出具《隐私政策》并进行声明。部分组织信息由于可在网上公开查到,且是法定必须公布的信息,因此可以默认公开。
基于两级账户体系,建立云平台付费授权机制,针对用户账户和组织账户进行独立授权。根据产品的商业策略,可执行灵活的付费模式:
UIMS 应提供一个组织实体注册登记的流程,允许组织主动提交基本信息,开户入驻平台。此外,应提供在管理后台手工录入组织开户的功能。
分为个人账户实名认证和组织账户实名认证,尽量通过技术手段自动执行实名认证的审核过程,减少甚至取消人工干预。UIMS 应提供实名认证的功能和流程。
资质审核分为两部分:一是部分实体实名认证过程中的人工核查;二是对实体提交的额外资质进行技术或人工审核。
基于『从属关系隔离原则』,个人账户应在具体的业务系统中绑定组织账户,绑定过程分为两种类型:一是由组织管理员手工创建的从属个人账户,另一个是个人账户申请加入某个组织。业务系统应该提供此功能和流程。例如,个人注册帐号后,可主动登记绑定组织,对已注册登记的组织则要该组织管理员审核,未在系统中注册登记的组织,则始终处于待审核状态。
允许个人账户解除与组织之间的从属关系。解绑分为两种情况:一是个人账户主动解除关系,二是组织管理员解绑、解雇或清除雇员(个人账户)。其中第一种个人解绑的,应当由组织进行审核批准,个人申请解除绑定关系,组织进行审核,但是是否需要审核,应交由具体的业务系统自行决定。
雇佣(从属)关系分为直接雇佣与间接雇佣关系。例如保安员在某保安公司入职(直接雇佣),在某物业作保安(间接雇佣)。考虑两种办法标识间接雇佣关系:
分为个人账户的注销和组织账户的注销。UIMS 应提供相应的页面完成账户注销的操作。
原则上拒绝私有化部署,但对于特定的客户,考虑私有化部署。私有化部署须考虑版本升级问题,在软件架构设计时,尽量遵循业务系统和技术系统分离的原则,并抽离公共模块,最大限度为私有部署的版本提供升级服务。
总体来说,统一身份管理系统要做的事情有这么几件:
转自:https://www.jianshu.com/p/990d8acfdb69
参考:http://www.ruanaaly.com