IDM认证过程日志埋点说明
Posted 数通畅联
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IDM认证过程日志埋点说明相关的知识,希望对你有一定的参考价值。
科技飞速发展的时代,企业信息化建设日趋完善化、体系化,使用的应用系统越来越多,导致业务人员在办工时候,要分别登录各个业务系统来进行操作,这样会浪费很多时间。而公司实现了统一身份认证后,就相当于景区的通票,登录所有的应用系统时只需一次验证,之后就可以进入任何权限应用系统,这就是我们所说的“单点登录”。
通过IDM统一身份管理平台实现的各业务系统的单点登录,IDM中是通过CAS认证或者Oauth认证模式来实现,通过两个种不同方式实现不同的场景下的统一认证。
1整体介绍
通过IDM身份管理平台进行统一认证,保证业务系统可以进行单点登录。我们的产品可以根据CAS配置正常登录,也可以通过Oauth2认证登录,下面将分别介绍cas和Oauth两种认证模式。
1.1产品介绍
IDM身份管理平台满足对企业信息系统的统一用户管理、统一身份认证、统一授权管理、统一安全审计及应用管控的要求,能够实现各业务系统的统一登录和集中访问,实现用户身份和权限的统一认证与授权管理,为企业不同的业务系统提供统一的用户管理和认证服务。
1.基础信息管理:包括组织管理、角色管理、人员管理和外围人员维护(如:客户、供应商)。系统操作员可以录入操作信息,新录入的信息需要流程审核之后才能生效。
2.应用管理:包括应用配置和应用分组。对各应用系统的相关信息进行配置,可以设置不同分组,方便管理应用配置中的数据。
3.任务管理:对基础管理模块中的操作统一管理,可以进行提交、生成任务、审核等操作。
4.统一权限:对其他应用系统的数据资源、接口资源和功能资源信息及对应的权限进行管理。
5.统计分析:让客户从不同角度了解信息变化,页面使用echarts图表形式显示统计信息,点击图表会跳转到对应的功能模块或弹出过滤后的列表信息页面。
6.监控预警:对同步分发失败情况进行预警,还有对密码安全方面和认证方面进行监控提醒。
7.系统管理:对IDM系统的基本功能进行管理。
1.2功能介绍
CAS用于统一身份认证技术,Web应用系统提供一种可靠的单点登录解决方法,在实现统一身份认证过程中,一般CAS Server登录成功后只会给业务系统返回一个登录账号,但特殊情况需返回多个值,支持多种客户端,安全可靠。
Oauth认证是不会使第三方触及到用户的帐号信息,是一种不会被代码侵占的认证方式,通过认证平台登录账户成功后,会重定向业务系统的页面,调用oauth接口获取token和用户信息,从而使业务系统可以通过用户信息直接认证方式进行登录认证,这样就实现了Oauth模式单点登录模式,支持分布式部署,满足集团个子公司相互认证。
1.3需求介绍
通过IDM身份管理平台进行统一认证,保证业务系统可以单点登录。数通畅联IDM身份管理平台可以根据CAS配置登录,也可以通过Oauth2认证或者接口认证模式,本次采用新增一个接口方式登录:
1.另外,就是SSO这种调用CAS接口方式,在认证方法前需要通过token密钥才能调用登录认证方法,这种获取密钥方法没有进行日志追踪;
2.OauthProxyServlet分布式调用2次交互也需要进行日志追踪;
3.Oauth是有3次调用接口才能正常登陆的,目前只有最后登陆失败才能有日志,但过程中是没有日志追踪的。
2认证场景
认证方式分为:登陆界面CAS认证、分布式Oauth认证,原生Oauth认证。
2.1界面认证
IDM登录界面输入账号密码进行CAS认证,调用原生Oauth接口进行获取信息,最后进入轻应用。
2.2分布式认证
分布式认证:有集团和子公司时需要采用分布式认证进行登录。
在门户中点击轻应用图标调用SSO接口认证,调用分布式认证接口、分布式认证接口调用原生的Oauth接口、最后进入轻应用。
分布式认证:IDM登录界面输入账号密码进行CAS认证,调用分布式认证方式认证接口、分布式认证接口调用原生的Oauth接口、获取用户信息业务系统登录认证。
2.3原生Oauth
原生Oauth认证:没有其他子公司,只是做登录认证时,可以通过以下场景进行认证。
击轻应用图标调用SSO接口认证,调用原生Oauth接口进行获取信息,最后进入轻应用。
3实现思路
通过上述业务场景,对认证接口进行扩展,插入日志功能,以下是实现思路。
3.1SSO认证接口
业务系统通过SSO接口调用
通过SSO认证后调用原生的Oauth进行认证登录业务系统如图所示:
(1)第一步:业务系统轻应用进行调用SSO获取认证权限;
(2)第二步:通过认证权限密钥进casCilent认证;
(3)第三步:认证成功后根据Oauth第二步的code获取accessToken;
(4)第四步:根据accessToken获取用户信息,业务系统认证登录。
3.2分布式认证接口
1.通过IDM登录界面登录方式,如果有集团和子公司需要分布式认证:
(1)第一步:调用原生Oauth认证应用权限,被IDM登录界面拦截;
(2)第二步和第三步:调用IDM中的OauthProxyServlet进行分布式认证;
①第一步:认证成功后进行OauthProxyServlet的第二步,根据不同IP调用原生的Oauth接口根据code获取accessToken;
②第二步:根据根据不同IP调用原生的Oauth接口,根据code和accessToken获取用户信息,业务系统认证登录。
2.通过SSO认证后调用分布式认证登录业务系统如图所示:
(1)第一步:业务系统轻应用调用SSO获取认证权限;
(2)第二步:通过认证权限密钥进casCilent认证;
(3)第三步:认证成功后,进行OauthProxyServlet的第二步,根据不同IP调用原生的Oauth接口根据code获取accessToken;
(4)第四步:根据不同IP调用原生的Oauth接口根据code和accessToken获取用户信息,业务系统认证登录。
3.3原生认证接口
1.通过IDM登录界面登录,通过登录界面调用原生Oauth接口进行认证。
(1)第一步:调用原生Oauth接口获取应用权限,被IDM登录界面拦截;
(2)第二步:认证成功根据Oauth第二步的code获取accessToken;
(3)第三步:根据accessToken获取用户信息,业务系统认证登录。
2.Oauth通过3次调用复用CAS储存日志方式调用OnlineProfilesServlet。
(1)扩展OAuth20AuthorizeController、OAuth20AccessTokenController、OnlineProfilesServlet3个类;
(2)在这3个类中把不同阶段的认证信息调用OnlineProfilesServlet进行储存并插入日志;
(3)不同的类有不同阶段认证信息,为了区分要加上序号1、2、3。
4功能扩展
通过上述实现思路分别扩展日志功能、定时存储方式和认证扩展中把认证信息放到集合中。
4.1日志功能
1.DispatchServlet中进行定时存储认证信息:
(1)在initResource定义一个定时方法;
(2)调用一个AuthLogTimerTask定时任务类。
2.AuthLogTimerTask类中是调用插入认证日志服务:
4.2认证功能
SSO认证接口、分布式认证接口、原生Oauth接口分别添加认证日志集合。
4.2.1SSO认证接口
SSO认证扩展:第一步获取ticketId,扩展SSOLoginHandler类:
(1)判断调用接口出参:如果是错误出参或者是空就采用以下调用方法:
(2)因为第一步无法获取用户信息,所以认证日志userCode就是应用编码。
4.2.2分布式认证接口
Oauth认证扩展:Oauth的3个接口分别扩展OauthProxyServlet类:
(1)进行判断调用接口出参:如果是错误出参或者是空就采用下面的调用方法:
(2)因为第一次和第二次无法获取用户信息,所以认证日志userCode就是应用编码,只是类型不同。
4.2.3Oauth原生接口
1.Oauth原生接口调整:
(1)在原生Oauth交互处把认证信息通过OnlineProfilesServlet进行储存。扩展一个addAuthedRecord方法:方法中调用OnlineProfilesServlet中addAuthedRecord把认证信息储存起来,并进行定时插入日志。
(2)OAuth20AccessTokenController中扩展调用。
5功能展现
通过上述扩展功能分别进行SSO认证、分布式认证、原生Oauth接口的验证。
5.1SSO认证
调用样例:
1.获取tokenId:
日志展现:
调用样例:
2.Login认证登录接口:
日志展现:
5.2分布式认证
调用样例:
第一步获取code:
日志展现:
调用样例:
第二步获取accessToken
日志展现:
调用样例:
第三步获取profile
日志展现:
5.3原生Oauth
调用样例:
第一步获取code
日志展现:
调用样例:
第二步获取accessToken
日志展现:
调用样例:
第三步获取profile
日志展现:
6心得总结
针对IDM的认证梳理,是对项目实施过后的一次经验沉淀。对于IDM为主的项目来说,一个非常重要的关注点就是系统的认证,项目人员应该对认证方式,不同场景下如何选择不同认证方式,哪些选择更优,应该有非常清晰的认识,只有这样才能更快更好地落实项目工作和内容,并且更快地落实相应的实施方案,加快项目的推进进程。
6.1统一认证
对任何企业来讲,身份信息管理都是一项繁重的工作,一是要保证人员和组织架构信息的准确性,二是使这些信息能够在不同的目录或应用中高效地交互。
通过统一身份认证能够集成所有业务系统,统一访问页面,将分布在不同系统中的不同类型人员和组织架构信息进行集中管理,也可将信息推送至已集成的本地业务系统中,这样既能保证信息的准确性,又可以使信息在不同系统和应用中高效地交互。
6.2权限管控
权限管控是以用户身份为中心,解决企业当前权限管理面临的开通难、查询难、回收难和管理难的问题,实现企业全景业务权限的集中化、自动化、标准化、安全化、可视化、智能化,合理化、高效化,通过权限画像能力,加速企业权限管理建设,提升安全、效率、体验和降低权限管理与维护成本。
6.3产品发展
产品要从功能性、易用性、开发性、扩展性、高性能、稳定性、美观性不同角度来扩展迭代每个产品,通过到项目中去,再从项目中来,通过客户的需求筛选出我们产品需要改进的功能,进而升级产品功能,增强产品的功能性,通过不同项目深度了解行业,通过预制样例实现快速搭建不同产品组合,使我们做起项目更加得心应手。
产品不管怎么发展,目的都是解决每个阶段企业面临的困境,帮助企业完善信息化发展,能够抓住每个企业的痛点,这样才能体现出产品的价值,一款好且稳定的产品可以帮助工作人员快速而方便地工作,大大提高了工作效率,也会让客户满意,增加客户对公司的信任度。
以上是关于IDM认证过程日志埋点说明的主要内容,如果未能解决你的问题,请参考以下文章