收藏 分销(赏)

SSO身份统一认证系统关键技术实现.doc

上传人:精*** 文档编号:3032119 上传时间:2024-06-13 格式:DOC 页数:11 大小:1.26MB 下载积分:8 金币
下载 相关 举报
SSO身份统一认证系统关键技术实现.doc_第1页
第1页 / 共11页
SSO身份统一认证系统关键技术实现.doc_第2页
第2页 / 共11页


点击查看更多>>
资源描述
顾客身份统一认证系统 西安维信软件有限公司 4月22日 目 录 一、 认证中心重要功能: 3 二、 认证中心设计规定: 3 三、 对业务系统规定: 4 四、 认证中心登录 4 五、 SSO验证明现过程 5 六、 接口设计 7 七、 业务系统集成工作 10 一、 认证中心重要功能: 1) 顾客登录认证(平台机构、顾客名和密码校验、数字证书签名校验、实时短信校验) 2) 凭证生成和传递 3) 凭证有效性检查 4) 记录日记、提供审计 5) 关联系统信息维护 6) 证书管理和公共服务 二、 认证中心设计规定: 1) 考虑到凭证安全性,引入了加密和数字签名技术; 2) 不提供注册功能,而是分别在各自应用进行注册,但提供到各个系统注册链接; 3) 注销系统时,只需清除认证中心Session信息即可,其他已经通过认证登录过业务系统不受影响; 4) 各应用系统顾客信息分别各自管理,综合接入平台提供平台统一机构和统一顾客信息生成和维护功能,并提供平台统一顾客和应用系统顾客绑定功能; 5) 认证中心专有凭证模块负责凭证创立,解析及验证,并对外提供服务接口; 6) 业务系统可依照凭证得到顾客有关信息,例如业务系统顾客机构、顾客名等信息,认证中心对外提供顾客信息获取服务; 7) 提供应用系统管理功能,以便记录登录行为,提供审计和日记功能,以便将其她应用系统通过简朴配备,就可加入认证整合系统中,以便证书注册、注销、查询等; 8) 为了保证认证中心健壮,系统支持热备份等功能。 三、 对业务系统规定: 1) 凭证信息互相传送都是已加密方式进行传送,虽然凭证信息被截取到,也无法解析到凭证信息中内容,各业务系统只可使用自己私钥才可以解密凭证信息; 2) 业务系统不可以每次都去认证中心验证,因此可将凭证保存在会话中,即Session方式; 3) 业务系统不要过于复杂,以以便和既有系统整合,建议采用过滤器或Servlet方式; 4) 由于业务系统权限管理机制也许不同,故认证中心不做权限管理,由业务系统自己负责; 5) 业务系统和认证中心通信采用Web Services 接口服务。 四、 认证中心登录 业务系统要使用认证中心进行验证操作,第一次需要登录一次认证中心,之后认证操作则不需要再次登录认证中心。 当认证中心登录成功之后,顾客便可在认证中心“业务应用列表”当中选取相应业务系统,进行业务系统顾客登录验证操作。 五、 SSO验证明现过程 1、 当顾客要使用认证中心进行业务系统统一认证时候,分为两种状况: a) 顾客未登录过统一认证系统 此时顾客浏览器界面一方面会跳转到认证中心登录地址,顾客输入有关登录信息(机构号、柜员号、密码、短信效验码等),待验证通过后,则会跳转到认证中心“业务系统列表”页面; b) 顾客已登录过统一认证系统 如果顾客之前已经登录过认证中心,则当前顾客浏览器页面会直接跳转到“业务系统列表”。 2、 当进入到“业务系统列表”之后,顾客通过选取相应业务系统,然后页面会跳转到业务系统中“用于重定向到SSO验证服务认证地址转发地址”,跳转完毕后,业务系统自身会生成一种用于验证本次认证祈求随机码,并携带认证中心所提供应用编号,向认证中心发起一次顾客验证祈求(即将页面重定向到认证中心所提供“用于业务系统祈求SSO验证服务认证地址”)。 3、 当认证中心接受到业务系统发起顾客验证祈求后,一方面认证中心会从SSO服务端Session中获取到当前所登录顾客顾客信息,然后再从业务系统祈求当中接受到由业务系统所发送随机码和应用编号,依照认证中心登陆顾客编号,业务系统应用编号,从数据库查询到业务系统所需要映射顾客信息。然后再将业务系统所发送随机码等信息通过有关加密方式生成一种用于本次业务系统登录认证凭证信息,返还给业务系统。 4、 业务系统通过回调地址接受到认证中心所返回凭证信息,然后对其可用性进行检测(验签、随机码比对、凭证可用性效验等)。如果当前凭证信息对的无误且可用,则对其进行解密。随后业务系统依照自己需求,从凭证信息中获取到相应顾客信息,加载自己系统顾客权限、菜单等信息,跳转到业务系统自身系统界面,即完毕了一次SSO登录验证过程。 六、 接口设计 1) 凭证设计(算法、构造) a) 凭证采用RAS非对称密码算法,服务端采用电子信封和数字签名生成一种用于业务系统登录验证凭证信息; b) 凭证数据采用JSON格式存储,构造涉及: i. 当验证成功后,返回响应码(00)和验证通过顾客信息凭证,如: 响应码{"user":["brhId":"顾客机构编号","userId":"顾客编号","caSerialId":"CA证书序列号"],ssoUseId:”SSO顾客编号”,"tokenMark":"凭证唯一标记","clientMark":"业务系统所生成随机码","signData":"签名值"}; ii. 当验证失败后,则返回响应码和未通过验证异常信息凭证; 响应码{"errInfo":"详细异常信息阐明"}。 响应码阐明: 响应码 响应码详细阐明 00 验证通过 01 代表当前所祈求应用信息不存在; 02 代码当前所祈求应用暂时不可用; 03 代表当前所祈求应用在SSO服务端暂为添加映射顾客信息; 04 代表当前所祈求应用在SSO服务端中映射顾客信息不可用; 09 其她异常信息; 2) 认证中心提供用于业务系统祈求SSO验证服务认证地址 业务系统每次使用SSO验证服务,需祈求如下链接: http://serverIp:port/verificationApp?appId=应用编号&clientMark=业务系统随机码 应用编号将会由SSO服务提供,业务系统随机码由业务系统自身生成。 3) 业务系统提供用于重定向到SSO验证服务认证地址转发地址 当需要进行登录验证时,SSO系统一方面跳转到此地址,然后由业务系统自身生成一种随机码,并携带认证系统所分派给自己应用编号,重定向到认证中心所提供用于业务系统祈求SSO验证服务认证地址: http://clientIp:port/SSOLoginRedirect 4) 业务系统提供接受服务端返回凭证回调地址 http://clientIp:port/SSOLoginServlet 接受服务端返回凭证(String):响应码+凭证 业务应用系统读取响应码判断凭证与否对的返回,解密凭证读取随机码(clientMark),验证随机码与否是业务系统生成。 5) 认证中心提供业务系统用于验证本次凭证有关信息WebService接口地址 当业务通过回调地址接受到SSO服务端凭证信息后,需要对凭证信息进行有关验证操作,此时就需要调用SSO服务端WebService接口进行验证,此接口地址为: http://serverIp:port/service/SSOService?wsdl 调用办法及阐明: 办法名称 办法阐明 办法参数 返回成果 verificationToken 用于验证凭证信息与否可用 String,凭证唯一标记(唯一标记为凭证信息中tokenMark值) Boolean,凭证与否可用 6) 认证中心提供业务系统用于本地验签,解密数据有关办法 有关办法都位于sso_client.jar文献当中。 办法名称 办法阐明 办法参数 返回成果 verificationSign 用于验证凭证信息与否由SSO服务端所发送 String,SSO服务端返回凭证信息 Boolean,验签成果 deAppToken 用于解密服务端所返回凭证信息中数据 String,SSO服务端返回凭证信息 String,解密后凭证信息 7) 认证中心提供业务系统用于调用SSO验证服务所需配备文献 业务系统调用SSO验证服务所有所需有关配备参数均存储于ssoClient.properties文献当中,文献当中重要包括如下几条属性信息: serviceUrl:业务系统用于调用SSO验资服务远程WebService地址; privateKey:业务系统用于验签,解密服务端返回凭证信息私钥信息。 七、 业务系统集成工作 业务系统如要整合SSO顾客验证系统,需要按如下环节对既有业务系统进行改造,为了各业务系统更以便整合SSO顾客验证服务,如下环节中会浮现某些代码示例,其中代码也许对某些业务系统并不合用,各业务系统也可以更具详细状况更改其中代码。 1、 将有关JAR包、配备文献添加到项目当中: Ø sso_client.jar(该JAR包用于调用远程SSO服务端有关验证接口); Ø WebService有关JAR包,由于SSO服务端WebService服务采用Xfire方式,因此业务系统需要自行添加Xfire有关JAR包文献; Ø 将ssoClient.properties文献拷贝到业务系统src目录下,并依照状况修改其中参数。 2、 集成判断顾客在线状态功能: 可以通过Filter等技术方式,判断业务系统顾客与否已登录。如果未登录,调转到SSO认证地址http://serverIp:port/verificationApp?appId=应用编号。 3、 集成凭证接受、解决、页面重定向功能: 在业务系统web.xml文献中增长如下内容: <servlet> <servlet-name>SSOLoginRedirect</servlet-name> <servlet-class>com.webtec.servlet.SSOLoginRedirect</servlet-class> </servlet> <servlet> <servlet-name>SSOLoginServle</servlet-name> <servlet-class>com.webtec.servlet.SSOLoginServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>SSOLoginServle</servlet-name> <url-pattern>/ssoLogin</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>SSOLoginRedirect</servlet-name> <url-pattern>/ssoLoginRedirect</url-pattern> </servlet-mapping> 创立用于重定向到SSO验证服务认证地址Servlet,如下为示例代码: public class SSOLoginRedirect extends HttpServlet { public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException { // 由业务系统自己生成一种随机码 String clientMark = UUID.randomUUID().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 ServletException,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{ // 业务系统登录失败后操作 } } } }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服