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

通过IDM统一身份管理平台实现的各个业务系统的单点登录,IDM通过CAS认证或者Oauth认证模式实现,通过2种不同方式实现不同的场景下的统一认证。

1整体介绍

通过IDM身份管理平台进行统一认证,保证业务系统可以单点登录,我们的产品既可以根据CAS配置正常登录,也可以通过Oauth2认证,下面作者分别介绍CAS和Oauth2认证模式。

1.1产品体系

首先介绍数通畅联的产品体系:

数通畅联所有产品都是通过K8S云管理平台UMC进行部署搭建产品环境,通过不同的产品组合方案解决企业面临的不同信息化困境,帮助企业完善信息化发展,数通畅联的产品支持多种认证方式,如CAS认证、Oauth认证、LDAP/AD、RESTful API、短信认证、扫码认证以及适合集团型公司的分布式认证。

数通畅联的产品中都预制了CAS模式和Oauth模式的配置环境和相关拦截器,因此可以直接通过CAS模式或Oauth模式进行单点登录,无需扩展开发实现。

1.2CAS认证

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

1.3Oauth认证

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

2CAS模式认证

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

2.1功能介绍

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

以下是通过CAS登录IDM场景:

在浏览器地址栏上访问IDM地址:http://localhost:3030/idm

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

输入IDM账号密码调用CAS认证登录。

点击登录进入首页:

2.2应用配置

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

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

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

第二处Filter:

第三处:Filter:

2.3功能原理

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

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

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

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

3CAS扩展认证

CAS模式认证还可以根据CAS接口认证,通过CasClient进行灵活的扩展,支持其他产品通过AS接口认证、其他方式入手机扫描、手机验证码等登录方式都可以通过CasClient进行扩展接口方式调用认证。

3.1功能介绍

CAS扩展接口登录,IDM通过CasClient扩展认证接口,可一个SSO认证接口类,其他系统通过扩展JS方法调用这个接口类,从而实现单点登录。

下面是通过ESB实现接口认证登录,在ESB登录页面输入账号密码后:

点击登录会调用IDM的CAS登录接口:进入ESB首页。

3.2功能配置

jQuery.js引用:jquery-1.4.2.js版本。

在系统登录页面引用扩展js:SSOLogin.js

<script src="js/SSOLogin.js" language="javascript"></script>

SSOLogin.js扩展内容如下:点击登录方法中通过调用SSO方法调用IDM中CAS认证接口实现CAS认证登录。

3.3功能原理

在进入登录界面后台方法中调用获取ticket方法:使用HttpClientHelper的get方法调用IDM中SSOLoginHandler类中的validate方法:

访问URL为:http://localhost:3030/idm/resource?SSOLogin&actionType=validate&appCode=ESB&grpType=Inner&appPwd=123

然后通过ticket和用户名进行调用,通过CAS认证接口扩展认证方法,进行认证登录。

访问URL为:http://localhost:3030/idm/resource?SSOLogin&actionType=login&ticketId=上述方法出参。

通过ticket获取应用系统的编码和账户信息进行访问认证,调用CasClient扩展的调用CAS认证接口:

接口调用地址如下:http://localhost:3030/cas/v1/tickets

调用代码片段:

CasClient中扩展了两种调用方法:

第一种是通过认证接口地址、账户、密码和访问地址获取认证票据,在需要重定向访问地址时使用。

第二种是通过认证接口地址、账户、密码获取认证票据,在只是认证不需要获取重定向地址时使用。

CasClient通过访问接口进行认证,会通过CustomTicketResource类进行认证,生成认证票据。

4Oauth模式认证

通过上述描述相信大家已经了解了CAS认证模式,下面介绍另一种认证模式——Oauth认证,在整体介绍中已经介绍了Oauth认证可以不用被认证方的系统用户密码与认证方账户密码保持一致,只要根据认证平台登录后给出信息登录即可。

4.1功能介绍

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

在浏览器地址栏上访问ESB地址:http://localhost:9090/SMC/index?Homepage&oauthSource=aidm

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

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

4.2应用配置

以ESB产品为例:

修改配置文件web.xml、ServiceContext.xml,主要在这里用同一CAS应用Oauth认证模拟两个Oauth认证中心(aidm、eidm):

1.web.xml:因为Oauth是通过DispatchServlet拦截实现所有要web.xml的servlet设置拦截标识。

2.ServiceContext.xml:

a)在appConfig添加配置访问信息,通过配置的serviceId、应用的编码、应用的密码。

b)应用密码和编码是在IDM中应用管理配置的。

扩展配置OauthService,如下:

4.3功能原理

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

注意:state为状态位参数,请求系统在传递调用页面跳转时将state存储到缓存中,后续调用请求时先判断state是否在缓存中已经存在,如果存在则为有效请求。

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

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

5应用权限管控

身份认证一般与授权控制相互联系,授权控制是指一旦用户的身份通过认证以后,确定哪些资源该用户可以访问、可以通过何种方式访问操作等问题。在数字化的工作体系中,应该有一个统一的身份认证系统供各应用系统使用,但授权控制可以由各应用系统自己管理。

5.1功能介绍

权限管控是IDM中提供统一权限功能需要扩展角色管理(涵盖标准角色、实际角色,可以只选用标准角色),要支持导入功能及接口,角色支持推送数据同步集成功能;权限资源管理(涵盖功能菜单、操作按钮、数据、OpenAPI),资源都是导入的,不需要数据同步集成功能;授权管理主要建立用户、角色(标准角色、实际角色)、组织跟权限资源的关联关系。角色(标准角色、实际角色)跟用户的关联关系在角色管理处统一维护。

5.2应用配置

添加角色信息:

关联用户信息标签(添加人员,人员选择框要有组织):

添加实际角色:

添加业务系统功能资源:

为业务系统功能资源进行授权:

5.3功能原理

IDM实现对业务系统的权限管控有两种方式。

第一种:

通过认证接口获取,在通过Oauth认证成功后获取人员信息,同时会把该人员的权限资源信息给到业务系统中。

第二种:

通过授权生成任务下发给各个业务:

1.权限新增任务:

1)当在统一权限授权管理中配置一个新的资源权限和组织时,会生成组织与资源关联新增操作,然后生成一个组织权限资源任务。

2)当在统一权限授权管理中对一个新的资源配置人员权限时,会生成人员与资源关联新增操作,然后生成一个人员权限资源任务。

3)当在统一权限授权管理中对一个新的资源配置一个标准角色权限时,会生成标准角色与资源的关联新增操作,然后生成一个标准角色权限资源任务。

4)当在统一权限授权管理中对一个新的资源配置一个实际角色权限时,会生成实际角色与资源的关联新增操作,然后生成一个实际角色权限资源任务。

2.权限禁用任务:

1)当在统一权限授权管理中禁用一个组织授权信息时,会生成一条组织与资源关联禁用操作,然后生成一个组织权限资源任务。

2)当在统一权限授权管理中禁用一个人员授权信息时,会生成一条人员与资源关联禁用除操作,然后生成一个组织权限资源任务。

3)当在统一权限授权管理中禁用一个标准角色授权信息时,会生成一条标准角色与资源关联禁用操作,然后生成一个标准角色权限资源任务。

4)当在统一权限授权管理中禁用一个实际角色授权信息时,会生成一条实际角色与资源关联禁用操作,然后生成一个实际角色权限资源任务。

6总结分析

数通畅联的所有产品都是相互组合使用的,产品间相辅相成,灵活组合,彼此之间组成不同的解决方案,满足绝大多数应用场景,可根据企业项目的不同需求/性质,将产品组合搭配,最终形成特定的、符合企业自身业务的、能够适应企业当前以及未来发展的最佳解决方案。

6.1统一认证

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

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

通过统一身份认证能够集成所有业务系统,统一访问页面,将分布在不同系统中的不同类型人员和组织架构信息进行集中管理,也可将信息推送至已集成的本地业务系统中,既能保证信息的准确性,又可以使信息在不同系统和应用中高效地交互。

6.2权限管控

权限管控是以用户身份为中心,解决企业当前权限管理面临的开通难、查询难、回收难和管理难的问题,实现企业全景业务权限的集中化、自动化、标准化、安全化、可视化、智能化,合理化、高效化,通过权限画像能力,加速企业权限管理建设,提升安全、效率、体验和降低权限管理与维护成本。

6.3产品发展

产品要从功能性、易用性、开发性、扩展性、高性能、稳定性、美观性不同角度扩展迭代,产品到项目中去,再从项目中来,通过客户的需求筛选出我们产品需要的,进而升级产品功能,增强产品的功能性,通过不同项目深度了解行业,预制样例通过不同产品组合快速搭建,使我们做项目时更加敏捷。

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

IDM统一认证功能说明相关推荐

  1. IDM统一权限功能修改心得

    IDM身份管理系统是为解决企业内部多系统间用户信息不一致而开发的,主要定位于解决企业在5A功能上的需求,即:Account账号管理.Authentication认证管理.Authorization授权 ...

  2. 集成底座统一认证配置说明

    企业的信息化建设是一个循序渐进.不断延展的过程,在这过程中企业对于体系架构.集成整合.数据治理.安全管控的要求也会不断提升,而集成底座方案的诞生就是为了解决信息化建设时缺乏整体规划.集成整合难度大.安 ...

  3. 【.NET Core项目实战-统一认证平台】第一章 功能及架构分析

    从本文开始,我们正式进入项目研发阶段,首先我们分析下统一认证平台应该具备哪些功能性需求和非功能性需求,在梳理完这些需求后,设计好系统采用的架构来满足已有的需求和未来的扩展应用. 1 功能性需求 统一认 ...

  4. 【人人开源】集成通过Token认证统一登录功能

    [人人开源]集成通过Token认证统一登录功能 后端 https://gitee.com/renrenio/renren-fast 前端 https://gitee.com/renrenio/renr ...

  5. IDM移动端功能升级说明

    IDM身份管理系统为解决企业内部多系统之间的用户信息不一致而开发的,主要定位于解决企业在5A功能上的需求,即:Account账号管理.Authentication认证管理.Authorization授 ...

  6. IDM统一身份平台策略配置说明

    IDM身份管理系统为解决企业内部多系统之间的用户信息不一致而开发的,主要定位于解决企业在5A功能上的需求,即:Account账号管理.Authentication认证管理.Authorization授 ...

  7. Openstack组件实现原理 — Keystone认证功能

    前言 Keystone实现始终围绕着Keystone所实现的功能来展开,所以在理解其实现之前,建议大家尝试通过安装Keystone这一个过程来感受Keystone在Openstack架构中所充当的角色 ...

  8. 统一账号/统一认证系统的引入和搭建(LDAP)

    为什么需要统一账号/统一认证? 没人喜欢记忆一大堆混乱的账号和密码,员工不喜欢,企业更不喜欢. 企业要高效解决业务和研发问题,必须在初创期规划搭建必要的企业软件和研发工具,也就是进行IT基础设施中软件 ...

  9. 【.NET Core项目实战-统一认证平台】第四章 网关篇-数据库存储配置(2)

    [.NET Core项目实战-统一认证平台]第四章 网关篇-数据库存储配置(2) 原文:[.NET Core项目实战-统一认证平台]第四章 网关篇-数据库存储配置(2) [.NET Core项目实战- ...

  10. 用filter实现web程序的统一认证

    现在web程序很多都用到统一认证这东西,刚好看<jsp2.0技术手册>看到这块,看完感觉有点模糊,所以就自己写代码试了一下,花了好长一段时间,原因终于在今天找到了,并且成功解决,但是我并没 ...

最新文章

  1. 企业如何利用新闻类软文营销策划
  2. 树莓派安装octave,报错missing `server' JVM at问题解决
  3. orcale 日期转字符串 去掉0_C# 基础知识系列- 13 常见类库介绍(二)日期时间类...
  4. 在Python中导入自己写的类,被划红线,但不影响执行
  5. easyexcel 无模板写入_给位,问个问题,用easyExcel无模板导出数据时,怎么在指定单元格添加计算公式呢?...
  6. ASP.NET简易教程3——SQL存储过程
  7. 深入理解Java反射+动态代理,java开发面试笔试题
  8. 基于C#语言的可编程表达式计算器设计
  9. 视频转换器如何将视频MKV转换成MP4格式
  10. Div高度自适应内容高度
  11. awk命令详解+示例
  12. Excel基础(10)SUMIF函数
  13. GitHub、Apache 等平台开源项目,受美国出口管制么?
  14. 减肥日志:100天40斤!!
  15. 抓阄 计算机代表什么东西,周岁抓阄准备哪些东西
  16. 学习Linux的几点忠告(转贴)
  17. Python绘制论文曲线图
  18. 跨境电商卖家,如何运营Facebook?
  19. 道富技术中心与网新恒天录用通知
  20. JavaScript的关键字var、let、const三者的区别

热门文章

  1. 高效程序员的七个习惯
  2. 王阳明让你内心强大的100句名言
  3. 离散数学 06.04 子群及其陪集
  4. python des解密_python des加解密
  5. 2017全国一线城市二线三线四线五线城市名单【最新完整榜单】
  6. 利用PS将图片上的中文改写成英文
  7. 前端canvas图片压缩原理解析
  8. PHP汉字转拼音(有声调、无声调、首字母、首字母大写)
  9. MPP架构、常见OLAP引擎分析
  10. 月薪过万的php面试题目