数通畅联AEAI IDM统一身份管理平台实现5A管控,包括:统一账户Account、统一认证Authenticate、统一权限Authority、统一审计Audit、应用管控AppControl,从五个方面进而规范用户的身份信息、保证系统的安全、提高工作效率。本次的业务操作说明主要帮助后续的人员对IDM进行业务操作或使用时进行参考。

IDM作为统一用户中心,认证是一个永远离不开的话题,并且针对不同的场景,所使用的认证方式并不相同,下面是对CAS认证、OAuth认证、接口认证的介绍以及使用Fiddler抓包工具对CAS认证、Oauth认证、接口认证过程监听的介绍。

整体介绍

IDM身份管理平台满足对企业信息系统的统一用户管理、统一身份认证、统一授权管理以及安全审计的要求,能够实现各业务系统的统一登录和集中访问,实现用户身份和权限的统一认证与授权管理,为企业不同的业务系统提供统一的用户管理和认证服务。

1.功能架构

IDM统一身份管理平台包含了两个模块,IDM管理系统和IDC管理控制台,功能架构图如下:

查看idm剩余使用时间(IDM身份管理平台统一认证功能介绍)(1)

1.IDM管理系统包括了对组织人员岗位的基础管理、数据同步的情况记录、各个业务系统的配置、数据分发时的任务信息、操作信息、认证的日志信息、对业务系统的功能资源、接口资源和枚举类的数据资源进行标准角色、实际角色、人员和组织的权限管控,通过组织角度和应用角度的数据情况进行分析;

2.IDC管理控制台可进行与其他业务系统接口进行对接,当基础管理中的字段和按钮不满足需求时可以对字段和按钮进行扩展处理、对BPM的流程运行情况进行监控统计、对门户和门户的主题进行自定义配置等等。

2.系统架构

IDM主要是实现统一认证、授权、审计管理,提高企业身份认证及访问安全,建立授权流程审批机制,使用户身份信息、授权信息、审批信息等操作更加规范化、标准化,提高整体IT架构的风险防范能力。

查看idm剩余使用时间(IDM身份管理平台统一认证功能介绍)(2)

消除企业系统间的信息孤岛,为各系统提供统一身份认证、用户身份管理服务,逐步实现系统身份系统的整合,构建面向用户的认证和授权服务,使业务操作更流畅。为简化IT运维提供强大的技术手段和标准,实现账户数据自动化同步操作,同时制定合规的安全服务规范,构建统一的、支撑企业级的认证授权安全服务基础设施。

3.统一认证

统一身份认证就相当于景区的通票,登录所有的应用系统时只需一次验证,之后就可以进入任何有权限进入的应用系统,这就是单点登录的概念,通过IDM统一身份管理平台实现的各个业务系统的单点登录,IDM通过CAS认证或者Oauth认证模式实现,通过2种不同方式实现不同的场景下的统一认证。

CAS认证

CAS模式认证是通过在其他产品中引入CASclient架包,然后在配置文件中配置相关的拦截方式,从而实现单点登录。下面具体介绍CAS认证功能。

1.认证介绍

CAS用于统一身份认证技术,Web应用系统提供一种可靠的单点登录解决方法,在实现统一身份认证过程中,一般CAS Server登录成功后只会给业务系统返回一个登录账号,但特殊情况需返回多个值,支持多种客户端,安全可靠。

查看idm剩余使用时间(IDM身份管理平台统一认证功能介绍)(3)

2.认证配置

业务系统需要引用:cas-client-core-3.1.3.jar放置于WEB-INF/lib。

在web.xml中添加以下配置:需要配置三处Filter

第一处Filter 访问时会被此Filter 拦截:

查看idm剩余使用时间(IDM身份管理平台统一认证功能介绍)(4)

第二处Filter:

查看idm剩余使用时间(IDM身份管理平台统一认证功能介绍)(5)

第三处:Filter:

查看idm剩余使用时间(IDM身份管理平台统一认证功能介绍)(6)

3.功能展现

CAS用于统一身份认证技术,Web应用系统提供一种可靠的单点登录解决方法,在实现统一身份认证过程中,一般CAS Server登录成功后只会给业务系统返回一个登录账号,但特殊情况需返回多个值,支持多种客户端,安全可靠。

查看idm剩余使用时间(IDM身份管理平台统一认证功能介绍)(7)

客户端发送请求访问WEB应用时,CASClient会检查当前用户是否携带认证标识(是否登录),若未登录,重定向至CASServer进行登录认证,登录成功后会携带认证标识返回WEB应用,此时CASClient会检查,发现存在认证标识,CASClient会解析到当前登录的人员编码,WEB应用使用该编码实现权限初始化,从而实现SSO单点登录

以下是通过CAS登录ESB场景。

在浏览器地址栏上访问ESB地址:http://localhost:9090/SMC。

这时就会被CAS登录页面拦截:

查看idm剩余使用时间(IDM身份管理平台统一认证功能介绍)(8)

输入IDM账号密码就调用CAS认证登录了:

查看idm剩余使用时间(IDM身份管理平台统一认证功能介绍)(9)

点击登录进入ESB首页:

查看idm剩余使用时间(IDM身份管理平台统一认证功能介绍)(10)

Oauth认证

Oauth(Open Authorization,开放授权)是为用户资源的授权定义了一个安全、开放及简单的标准,第三方无需知道用户的账号及密码,就可获取到用户的授权信息。

1.认证介绍

Oauth认证不会使第三方触及到用户的帐号信息,不会代码侵占的认证方式,通过认证平台登录账户成功后,会重定向业务系统的页面,调用Oauth接口获取token和用户信息,从而业务系统可以通过用户信息以直接的认证方式进行登录认证,这样就实现了Oauth模式单点登录模式。

查看idm剩余使用时间(IDM身份管理平台统一认证功能介绍)(11)

2.认证配置

配置位置:ESB控制台->系统资源->属性配置

查看idm剩余使用时间(IDM身份管理平台统一认证功能介绍)(12)

配置位置:IDM控制台->应用管理->应用配置(认证配置勾选Oauth认证并取消CAS认证)。

查看idm剩余使用时间(IDM身份管理平台统一认证功能介绍)(13)

3.功能展现

以下是通过Oauth登录ESB的场景。

在浏览器地址栏上访问ESB地址。

这时会被Oauth登录页面拦截:

查看idm剩余使用时间(IDM身份管理平台统一认证功能介绍)(14)

输入IDM用户名密码点击登录就进入ESB首页:

查看idm剩余使用时间(IDM身份管理平台统一认证功能介绍)(15)

接口认证

接口认证的使用场景和CAS、OAuth有所区别,接口认证主要是满足于桌面端、APP端等有独立的登陆页面,同时也无法集成CAS登录页的情况,这种情况由于只能使用业务系统自己的登录页,所以IDM平台提供的认证接口用于满足统一认证的需求

1.认证介绍

本次在IDM中扩展一服务接口,用于外部业务系统直接调用,通过获取的用户信息业务系统进行自己系统的登录认证。

查看idm剩余使用时间(IDM身份管理平台统一认证功能介绍)(16)

2.接口介绍

本次将通过前后端接口区别对接口进行介绍。

1.登录所需要的接口 :

查看idm剩余使用时间(IDM身份管理平台统一认证功能介绍)(17)

2.获取用户信息所需要的接口:

查看idm剩余使用时间(IDM身份管理平台统一认证功能介绍)(18)

前端可以通过MDM的serviceUrl来进行登录,由于后端无法获取真实ip所以需要通过入参传入ip来实现。

3.功能展现

首先登录主数据管理平台后点击退出登录:

查看idm剩余使用时间(IDM身份管理平台统一认证功能介绍)(19)

退出登录后到月表中查看是否有刚刚登录的日志:

查看idm剩余使用时间(IDM身份管理平台统一认证功能介绍)(20)

如果月表中有当前日志则到IDM身份管理平台点击刷新,刷新后应成功登录IDM身份管理平台:

查看idm剩余使用时间(IDM身份管理平台统一认证功能介绍)(21)

认证原理

使用Fiddler抓包,用法简单,使用此页面组成请求,可以通过从左侧Web会话列表拖放会话来克隆先前的请求,下面对Fiddler工具的介绍以及对IDM登录原理过程进行监听。

1.监听工具

Fiddler(中文名称:小提琴)是一个HTTP的调试代理,以代理服务器的方式,监听系统的Http网络数据流动,Fiddler也可以让你检查所有的HTTP通讯,设置断点,以及Fiddle所有的“进出”的数据(我一般用来抓包),Fiddler还包含一个简单却功能强大的基于JScript .NET事件脚本子系统,它可以支持众多的HTTP调试任务

Fiddler是一个抓包工具,当浏览器访问服务器会形成一个请求,此时,Fiddler就处于请求之间,当浏览器发送请求会先经过Fiddler,然后再到服务器,当服务器有数据返回浏览器时也会经过Fiddler,然后数据才会在浏览器中显示,Fiddler就抓到了请求和响应数据的整个过程。

2.监听过程

下面对CAS认证、Oauth认证、接口认证的监听过程进行详细介绍。

> > > > CAS认证

在浏览器窗口输入http://localhost:9090后会被CAS认证拦截:

查看idm剩余使用时间(IDM身份管理平台统一认证功能介绍)(22)

Fiddler监听情况如下:

查看idm剩余使用时间(IDM身份管理平台统一认证功能介绍)(23)

登录IDM身份管理平台后,就会跳转到ESB管理控制台。

查看idm剩余使用时间(IDM身份管理平台统一认证功能介绍)(24)

此时Fiddler的监听过程如下。

在登录页面进行登录后,首先进行后端校验。

查看idm剩余使用时间(IDM身份管理平台统一认证功能介绍)(25)

后端校验成功后返回票据。

查看idm剩余使用时间(IDM身份管理平台统一认证功能介绍)(26)

然后进行票据的校验。

查看idm剩余使用时间(IDM身份管理平台统一认证功能介绍)(27)

票据校验成功后首先进入框架的首页。

查看idm剩余使用时间(IDM身份管理平台统一认证功能介绍)(28)

最后再进入首页。

查看idm剩余使用时间(IDM身份管理平台统一认证功能介绍)(29)

> > > > Oauth认证

在浏览器窗口输入:http://localhost:9090/SMC/index?Homepage&oauthSource=aidm后会被Oauth认证拦截:

查看idm剩余使用时间(IDM身份管理平台统一认证功能介绍)(30)

Fiddler监听情况如下。

第一步通过应用信息首先会被IDM的Oauth认证拦截。

查看idm剩余使用时间(IDM身份管理平台统一认证功能介绍)(31)

此时Fiddler的监听过程如下:

在登录页面进行登录后,首先进行后端校验。

查看idm剩余使用时间(IDM身份管理平台统一认证功能介绍)(32)

第二步通过返回的Code由Oauth接口方法,返回Ticket票据。

查看idm剩余使用时间(IDM身份管理平台统一认证功能介绍)(33)

第三步系统根据获取的Ticket票据触发IDM身份管理平台认证,IDM认证成功后返回用户信息后登录成功。

登录IDM身份管理平台后,就会跳转到ESB管理控制台。

查看idm剩余使用时间(IDM身份管理平台统一认证功能介绍)(34)

> > > > 接口认证

在浏览器输入http://localhost:4040 进入MDM首页。

查看idm剩余使用时间(IDM身份管理平台统一认证功能介绍)(35)

输入IDM管理员的用户名密码后Fiddler监听情况如下。

查看idm剩余使用时间(IDM身份管理平台统一认证功能介绍)(36)

登录MDM调用IDM认证接口生成Cookie。

查看idm剩余使用时间(IDM身份管理平台统一认证功能介绍)(37)

登录MDM成功后在浏览器窗口输入http://localhost:3030 后可以直接进入IDM首页此时Fiddler监听情况如下。

查看idm剩余使用时间(IDM身份管理平台统一认证功能介绍)(38)

IDM通过Cookie中的CASTGC就可登录成功。

查看idm剩余使用时间(IDM身份管理平台统一认证功能介绍)(39)

3.认证原理

下面对CAS认证、Oauth认证、接口认证的认证原理进行详细介绍。

> > > > CAS认证

业务系统通过配置IDM的CAS认证相关信息后,再访问业务系统会被IDM的CAS页面拦截。

查看idm剩余使用时间(IDM身份管理平台统一认证功能介绍)(40)

1.首先会被AuthenticationFilter拦截:查看Assertion对象是否为空

2.然后Assertion有值就会到Cas20ProxyReceivingTicketValidationFilter中父类AbstractTicketValidationFilter的doFilter中,此方法会获取ticket,然后把ticket放到Assertion中。

3.然后就会到HttpServletRequestWrapperFilter的doFilter方法中判断Assertion是否为空并输出。

4.有值就判断可以正常登录,在访问IDM是就判断有Assertion有值登录就可以成功了。

> > > > Oauth认证

查看idm剩余使用时间(IDM身份管理平台统一认证功能介绍)(41)

1.用户在访问业务系统登录时发起认证请求,通过URL跳转的方式请求IDM身份管理平台认证界面,传入client_id、redirect_uri、response_type、state,IDM根据参数返回code及state;

2.系统发起请求传入参数client_id、client_secret、redirect_uri、grant_type及code(页面返回的code),IDM身份管理平台进行认证,返回access_token;

3.系统根据获取的access_token触发IDM身份管理平台认证,IDM认证成功后返回用户信息Profile,返回至用户登录成功。

> > > > 接口认证

查看idm剩余使用时间(IDM身份管理平台统一认证功能介绍)(42)

1.用户在访问业务系统登录时发起认证请求,通过IDM认证接口进行IDM认证 并且获取CASTGCID,接口返回CASTGCID然后将CASTGCID放入Cookie中。

2.通过Cookie中的CASTGCID触发IDM认证接口获取用户信息,,IDM认证成功 后返回用户信息Profile,返回至用户登录成功。

心得体会

在本次对CAS模式统一认证实现中,自己的技术能力还有对IDM产品的理解能力都得到了很大的提升,并且有了很多感悟,现将我在本次工作中的收获,总结如下。

1.产品定位

IDM作为一个统一认证系统,在整个企业中起到了至关重要的作用,统一用户中心不仅会管控所有用户的账号信息,很多重要的隐私信息也会记录在IDM中。IDM的设计理念在于加强企业账户管理、支撑企业业务运营、简化企业内部运维,实现统一认证、授权、审计管理,提高企业身份认证及访问安全,建立授权流程审批机制构建统一的、支撑企业级的认证授权安全服务基础设施

2.产品理解

对任何企业来讲,身份信息管理都是一项繁重的工作,一是要保证人员和组织架构信息的准确性,二是使这些信息能够在不同的目录或应用中高效地交互。

在复杂的商业环境下,IT人员不仅要管理内部员工,还有大量的合作伙伴、供应商等多种类型人员,需要进行身份信息和权限的管理。因此,不同类型的大量人员和组织架构信息分布在不同的系统中,使身份信息管理工作的难度大大增加。

IDM能够迎合企业集团化统一管控需求,满足企业全面管理,解决企业信息孤岛问题,从安全、架构、管理、运维多层面进行整体规划、分布建设、实施同步、检查审计,在企业实现5A管控、集团统一管控、信息公司承建托管、分子公司管理的过程中落地实现人员、信息、流程的大集成,能为集团整合内部资源、推动战略执行、防范项目风险提供全面的数据支持。

3.产品发展

每款产品要慢慢完善,我们要在保证产品质量和性能的前提下使产品的扩展性高,可使用性强 ,让用户能更简单的使用我们的产品。在今后我们也会不断的完善IDM,一步步成为更加完美的身份管理平台。

产品不管怎么发展都是一个目的,即是否能解决每个阶段企业面临的困境,帮助企业完善信息化发展,能够抓住每个企业的痛点,这样才能体现出产品的价值,一款好且稳定的产品可以帮助工作人员快速而方便的工作,大大提高工作效率,也会让客户满意,增加客户对公司的信任度。

本文由@数通畅联原创,欢迎转发,仅供学习交流使用,引用请注明出处!谢谢~

,