本文总结了统一身份管理项目实践中的常见问题、项目解决方案、最佳实践输出等内容。
随着信息技术的发展和信息化建设的进步,各个企业在信息化建设上不断投入运行应用系统、商务平台、系统设备等,随着系统的加深投入,因不同时期为不同部门分别建设的各类信息化系统在技术架构与应用模式上差异明显,信息化建设逐渐遇到了新问题。
例如由于系统、设备、服务器众多,出现用户管理混乱、越权访问、误操作、滥用、恶意攻击等现象,为解决这一问题,统一身份管理需求出现,公司作为SOA综合集成产品及解决方案的提供商,统一身份管理是主打方案之一,本文主要分享在各行业统一身份管理项目交付中沉淀的最佳实践。
一、相关定义理解
统一身份管理项目主要实现统一用户管理、统一认证管理、统一权限管理、统一安全审计功能,达到多个应用之间的用户、认证统一管理、高效集成、安全监管,提升企业信息化应用能力。
许多人在这个项目与4A项目、主数据管理项目上存在一定的理解误区,在讲述解决方案之前,先对这两个歧义进行说明。
1. 与4A概念的关系
4A是指:认证Authentication、账号Account、授权Authorization、审计Audit,中文名称为统一安全管理平台解决方案。即将身份认证、授权、审计和账号(即不可否认性及数据完整性)定义为网络安全的四大组成部分,从而确立了身份认证在整个网络安全系统中的地位与作用。
在软件项目中统一身份管理也被称作为4A项目,解决问题及实施方案包括4A中提到的内容,只不过很多时候对于不同用户的需求场景与个性化业务,会在4A实施内容范围上多实现一些功能,例如开发简单的工作台门户,展现系统集成成果或与不同的集成类平台产品结合,打造不同的解决方案等,加深项目的价值与作用。
2. 与主数据管理的区别
主数据管理是解决企业经营中各类主数据在不同系统中的名称、编码等信息不一致现象,保证企业内主数据单一视图的准确性、一致性及完整性。
两者在企业IT架构的层面、管理内容、功能、业务交互等方面都具备一定的差异。
在企业IT架构中统一身份管理项目属于IT治理层面,注重技术架构的实现;主数据管理项目属于数据治理层面,注重业务、数据架构的实现,两者从不同层面、维度分别作为基础支撑为更高层次的服务治理、业务治理奠定基础。
在管理内容方面,统一身份管理企业内部的用户、群组、角色;主数据管理企业内部的组织、人员、岗位,除此之外还管理其它如:客户、供应商等主数据。
在功能方面,统一身份管理具备统一身份认证功能,弱化案例功能,很少或不预置管理案例;主数据管理不具备统一身份认证功能,提供基础数据管理样例。
在业务交互方面,统一身份管理主要与信息中心人员进行交互;主数据管理主要与业务人员进行交互,注重数据、业务的梳理。
二、常见问题分析
统一身份管理项目属于IT整合阶段的集成类问题,谈到集成类问题,企业信息化建设的历史原因不可避免,为解决运营管理问题由下至上无规划的建设,造成不同时期、不同厂商、不同技术、不同平台、不同规模的系统杂乱无序的构建,随着系统增多到一定程度,新一阶段的信息化问题一触即发,具体表现如下:
1. 业务处理方面
用户处理业务必须记住多个系统的用户名及密码,容易遗忘;
处理一个业务需要频繁登录与切换不同系统,繁琐且效率低下;
信息分散难以获取,缺少有效整合,用户难以进行信息综合利用;
2. IT运维方面
系统用户名/密码遗忘现象严重,IT维护难度及成本增大;
随着用户名/密码增多,企业缺乏统一的账号安全管理策略;
缺乏统一授权及访问审计机制,非法操作无法快速定位追溯;
三、项目解决方案
对于统一身份管理项目主要使用IDM身份管理平台或4A系统进行解决,通常情况下除了使用单一产品,还会搭配集成套件中的其它产品更好的辅助完成项目,如ESB企业服务总线,共同打造统一身份管理项目。
1. 方案总体介绍
通过统一用户管理及认证体系,建立统一用户资源库,对企业信息系统用户进行合理分类,实现用户身份和权限的统一认证与授权管理,并对企业应用集成的运行环境、服务互操作、数据交换和通用服务等全过程进行统一系统监控安全审计,满足对信息系统统一用户管理、统一身份认证、统一授权管理以及安全审计的要求。
具体包括IDM身份管理平台、ESB企业服务总线,方案体系架构如下图所示:
使用IDM身份管理平台主要实现企业内部用户、群组、角色统一管理、认证管理及多关联关系的权限管理、内置工作流功能实现对创建账号、授权管理时的流程审批功能,审计功能实现行为的审计分析、追溯管理。
ESB企业服务总线在统一身份管理方案中主要作为提供数据同步接口、流程触发、实现数据间抽取、转换、同步、分发的工具。
2. 具体实施步骤
统一身份管理项目的顺利落地不只是需要平台系统、规划方案,还需要完备项目实施方法论,例如前期1轮至2轮的需求调研、调研结束后的功能设计、对接标准规范的设计、对应场景需求的实施开发、最终成果的联测验收等一系列工作,根据不同需求及项目实施难以程度,通常周期在4-6个月区间。
(1)需求调研
需求调研是每个集成类项目必须要进行的一步,正确有效的需求调研是项目后续顺利实施开发,保障项目验收首要环节。
统一身份管理项目需求调研工作主要分为两轮,第一轮调研为企业内部情况调研,包括项目具体涉及信息化系统情况:厂商、语言、数据库;集成与单点配置系统需求、各部门涉及业务权限等内容的调研,确定统一用户的源头系统。
过程中出具系统需求规格说明书、开发与集成标准规范等初稿。召开项目启动会召集各方统一目标、项目协作方式,明确相关负责人,之后进行第二轮调研,包括内部客户与外部被集成厂商,明确对接形式,各方职权等。
(2)功能设计
功能设计与需求调研是一脉相承的,两者具备一定的衔接性,在第一轮需求调研结束之后,就可以着手开始进行功能设计工作,期间要出具整体项目设计规格说明书,从实施设计中可以有效倒逼出需求是否正确或存在漏洞。
功能设计包括服务同步原型设计、集成标准设计等,对于统一身份管理项目需要制定并出具统一用户规范,包括:数据同步规范、数据分发规范;统一认证规范,如:JAVA认证、PHP认证、.NET认证等;如果项目中涉及到定制化开发功能,还需要根据需求出具客户定制化原型设计。
(3)实施开发
统一用户管理:
统一用户管理主要为用户提供统一集中账号(用户/群组/角色)的管理与分发,包括账户间的状态记录、关联关系、角色授权等,确保用户账户使用和管理的安全性。
统一用户管理的业务场景主要包括数据同步与数据分发,实现统一用户管理首先需要确定企业数据的管理维护者是哪个系统,通常以人力资源管理系统作为信息同步中信息的源头,也可以直接以IDM作为源系统,提供用户/群组/角色的基本信息、职位关联信息、账号变动信息等同步至IDM,再由IDM将统一管理后的信息分发至相关系统。
实现当用户基本信息发生变动时,其它系统中的信息随之进行相应的变动处理,而不需要多方操作。
1)用户同步
用户同步部分通常由数据源提供变动信息,使用ESB企业服务总线撰写同步流程,以获取数据源头的变动信息,对应的数据源系统按照统一同步接口标准提供全量或增量信息服务接口即可完成数据同步工作,同步的方式可以根据企业具体业务需求采用实时调用或定时轮询方式。
通常采用实时调用方式,即IDM统一身份管理平台提供变动信息的写入服务,数据源信息变动时,直接调用IDM自身服务即可;如集成系统无法进行实时调用,可采用定时轮询方式,由ESB企业服务总线创建定时同步流程,定时获取数据源系统的变动信息写入本地服务器,完成同步信息日志记录,之后从服务器读取该同步日志记录,将日志内变动信息同步写入IDM,生成对应的操作信息。
2)用户分发
用户分发也是统一用户管理的重要步骤,顺序为数据源—IDM—各业务系统,具体为账户信息从数据源同步至IDM并生成操作信息,IDM将操作信息打包成工作任务,这部分涉及到工作流审批,通常预置在身份管理平台中,由各环节负责人进行数据分发的审批操作。ESB企业服务总线创建分发流程,调用分发服务,实现数据信息的分发。
数据分发根据企业业务系统不同的情况、配合的程度分为采用不同的分发形式,常见的几种形式包括webService、中间表存储、数据库权限三种。
webService形式主要由业务系统提供服务标准的webService,供流程调用实现信息分发;
中间表存储形式主要由业务系统提供中间库、中间表及对应的存储过程,ESB写入服务,并调用对应的存储过程,实现信息分发;
数据库权限针对无法提供配合的业务系统,系统提供数据库操作权限,由ESB直接写入数据库操作。
3)统一身份认证
统一用户管理是统一身份认证的基础,实现统一用户管理后,即可开始统一身份认证工作,具体基于CAS认证方式对所有应用系统提供统一的认证方式和认证策略,通过单点登录技术,用户经过统一身份认证系统认证后,无需再次登录即可访问其具有访问权限的应用系统。
在统一身份认证工作中,基于客户不同的系统语言及业务要求,需要支持多种技术语言的认证协议,常见的包括Java、PHP及.NET认证。
统一认证与单点登录部分通常会涉及对相关功能的改造与开发,这时需要客户方技术人员、被集成厂商方技术人员进行一定的配合,通常统一身份认证需要与ESB企业服务总线配合协作,共同完成接口同步功能。
4)统一权限审计
统一权限管理为对用户对应业务系统的登录权限和业务系统操作权限进行管理,这些权限统一由IDM身份管理平台发起,包括用户、群组、角色、菜单的授权,ESB触发审批流程,对应权限负责人进行授权审批,审批通过后即可实现用户授权。
IDM中支持标准角色、实际角色两种典型的角色,标准角色用于制定统一的权限管理标准,标准角色与群组关联形成实际角色,对于资源(应用、菜单、页面、操作)可以授权到标准角色、实际角色、人员和组织。
统一审计管理操作,主要以日志的形式记录什么人、在什么时间、登录了什么系统、做了哪些操作,无论是同步至IDM的数据信息还是从IDM进行审批并分发至各业务系统的数据信息,都会通过日志的方式记录,相关技术或者运维人员可以在后台查看每一条操作记录信息,快速对问题进行追溯及查看。不只是操作审计信息,对于访问审计信息、数据审计信息都可以通过对应的日志、月表等形式进行记录查看。
(4)测试验收
测试是每个项目不可省去的环节,有效的测试可以及时发现功能问题,保证上线质量。
项目中需要多轮测试,包括单元测试、交叉测试、整体测试、业务联测。
单元测试为开发人员对开发的功能自行测试,检测逻辑、代码、功能是否合理、可用,测试需要连续成功3次以上才可通过;
交叉测试由不同开发人员对彼此开发的功能进行互测,避免当局者迷的现象发生;
整体测试为将业务功能串联,从整体应用环境上进行测试,看功能是否贯穿满足客户业务;
业务联测需要客户方业务人员共同参与,模拟真实业务场景,最终验证是否具备上线验收资格。
如果测试无问题,即可进行项目的验收准备,召开项目验收会议,签署验收协议。
四、最佳实践输出
虽然统一身份管理项目不像主数据治理、业务流程再造项目那样具备严格的行业特征,需要实施人员具备很强的业务熟悉度与理解力,但并不代表统一身份管理项目就不需要对客户的业务场景进行深入了解,整理分析。
除使用高质的平台工具外,与客户之间的协调配合、充分调研、需求封闭、加强测试、快速上线等环节一个都不能少。
1. 充分调研,避免反复
调研阶段一定要做到充分调研,最佳效果是在调研阶段对客户业务场景进行深入了解,将项目中所有已知或预测的问题全部清晰化,例如人员同步分发工作,对客户需要的数据源进行业务场景全面分析整理。
分析过程中除常规业务外,还要将特殊情况进行分析、调研,明确一人多岗、临时调派、退休/离职、二级单位等情况下,数据源如何分发至业务系统,相应出具集成标准规范。
充分的调研可以避免项目中出现成果与客户实际业务偏差,不得不临时调整对接业务的情况,保证项目的进度,避免中途反复。
2. 封闭需求,防止蔓延
调研阶段一定要封闭用户的需求,并使其明确项目进行中需求变更或蔓延带来的影响。
项目中会遇到项目开展同时伴随着客户应用系统构建的情况,这就涉及是否将待建系统算在或不算在本次实施范围内的问题。
正式实施前必须严格明确实施范围,若实施范围包括待建系统,则需要与客户明确相关风险及协调配合等事宜,并在计划中打好系统构建延期、厂商不配合等时间量,保证项目交付不超期。
若不算在内,则需要封闭需求并与客户明确本期范围,防止后续需求蔓延。
3. 暴露问题,及时求助
项目实施过程中,因为客户所用系统语言、架构、技术、处理业务模式、方法都不同,根据具体处理操作在统一身份认证实现上会有不同的形式,对于专业的产品及项目实施团队会在多个项目中沉淀出最佳实践及复用代码等方法,可以较为稳定的实现应对。
对于首次遇到的产品或难以实现的需求需要快速攻克,在计划中提前做好相关问题准备,实施中遇到技术难题需要尽早暴露出来,请求公司内部产品研发人员或技术人员支持协助,定位问题。
解决问题期间,项目现场人员在现场也需要推进其它事项、协调,为后面的测试、上线等工作打出余量空间。
4. 加强测试,快速上线
测试验收是整个项目最重要的一环,其成果直接决定项目验收进度,测试不仅检查产品的功能和性能是否好用,还需要对业务的满足性进行测试,通过测试倒逼设计是否合理。
测试工作并不是等到整体开发实施结束后统一测试,越早开展越好。对做完的功能及时测试,以最早的时间暴露问题,防止后续上线期间因处理测试出来的问题影响上线进度。
另外,评定项目是否成功或产生二期需求,很重要的一点是让客户是否真正的将系统用起来,使用的人越多说明系统对用户越重要,项目中要采用分阶段功能快速上线,保证实施2个月左右即可上线部分功能供用户使用。
5. 项目复盘,沉淀积累
在项目中遇到的问题一定要及时总结,定期复盘,并与相关人员分享交流,沉淀经验教训与最佳实践。
对于项目复盘的产出,不只是做事方法与实施方法论,还包括项目功能及集成认证相关代码的沉淀。统一身份管理项目是没有明确的行业划分的,不具备显著的行业特点,唯一产生差异的是不同用户的系统及集成认证形式。
随着项目的展开,接触业务的增多,可以对项目中所用的技术及对接方式整理出来,不断通过方法,模式,代码的积累,逐渐加快项目交付速度及提高项目成功率。
数据经济时代,数据治理、大数据分析等项目占据了企业内部建设的主要位置,一定程度上削弱了企业内部对统一身份的管理,统一身份管理做为企业信息化IT治理部分的基础,是每个企业信息化建设的必经之路,也会为后续信息化建设奠定基础,不与其它信息化建设手段冲突,同样应该被企业所重视。