当前我国各领域正在加速向数字化、移动化、智能化发展,大力投入信息化建设与数字化转型已成为企业的共识,但对于很多企业而言,组织信息环境庞大复杂,业务场景变化频繁,给身份管理与信息安全管理带来很大挑战。随着信息化系统数量逐渐增多,每套信息系统的身份管理、认证、权限等均各自独立建设,不仅维护成本高,且容易形成信息孤岛,从而为管理及运维带来极大难度,影响企业运行效率的同时,还存在安全漏洞与隐患。
IDM身份管理系统为解决企业内部多系统之间的用户信息不一致而开发,主要定位于解决企业在5A功能上的需求,即:Account账号管理、Authentication认证管理、Authorization授权管理、Audit审计管理、App Control应用管控五个方面的实际需求,进而规范用户身份信息,保证系统安全,提高工作效率。
总体说明主要包括对于整体的业务需求、产品的功能架构以及产品的认证架构等进行介绍。
IDM身份管理平台由统一用户、统一认证、统一授权、统一审计、应用管控五部分组成,产品中既包括传统5A认证中的功能,还包括操作任务、流程审批、运行监控统计等功能。IDM身份管理平台技术架构图如下所示:
1.IDM管理由统一用户、统一认证、统一授权、统一审计、应用管控五部分组成,产品中既包括传统5A认证中的功能,还包括操作任务、流程审批、运行监控统计等功能。
2.账户管理、应用配置、操作任务、监控统计、系统管理等功能,帮助用户实现组织、人员、岗位管理、多关联关系的权限管理、用户创建、操作、流程审批等行为的审计分析、追溯管理等。
3.统一认证主要实现统一身份认证,集中管理用户信息,实现单点登录机制,BPM工作流主要实现对创建账号、授权管理时的流程审批功能,同时对用户访问的日志记录进行审计和分析。
4.接口层实现对底层资源信息的收集和管理,也可以跟外部组件的信息交互,如:数字证书、第三方应用等,产品预置跟ESB集成的集成机制,同时提供数据同步接口,实现数据间的抽取、转换、分发等操作。
整体的认证架构具体如下:
IDM单点登录分为三种方式:CAS认证、Oauth认证、Open API认证:
1.CAS认证:CAS原生认证方式根据不同平台语言( JAVA/.NET/PHP )提供不同认证模式,通过参考给出的配置教程,在需要单点登录的系统中进行Jar包替换即可。
2.Oauth认证:Oauth认证方式为根据Oauth协议,采用多平台关联登录方式,IDM作为Oauth Server(客户端),用户向IDM注册,IDM安全地获取用户的授权,实现验证服务器与应用服务器的交互,获取系统里的基本信息进行认证。
3.Open API认证:IDM平台提供认证的Open API,通过对用户名和密码加密传输的方式完成认证,可以满足客户端、APP、小程序等灵活认证的应用场景需求。
在实际的项目上,所有的内部产品都是基于IDM的进行的CAS认证,而通过Portal门户进行单点登录的退出时,其他产品不能响应当前的账号退出状态,还处于登录状态,需要手动的到各个产品进行退出,所以需要通过对于产品的配置实现Portal门户退出之后,其他产品刷新后认证退出。
在本章中将对于统一账号的具体实现方式进行详细得介绍,具体将分为前期准备、实现思路以及过程梳理三个方面进行展开说明。
首先对IDM、ESB等产品进行调试,使用最新版的避免出现产品问题,其次先行熟悉UMC的相关操作,了解IDM认证方式和具体实现代码以及ESB的配置文件等等。
单点退出的机制如下:
1.CAS工程作为webSocket服务端,Portal产品与其他产品都作为webSocket服务端;
2.Portal产品退出CAS时通过webSocket连接将信息共享到其他webSocket客户端;
3.其他系统通过拦截器获取到CAS的退出信息,之后退出当前系统的登录。
在上文已经对本次工作的需求做出了阐述,在拿到需求之后,先整理出大体的实现思路,有了一个大体的实现思路之后,再根据实现思路进行更为具体的实现过程的设计,本次开发工作的大体实现思路如下:
1.Portal产品的配置:修改产品的web.xml文件,增加SloWebClient配置;
2.IDM产品的配置:修改产品的web.xml文件,增加SloWebClient配置,修改cas.properties配置;
3.接入配置调整:增加SloWebClient配置,重新生成调整后加载接入配置;
4.登录测试单点退出。
通过上文已经对于整体的实现步骤进行了相应的梳理,下面对于单点退出的具体实现过程进行详细得介绍。
本次单点退出配置需要进行IDM产品的配置调整,具体如下:
1.Web.xml调整。
2.casproperties配置。
本次单点退出配置需要进行Portal产品调整, Web.xml调整。
具体如下:
首先进行Nginx的调整,需要使用UMC云管理平台,打开集群管理->接入配置->Niginx.conf查看。
具体配置如下:
当nginx.conf修改之后需要对接入配置进行重新生成并加载。
打开UMC的租户管理->租户配置->对应环境->接入配置->自动补全。
对于IP和端口进行更改。
点击查看配置之后进行部署加载。
完成上述配置之后,便可进行单点退出的测试,在本章节中,将对产品重启产品登录以及退出测试进行详细介绍。
打开UMC的租户管理,在对应环境上进行重启产品(IDM与Portal)。
之后,编辑保存进行容器创建,重启产品。
在上述的所有操作完成之后,便可以进行产品的登录,登录Portal产品与IDM产品。
登录之后便可以进行单点退出的测试,首先进行Portal的退出。
Portal退出之后,直接刷新IDM的页面。
刷新之后IDM产品也回到了登录的页面。
可以看出单点退出已经验证成功。
通过本次单点退出的开发,使自身有了一定的感悟和提升,现从过程总结、难点攻克以及后续思路几个方面进行总结。
内部系统的单点退出配置主要过程如下:
1.Portal产品的配置:修改产品的web.xml文件增加SloWebClient配置;
2.IDM产品的配置:修改产品的web.xml文件增加SloWebClient配置,修改casproperties配置;
3.接入配置调整:增加SloWebClient配置,重新生成调后加载接入配置;
4.登录测试单点退出。
在本次工作的历练,让我的能力有了很大的提升,同时在配置的过程中也是遇到了一些难点,现从以下几点进行阐述。
1.cas.properties文件调整:在刚开始调整配置的时候没有调整cas.properties文件中的配置,之后在与同事交互后发现了这个问题并加以解决。
2.接入配置:刚开始配置了其他的文件但是没有修改Nginx.conf配置,导致SloWebClient一直无法被调用,后来在查看日志之后发现了这一问题,调整了配置加以解决。
通过开发配置的过程对实现方式进行了总结梳理,在进行实际项目的开发和配置时要结合业务场景,在使用过程中加深产品了解同时深化业务理解,出现问题时要及时的沟通交互,及时反馈处理问题。
在实际项目中需要和不同的系统厂商集成交互,需要不断提高自己的沟通能力,以及对于产品、方案的理解等,同时对于问题的分析也要更加全面和透彻,通过对问题的仔细分析反复揣摩进而解决,在这种不断交互的过程中逐渐去打磨自己,让这种思考方式形成一种习惯,也会为后续工作打下良好的基础。