关注嘉为科技,获取运维新知

权限集中管理是统一身份管理关注的主要内容之一,由于企业应用建设的自身历程不同,权限设计与实现也必然存在差异,针对集中权限管理的设计和实现带来了不小的挑战,本文根据多年的实践经验,就统一身份管理的集中权限管理的设计与实现给予设计建议。

一 问题背景

随着信息技术和网络技术的迅猛发展,企业内部的应用系统越来越多,为此,为减少用户访问的麻烦,提升访问的便利性和体验,众多企业采用了统一身份管理的方案来解决该问题。

就企业的统一身份管理,业界提出了相应的标准,即4A标准,分别是集中帐号(account)管理、集中认证(authentication)管理、集中权限(authorization)管理、集中审计(audit)管理 。

然而众多企业在实施过程中仅做到集中账号管理、集中认证管理、集中审计管理。

究其原因,一是集中权限管理对应用系统各方的改造工作量较大、成本高,二是由于各应用系统的权限设计模型不尽相同,在集中权限管理的设计上有一定的难度。

针对统一身份管理中的集中权限管理的需求与现状,总结我们多年统一身份管理项目实施的经验,我们梳理了一种复合的权限模型,以满足不同层次的权限集中管理需要。

二 权限管理需求的三种模式

首先,我们看一下在统一身份管理过程中的权限管理需求,经过梳理,我们认为权限管理可以分为3个层级需求,其分别如下:

1、账号级权限管理需求

账号管理是统一身份管理的基础与核心。账号级权限管理是账号管理的一部分,其需求的定位即为为用户提供应用的账号,通过控制用户的应用账号,从而控制用户对于某一应用的权限。

该种需求对权限管理的粒度较粗,但改造的成本最低,改造工作可以在应用系统与统一身份管理平台的账号对接中同步完成,不涉及额外单独的改造成本;

但该种方式需要应用管理员配合进行用户的授权,如需做到功能和数据细粒度的授权,用户权限管理的维护成本较高。

2、角色级权限管理需求

角色级的权限管理是指采用基于角色的权限管理,统一身份管理平台与应用系统共用一套或多套角色。

应用系统就各角色预设细粒度的功能与数据权限,统一身份管理平台通过对账号应用系统角色的管控,从而实现对用户在应用系统中权限的控制。

3、功能按钮与数据维度级的权限管理需求

功能按钮与数据维度级的权限管理,则是需要在统一身份管理平台可以直接配置每一个账号在每一个应用中的细粒度权限。

其可以监督便利性与控制粒度要求,整个过程中无需应用管理员参与,但对应用系统的配合改造要求较大。

三 权限管理设计

不同的权限管理需求模式,适用于不同的业务场景和应用系统。

由于应用系建设自身历程发展的原因,在企业的集中权限管理过程中,往往是多种模式并存,由应用系统是否可以改造和可改造的深度确定。

因此,针对权限集中管理的设计,我们构想方案如下:

1、 账号级权限管理

账号级权限管理通过用户账号生命周期管理同步实现,通过控制用户应用系统中账号的开通、启动、停用等从而实现对用户访问应用系统权限的控制,实现“大门级”的权限管控。

2、 角色级及细粒度功能权限级

针对角色级和细粒度功能权限级的控制,可以统一考虑,在统一身份管理平台上构建基于RBAC模型的权限管理功能,将各应用的数据权限、功能权限注册到统一身份管理平台,并通过角色进行权限集的管理,而用户则分配到角色,其整体的模型图示如下:
统一身份管理中的权限管理设计_第1张图片

但对于不同权限管理层次的应用,应用的改造深度不同,对于角色同步的改造,较为简单,只需在用户同步的时候增加角色同步。

但对于功能粒度级的改造,则需要针对鉴权模型进行调整,其实现逻辑可设计如下:

统一身份管理中的权限管理设计_第2张图片

通过细粒度的权限控制,不仅可以实现权限的集中控制,还可实现企业级的权限审计,有效降低企业应用越权使用风险。

企业统一身份的建设过程中,究竟采用何种粒度的权限集中管理,要根据企业的应用的改造难度、应用数量以及应用的业务价值等方面综合评估,针对不同的应用,可根据实际需要采用不同粒度的管理方式,逐步推进集中权限管控。