ImageVerifierCode 换一换
格式:DOCX , 页数:9 ,大小:73.20KB ,
资源ID:5795606      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5795606.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(SSO身份统一认证系统技术实现.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

SSO身份统一认证系统技术实现.docx

1、SSO身份统一认证系统技术实现用户身份统一认证系统 西安维信软件有限公司2014年4月22日 目 录一、 认证中心的主要功能: 3二、 认证中心的设计要求: 3三、 对业务系统的要求: 4四、 认证中心的登录 4五、 SSO验证实现过程 5六、 接口设计 7七、 业务系统的集成工作 10一、 认证中心的主要功能:1) 用户登录认证(平台机构、用户名和密码的校验、数字证书签名校验、实时短信校验)2) 凭证生成和传递3) 凭证有效性检查4) 记录日志、提供审计5) 关联系统信息的维护6) 证书的管理和公共服务二、 认证中心的设计要求:1) 考虑到凭证的安全性,引入了加密和数字签名技术;2) 不提供

2、注册功能,而是分别在各自应用进行注册,但提供到各个系统的注册链接;3) 注销系统时,只需清除认证中心的Session信息即可,其它已经通过认证登录过的业务系统不受影响;4) 各应用系统的用户信息分别各自管理,综合接入平台提供平台统一机构和统一用户信息的生成和维护功能,并提供平台统一用户和应用系统用户的绑定功能;5) 认证中心专有凭证模块负责凭证的创建,解析及验证,并对外提供服务接口;6) 业务系统可根据凭证得到用户的相关信息,比如业务系统用户机构、用户名等信息,认证中心对外提供用户信息获取服务;7) 提供应用系统管理功能,方便统计登录行为,提供审计和日志功能,方便将其他应用系统经过简单配置,就

3、可加入认证整合系统中,方便证书的注册、注销、查询等;8) 为了确保认证中心的健壮,系统支持热备份等功能。三、 对业务系统的要求:1) 凭证信息的相互传送都是已加密的方式进行传送,即使凭证信息被截取到,也无法解析到凭证信息中的内容,各业务系统只可使用自己的私钥才可以解密凭证信息;2) 业务系统不可以每次都去认证中心验证,所以可将凭证保存在会话中,即Session的方式;3) 业务系统不要过于复杂,以方便和现有系统的整合,建议采用过滤器或Servlet方式;4) 由于业务系统的权限管理机制可能不同,故认证中心不做权限管理,由业务系统自己负责;5) 业务系统和认证中心的通信采用Web Service

4、s 接口服务。四、 认证中心的登录业务系统要使用认证中心进行验证操作,第一次需要登录一次认证中心,之后的认证的操作则不需要再次登录认证中心。当认证中心登录成功之后,用户便可在认证中心的“业务应用列表”当中选择相应的业务系统,进行业务系统的用户登录验证操作。五、 SSO验证实现过程1、当用户要使用认证中心进行业务系统的统一认证时候,分为两种情况:a) 用户未登录过统一认证系统此时用户的浏览器界面首先会跳转到认证中心的登录地址,用户输入相关的登录信息(机构号、柜员号、密码、短信效验码等),待验证通过后,则会跳转到认证中心的“业务系统列表”页面;b) 用户已登录过统一认证系统如果用户之前已经登录过认

5、证中心,则当前用户的浏览器页面会直接跳转到“业务系统列表”。2、当进入到“业务系统列表”之后,用户通过选择相应的业务系统,然后页面会跳转到业务系统中“用于重定向到SSO验证服务认证地址的转发地址”,跳转完成后,业务系统自身会生成一个用于验证本次认证请求的随机码,并携带认证中心所提供的应用编号,向认证中心发起一次用户验证请求(即将页面重定向到认证中心所提供的“用于业务系统请求SSO验证服务的认证地址”)。3、当认证中心接收到业务系统发起的用户验证请求后,首先认证中心会从SSO服务端的Session中获取到当前所登录用户的用户信息,然后再从业务系统的请求当中接收到由业务系统所发送的随机码和应用编号

6、,根据认证中心登陆的用户编号,业务系统的应用编号,从数据库查询到业务系统所需要的映射用户信息。然后再将业务系统所发送的随机码等信息通过相关加密方式生成一个用于本次业务系统登录认证的凭证信息,返还给业务系统。4、业务系统通过回调地址接收到认证中心所返回的凭证信息,然后对其的可用性进行检测(验签、随机码比对、凭证可用性效验等)。如果当前凭证信息正确无误且可用,则对其进行解密。随后业务系统根据自己的需求,从凭证信息中获取到相应的用户信息,加载自己系统的用户权限、菜单等信息,跳转到业务系统自身的系统界面,即完成了一次SSO登录验证过程。六、 接口设计1) 凭证的设计(算法、结构)a) 凭证采用RAS非

7、对称密码算法,服务端采用电子信封和数字签名生成一个用于业务系统登录验证的凭证信息;b) 凭证的数据采用JSON格式存储,结构包括:i. 当验证成功后,返回响应码(00)和验证通过的用户信息凭证,如:响应码user:brhId:用户机构编号,userId:用户编号,caSerialId:CA证书序列号,ssoUseId:”SSO用户编号”,tokenMark:凭证唯一标识,clientMark:业务系统所生成的随机码,signData:签名值;ii. 当验证失败后,则返回响应码和未通过验证的异常信息凭证;响应码errInfo:详细的异常信息说明。响应码说明:响应码响应码详细说明00验证通过01代

8、表当前所请求的应用信息不存在;02代码当前所请求的应用暂时不可用;03代表当前所请求的应用在SSO服务端暂为添加映射用户信息;04代表当前所请求的应用在SSO服务端中的映射用户信息不可用;09其他异常信息;2) 认证中心提供用于业务系统请求SSO验证服务的认证地址业务系统每次使用SSO验证服务,需请求以下链接:http:/serverIp:port/verificationApp?appId=应用编号&clientMark=业务系统随机码 应用编号将会由SSO服务提供,业务系统随机码由业务系统自身生成。3) 业务系统提供用于重定向到SSO验证服务认证地址的转发地址当需要进行登录验证时,SSO系

9、统首先跳转到此地址,然后由业务系统自身生成一个随机码,并携带认证系统所分配给自己的应用编号,重定向到认证中心所提供的用于业务系统请求SSO验证服务的认证地址:http:/clientIp:port/SSOLoginRedirect4) 业务系统提供接收服务端返回凭证的回调地址 http:/clientIp:port/SSOLoginServlet 接收服务端返回的凭证(String):响应码+凭证业务应用系统读取响应码判断凭证是否正确返回,解密凭证读取随机码(clientMark),验证随机码是否是业务系统生成。5) 认证中心提供业务系统用于验证本次凭证相关信息的WebService接口地址当

10、业务通过回调地址接收到SSO服务端的凭证信息后,需要对凭证信息进行相关的验证操作,此时就需要调用SSO服务端的WebService接口进行验证,此接口地址为:http:/serverIp:port/service/SSOService?wsdl调用方法及说明:方法名称方法说明方法参数返回结果verificationToken用于验证凭证信息是否可用String,凭证唯一标识(唯一标识为凭证信息中的tokenMark值)Boolean,凭证是否可用6) 认证中心提供业务系统用于本地验签,解密数据相关方法相关的方法都位于sso_client.jar文件当中。方法名称方法说明方法参数返回结果veri

11、ficationSign用于验证凭证信息是否由SSO服务端所发送String,SSO服务端返回的凭证信息Boolean,验签结果deAppToken用于解密服务端所返回的凭证信息中的数据String,SSO服务端返回的凭证信息String,解密后的凭证信息7) 认证中心提供业务系统用于调用SSO验证服务所需的配置文件业务系统调用SSO验证服务所有所需的相关配置参数均存放于ssoClient.properties文件当中,文件当中主要包含以下几条属性信息:serviceUrl:业务系统用于调用SSO验资服务的远程WebService地址;privateKey:业务系统用于验签,解密服务端返回凭证

12、信息的私钥信息。七、 业务系统的集成工作业务系统如要整合SSO用户验证系统,需要按以下步骤对现有业务系统进行改造,为了各业务系统更方便的整合SSO用户验证服务,以下步骤中会出现部分代码示例,其中的代码可能对部分业务系统并不适用,各业务系统也可以更具具体情况更改其中的代码。1、将相关的JAR包、配置文件添加到项目当中: sso_client.jar(该JAR包用于调用远程SSO服务端相关验证接口); WebService相关JAR包,由于SSO服务端的WebService服务采用Xfire方式,所以业务系统需要自行添加Xfire的相关JAR包文件; 将ssoClient.properties文件

13、拷贝到业务系统的src目录下,并根据情况修改其中的参数。2、集成判断用户在线状态功能: 可以通过Filter等技术方式,判断业务系统的用户是否已登录。如果未登录,调转到SSO的认证地址http:/serverIp:port/verificationApp?appId=应用编号。3、集成凭证接收、处理、页面重定向功能:在业务系统的web.xml文件中增加以下内容: SSOLoginRedirect com.webtec.servlet.SSOLoginRedirect SSOLoginServle com.webtec.servlet.SSOLoginServlet SSOLoginServle

14、 /ssoLogin SSOLoginRedirect /ssoLoginRedirect 创建用于重定向到SSO验证服务认证地址的Servlet,以下为示例代码:public class SSOLoginRedirect extends HttpServlet public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException / 由业务系统自己生成一个随机码 String clientMark = UUID.randomUUID()

15、.toString(); / 将页面重定向到SSO验证服务的认证地址 response.sendRedirect(http:/serverIp:port/verificationApp?appId=app1&clientMark= + clientMark); 创建用于接收认证返回凭证的Servlet,以下为示例代码:public class SSOLoginServlet extends HttpServlet public void doPost(HttpServletRequest request, HttpServletResponse response) throws Servlet

16、Exception, IOException / 获取从SSO服务端返回的凭证信息 String appToken = request.getParameter(appToken); / 对SSO服务端返回的凭证信息进行验签操作 boolean signState = SSOClientService.verificationSign(appToken); if(signState) / 如果验签无误则对凭证信息进行解密操作,SSOBean实体为对解密后的JSON对象进行封装而成 SSOBean ssoBean = SSOClientService.deAppToken(appToken); / 调用SSO服务端WebService服务对本次凭证是否失效进行验证 if(SSOClientService.verificationToken(ssoBean.tokenMark) / 本次凭证可用,从凭证信息中取到业务系统加载本系统所需的用户信息 / 以下代码需根据各业务系统具体情况更改 User user = userDao.findUserById(ssoBean.userId); if(user != null) / 业务系统登录成功后的操作 else / 业务系统登录失败后的操作

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1