上周带领大家初步了解统一身份管理项目、一些常见问题分析身份安全 | 统一身份管理如何实现?实践出真知!今天具体讲讲统一身份管理项目的落地实施步骤。
IAM统一身份管理平台落地,不单单是系统集成这么简单,完整的项目落地,包含前期的调研,需求确认、方案设计(规划统筹结合客户实际情况给出合理的方案),具体功能实现、集成联调、上线、以及平台上线后的运营及推广办法,另外针对不同的行业,调研的侧重点可能不一样,都需要有针对性的设计相应的关注点、从系统调研结束,到功能需求的实现落地,到功能测试联调,上线,试运行等一系列工作,通常这个项目持续周期在12—16周区间。
IAM项目实施分工合作界面主要如下:
需求调研
IAM项目实施,清楚的理解客户的需求是项目成功的关键,同样需求调研是对接每一个应用系统必不可少的一个环节,需求得到清晰的理解,才能保证项目顺利进行、直至成功的落地,从而保证项目达到客户预期,完整的交付及验收。
IAM项目的需求调研一般包含如下内容:
基本信息:
管理流程、网络环境、安全标准等IT现状调研。
企业IT用户总数大概多少(使用单点登录系统的用户总数)
企业IT用户类型有哪些?(如内部员工,供应商,合作商、外部用户、互联网用户等)
企业是否有权威数据来源(如EHR、主数据管理等系统)?
企业权威数据来源是否有对外数据接口?
企业是否使用LDAP/AD域进行用户帐号管理?
企业是否有用户帐号管理制度、流程?(如用户增加、修改、锁定、删除等)
企业是否有内部门户网站?如无,是否需要建设简易内部门户?如有,是否需要集成单点登录系统?
企业是否需要实现移动设备上的应用系统单点登录?
企业需要什么类型的强认证方式?(如短信、二维码、动态口令、数字证书或者其他等)
企业相关IT基础设施描述(如数据中心数量,位置,是否有专线,专线带宽多少等)
企业是否需要对应用系统的帐号进行集中自动化管理?(如统一创建、修改、禁用、注销等)
详细信息:
应用名称、用户数量、产品厂商、集成商、
使用用户群(如内部员工、供应商、经销商、外部人员、临时人员等)、
用户使用接入方式(B/S、CS、移动端)、自主开发/商务套件、能否进行改造、
部署环境(如单机房、多地机房、Saas应用)、
开发语言(系统开发语言,如Java,.Net,PHP等)、
数据库类型和版本单机实例/多机集群架构(例如系统考虑到高可用,同时安装了多于一套的实例)、
系统用户库(如本地数据库存储、外部数据库存储、AD、外部LDAP存储、本地LDAP存储等)、
账号命名规则(如使用工号、姓名全拼、姓名拼音首字母、随机几位字符等)、
密码规则(如最少几位数字、最少几个字母、最小长度等)、
账号增加(是否需要为用户在应用系统上创建账号)、
账号修改(是否需要为用户在应用系统上修改账号相关信息)、
账号禁用(是否需要为用户在应用系统上禁用账号)、
密码同步(是否需要为用户同步密码到应用系统)、
账号开通方式((纸质、邮件、系统申请))、
应用是否存在账号管理接口(系统提供webservice接口实现账号添加,删除禁用,修改密码功能)、
是否需要单点登录(一次输入账号和密码后,无需再次输入即可登录多个系统)等。
需求调研需要明确企业权威数据源及下游各个系统集成到何种程度,及下游应用系统可改造的程度,以及是否存在特殊的需求及场景。
在需求调研阶段,需要输出的文档交付物:《用户需求说明书》,同时可以先行准备应用系统的开发与集成标准规范,便于在第二轮的调研中更好的和客户及集成厂商明确对接形式,各方职权,分工等。
功能设计
项目的功能设计与前期的需求调研是环环紧扣,这两部分是紧密相连,在客户的需求明确后,接下来需要进入项目总体功能设计阶段,在这期间要出具《项目设计规格说明书》。
方案设计阶段通常涉及如下交付物:
《详细设计说明书》
《数据库设计说明书》
《接口设计说明书》
《技术标准与规范》
《数据库设计规范》
《二次开发说明》
《数据同步及功能说明》
《安全管理文档及规范》
在功能设计阶段通常包括需求的原型设计、应用系统的集成方案等,对于统一身份管理项目需要制定并出具统一的规范,平台提供系统接入标准,各应用系统遵循标准接入。
其中包括:
应用集成指南
系统架构规范
数据定义规范
系统帐号供应接口规范
认证规范
实施开发
统一用户管理
统一用户管理(简称IDM)主要为企业提供集中的用户存储目录,其中包括上游数据源获取,下下游数据供给,主要同步内容包括,组织、岗位、用户、角色等基本信息,通过集中的用户信息供给,保证数据在下游业务系统的高度一致。
IDM和应用系统的集成,主要在权威数据源同步和下游系统数据提供,企业统一用户管理最终的落地,首先需要明确数据源来自哪里,多数企业建立有自己的HR系统,建议企业以HR系统作为权威数据源,对于部分客户存在多数据源的情况,IDM需要分情况对待,实现多数据源的对接,此时需要注意的是多数据源情况下要保证用户唯一性,对应企业暂无权威数据源的情况,也可以直接以IDM作为数据源,企业提供用户、组织的基础信息平台上线初始化到IDM,后续所以的变更操作在IDM进行,由IDM把变更信息同步至各个应用系统。
打通企业上下游系统的对接,最终实现用户全生命周期自动化管理,从而避免管理员过多的手工干预,在保证数据准确性的同时提高效率。
统一身份认证
实现用户的集中存储是实现用户统一认证的前提,平台实现了用户的”注册”,即可开始对接用户的统一认证工作,一般统一认证单点登录基于OAuth、SAML、CAS等认协议,统一身份认证平台(IAM)提供标准的接入方式(api、SDK等)为应用系统提供统一的认证方式和认证策略,通过应用系统的单点登录集成,实现用户一次认证,网内通用,即:用户经过统一身份认证系统认证后,无需再次登录即可访问其具有访问权限的应用系统。
应用系统的单点登录集成过程中,不同的应用系统可能支持的协议不一样,平台需要提供多种协议便于应用系统接入,另外针对不同开发语言的也需要有相应的支持。
集中行为审计
IDM身份管理提供了一个集中的存储中心以日志的形式记录用户所做的所有操作。审计人员、安全管理人员可以随时查看这些记录用户、系统和应用的日志信息。
IDM的审计功能可以记录所有用户帐号管理的行为,因此,企业用于准备和实行审计的人力、时间和财力都会有很大程度的减少,从而也会加快对审计人员的响应速度。
审计系统负责采集审计日志,进行格式化,并将审计日志存储在数据库中,供报表展现。
被审计的系统包括:SSO系统、IDM系统,以及应用系统。应用系统如果没有针对安全时间的审计日志,可能需要对应用日志进行调整。
今后可制定应用审计日志规范,对于新开发应用,要求按照日志规范的格式输出日志,以便快速方便的与审计系统集成。
审计系统将每条审计日志解析成如下字段:
1)Who:谁
2)What:什么事件
3)On What:在什么设备
4)When:什么时间
5)Where:在哪里:
6)Where From:从哪里
7)Where To:到哪里
测试验收
需求功能开发完成,往往伴随的只是开发人员自测完毕,此时还需要测试团队的介入,进行专业全流程的测试,完整的测试是对交付项目质量一个验证,有效的测试可以及时发现前期需求功能实现是否存在问题,严谨的测试,才能保证项目上线质量。
项目中的测试需要多轮测试,包括单元测试、整体测试、业务联测及UAT测试、性能测试。
单元测试通常为开发阶段开发人员最功能自行测试,检测逻辑、代码、功能是否合理、可用;
整体测试(全流程)是把完整的客户业务场景进行串联,从整体应用环境上进行测试,看功能是否贯穿满足客户业务;
业务联测(UAT)需要客户方业务人员共同参与,模拟真实业务场景,最终验证是否具备上线验收资格,需要得到客户的签字确认。
虽然统一身份管理项目不像主数据治理、业务流程再造项目那样具备严格的行业特征,需要实施人员具备很强的业务熟悉度与理解力,但并不代表统一身份管理项目就不需要对客户的业务场景进行深入了解,整理分析。
除使用高质的平台工具外,与客户之间的协调配合、充分调研、需求封闭、加强测试、快速上线等环节一个都不能少。
项目启动之后,做好需求调研准备工作,需求调研计划准备(调研问卷模版、调研方式、时间计划)充分,主要包括对客户行业背景,项目痛点,项目范围,边界及客户的期望进行深入了解,将项目中客户的需求清晰化,例如应用系统集成是否实现账号统一管理和单点登录两部分,应用系统对于数据同步的要求是全员同步还是部分用户同步。
在需求确认过程中除了客户的常规的业务场景之外,特殊业务场景也需要明确,例如客户是否存在一人多组织,多角色、多岗位等情况,用户离职返聘账号是否新开还是沿用之前的账号等等。
充分细致的需求调研可以避免后续项目需求的扩大,甚至出现落地效果与客户实际业务存在偏差,进一步再次调整对接。
在需求调研阶段对客户的需求,项目的范围、边界进行锁定,在项目进行正式实施前必须和客户明确接下来项目落地的范围,该过程需要得到客户的确认(签字、邮件等形式)如果对于客户集成范围存在待建系统,则需要与客户明确相关风险,明确本期范围,防止后续需求蔓延扩散,保证项目交付不超期。
在实际项目实施落地过程中,会存在各种各样的问题/风险,例如客户系统无法改造,、架构技术等等,不同的情况,对应统一身份管理系统来说面临的解决办法存在不同形式,对于实施交付团队而言需要在平时的项目中沉淀出最佳实践及复用代码等方法,可以较为稳定的实现应对。
如果是由于产品层面或难以实现的需求,而客户需要快速上线,在项目过程中提前暴露出来,不管是实施过程中技术,商务问题都需要尽早暴露出来,请求相关技术人员,商务支持协助。
测试是对开发人员交付物质量的检验,测试的结果决定了项目上线节点,测试不仅仅是对产品、功能、性能方面的验证,更是对客户需求把握的考量,需要对需求、业务场景深刻理解。
对应测试过程中风险的问题,及时的暴露出来,防止后续上线期间因处理测试出来的问题影响上线进度。
测试意味着对项目质量负责,客户是否愿意继续二期,其中重要的一方面是源自于对系统质量的信任度。
统一身份管理项目落地交付,在整个项目中或多或少都会遇到问题,项目组一定要及时总结,并且定期召开项目复盘会议,进行相关的分享交流,沉淀项目过程中经验和教训。