
重庆石油天然气交易中心
重庆石油天然气交易中心自成立伊始就确立了IT建设能力自主可控的发展路径,交易系统从最初的外部采购逐步过渡到自主维护进而自主研发,在此过程中重庆交易中心建立了一支高效精干的技术团队。随着注册会员数和天然气成交量的增长,重庆交易中心一直在探索为会员提供更丰富的增值服务,并与交易形成协同发展效应,其技术团队也积极向会员提供信息系统开发、系统运维、网络安全、系统集成等IT类服务。重庆交易中心会员多为石油、天然气、化工相关产业链的大型企业,在对这类会员提供信息系统开发的实践过程中,我们发现大多数会员既有的信息系统在账号和权限管理的设计上存在共性问题。
现存问题
既有的信息系统围绕个人账户为中心设计权限管理模型,当企业部门层级较多或需要开放企业内部系统给外部用户(如企业的供应商)使用时,存在两个问题:一是各级部门和外部用户不能自主创建和管理属于本组织的账号,需要企业总部的系统管理员创建账号和赋权;二是仅靠企业总部的系统管理员难以高效管理数量如此多的账号。
这样的权限管理模型大致如下图1所示,在权限管理系统中通常存在角色的概念,一个角色绑定了一定的权限,当某个用户需要某一种类的权限时就将对应角色赋予这个用户。在大多数情况下这样的设计是满足使用要求的,但更适用于用户规模较小的系统(部门级别)和扁平化的用户体系(如微信、电商等对个人用户开放的服务系统),这样的系统可以由系统管理员或预先编程的固定处理逻辑对用户进行赋权。
图1. 以账号为中心的权限模型
但大型企业通常组织结构庞杂,除集团总部的各级职能部门以外,还存在数量众多的子公司孙公司等,一个员工可能在某一个部门任职的同时又兼任其他部门或者子公司的某些职务;不同的部门或子公司能够访问的业务系统不同,具有的操作权限不同,对同一类数据的访问权限也不同;而且通常情况下大型企业还会开放部分业务系统给设备供应商、材料供应商、施工外包企业等外部企业访问。此种应用场景下,因工作量大且需收集的信息庞杂,由集团的系统管理员对所有账号进行管理和赋权几乎是不可能完成的任务,需要一个能够分层级的,且层级内能自我管理的权限模型才能满足这样的应用场景。
改进方案
在权限系统中增加一个表示企业或组织的层级,系统级角色不直接赋予某个账号而是赋予某个组织;组织可以将自身具有的权限进行重新组合用于生成自己组织权限范围内的角色,并将角色赋予某个账号。如此使得每个组织内部的权限可由组织进行自我管理,集团的系统管理员仅需要管理组织级权限,管理工作负担大幅降低。其总体结构大致如图2所示。
图2. 加入组织层级的权限模型
但这个模型也存在两种场景无法满足:一是当某个用户身兼多职,属于多个部门时;二是需要给个人用户提供访问入口时,如企业的零售业务部门在运营一个在线商城时。
进一步改进
可以进行两项改进:一是一个账户号可同时被赋予多个组织身份;二是允许将系统级角色跨过企业的管理直接赋予一个账号。改进部分如图3蓝线所示。
图3. 多组织身份的权限模型
如此,用户登录时可自主选择使用哪个组织的身份登录,适用于集团公司内部同一个员工在不同的集团部门或子公司中兼任多职的应用场景;同时,也适用于个体账号的固定赋权逻辑,例如企业的零售商城注册了一个新用户系统会自动赋予购买商品类和支付类操作的权限。
综上所述,这种新的权限模型打破固有的以账号为中心的设计思路,将组织也作为可以赋予权限的对象;各级组织可以自主管理下属账号的权限,不依赖于系统级管理员的操作;账号可归属于多个组织,登录时选择自己的组织身份。这种模型适用于组织结构庞杂或需要开放内部系统给外部用户使用的大型企业。