科技飞速发展的时代,企业信息化建设日趋完善化、体系化,使用的应用系统越来越多,导致业务人员在办工时候,要分别登录各个业务系统来进行操作,这样会浪费很多时间。而公司实现了统一身份认证后,就相当于景区的通票,登录所有的应用系统时只需一次验证,之后就可以进入任何权限应用系统,这就是我们所说的“单点登录”。

通过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认证过程日志埋点说明相关推荐

  1. H3C批量收集服务器信息,H3C设备服务器采集参数认证过程(包含redfish和restfull协议)...

    该脚本针对H3C服务器分别对redfish和restfull两种协议的认证方式进行测试,并合并. 有三个类,分别是redfish协议测试.restfull协议测试.以及两个合并测试 文章最后使用red ...

  2. SSL/TSL双向认证过程与Wireshark抓包分析

    原博文 1. SSL/TSL基本知识 (1)SSL/TLS协议运行机制:https://blog.csdn.net/fw0124/article/details/40873253 (2)图解SSL/T ...

  3. shiro登录认证过程讲解(转)

    先粘出登录的代码 @RequestMapping(value="/submitLogin",method = RequestMethod.POST)@ResponseBodypub ...

  4. aka鉴权 ims_ims 注册鉴权认证过程

    移动通信的安全问题正越来越多地受到关注.2G网络主要传输语音业务,采用的是单向的用户认证方案,即网络能够验证用户身份是否合法,而用户无法确认其所连接的网络服务是否可靠.然而,3G网络将会演变成一个覆盖 ...

  5. ASP.NET : Kerberos网络认证过程

    今天抽时间初略学习了一下kerberos网络认证过程,作为笔记整理如下,希望与大家分享. 一.Kerberos初步定义: Kerberos这一名词来源于希腊神话"三个头的狗--地狱之门守护者 ...

  6. ASP.NET Core Identity 实战(3)认证过程

    如果你没接触过旧版Asp.Net Mvc中的 Authorize 或者 Cookie登陆,那么你一定会疑惑 认证这个名词,这太正式了,这到底代表这什么? 获取资源之前得先过两道关卡Authentica ...

  7. 服务器双向认证 原理,什么叫SSL双向认证 SSL双向认证过程是怎样的

    我们都知道SSL认证能够分成SSL双向认证和SSL单向认证.那么,什么是SSL双向认证?SSL双向认证过程又是怎样的?小编就在接下来的内容为各位详细讲述. 什么叫SSL双向认证 SSL双向认证则是需要 ...

  8. Kerberos认证过程学习理解

    概念: Kerberos服务器:AS认证服务器,TGS服务授权服务器 Client 客户端,代表使用应用的用户 AppServer 服务端,应用提供各种服务的服务器 Client在Kerberos注册 ...

  9. 过程日志定位疑难问题

    1.为什么要有过程日志: 配置过程日志主要对log4j的熟悉程度. 当线上的数据库不能调试的时候,一种办法是在测试库上建立到线上库的dblink, 使用insert into table select ...

  10. wifi认证过程wpa/wpa2

    今天总结一下前段看协议,关于PSK(pre-shared key)方式下wpa/wpa2的认证过程. 1.RSNE 首先,在beacon或probe response帧中,带有RSNE字段,内容如下: ...

最新文章

  1. EMNLP2020:Hugging Face获最佳demo
  2. Nature综述:微生物的社交网络 - 营养缺陷型如何塑造复杂群落
  3. 首次创建maven项目的准备工作
  4. Go 语言编程 — go 常用指令
  5. 算法之图搜索算法(一)
  6. 开发者说:如何使用插件降低上传文件部署服务的复杂度
  7. 每日一课(12/75)操作数的寻址方式
  8. 安全卫士分析--号码归属地
  9. 信息安全法律法规知识点汇总(郑大信安个人总结版)
  10. OC Gen X:一键制作黑苹果OpenCore EFI文件
  11. MySQL安装及应用合集(4):MySQL库表基本操作-增删改查
  12. 关闭WPS热点及广告推送
  13. Python -- 堆数据结构 heapq - I love this game! - 博客频道 - CSDN.NET
  14. ManjaroLinux扩展显示器,连接显示器。
  15. mysql建图书馆表_创建学校图书馆数据库 BookDB
  16. 元宇宙产业委常务副主任委员甘华鸣:狭义元宇宙9大技术:一种基于狭义元宇宙体系结构的观点
  17. 从零开始学习STM32(一)—— 新建工程模板
  18. JAVA-数据结构与算法-修路问题(普里姆算法)和公交站问题(克鲁斯卡尔算法)
  19. 计算机错误提示声音,电脑报警提示音有哪些
  20. Visual Studio2017常用快快捷键

热门文章

  1. 加ing形式的单词有哪些_动词ing形式变化规则有哪些
  2. qpython 3h下载_QPython 3Hv3.0.0 Android
  3. 【机器视觉】——平面测量实际尺寸(像素尺寸转物理尺寸)
  4. 微信公众号跳转微信小程序,自定义微信跳转标签
  5. excel不使用科学计数法
  6. php使用cookie获取浏览记录,php使用cookie存库浏览记录详解
  7. Python字符串函数使用详解
  8. 医院信息化服务器配置,医院信息化建设方案(完整).doc
  9. 科学家做一个实验,我就得胖三斤?
  10. java socket发送json_Java中使用Socket发送Java对象实例