基于ESB的统一身份认证系统设计与实现.doc
- 文档编号:235908
- 上传时间:2022-10-07
- 格式:DOC
- 页数:16
- 大小:39KB
基于ESB的统一身份认证系统设计与实现.doc
《基于ESB的统一身份认证系统设计与实现.doc》由会员分享,可在线阅读,更多相关《基于ESB的统一身份认证系统设计与实现.doc(16页珍藏版)》请在冰豆网上搜索。
基于ESB的统一身份认证系统设计与实现
文章编号:
1001-9081(2012)01-0052-04doi:
10.3724/sp.j.1087.2012.00052
摘要:
异构的信息系统由于具有各自独立的身份认证和用户管理模块,存在着用户身份不一致、信息重复,应用系统无法整合、安全性差等问题。
为此提出了一种基于统一的数据交换标准和接口标准,将不同的用户管理模块和认证模块进行集成的方法,设计了系统模型、交互流程和认证协议,实现了基于企业服务总线(esb)的统一身份认证系统。
实验结果表明,系统能有效地避免身份认证逻辑的重复和数据的冗余,提高认证的效率和系统资源的利用率。
关键词:
企业服务总线;面向服务的体系结构;统一身份认证平台;简单对象访问协议
中图分类号:
tp309.7文献标志码:
a
abstract:
theselfgovernedidentityauthenticationandusermanagementleadtodifferentidentity,redundantinformation,selfgovernedsystemandbadsecurityinheterogeneousinformationsystems.anewmethodofintegrationbasedonuniformdataexchangestandardandinterfacestandard,especiallythesystemmodel,dataflowandauthenticationprotocolwereputforward.furthermore,auniformidentityauthenticationsystembasedonenterpriseservicebus(esb)wasrealized.theexperimentalresultsshowthatthesystemcanavoidredundantauthenticationlogicanddata,anditalsoenhancesauthenticationefficiencyandmakesthebestuseoftheavailableresources.
keywords:
enterpriseservicebus(esb);serviceorientedarchitecture(soa);uniformidentityauthenticationplatform(uiap);simpleobjectaccessprotocol(soap)
0引言
随着计算机和网络应用的快速发展,企业、院校、机关等单位的信息系统日益增多,各个信息系统之间的数据、流程相互间关联的需求也越来越多。
由于创建的时间不同、面对的需求不同,这些信息系统在技术体系结构、操作系统平台、编程语言等方面往往是异构的[1]。
这些异构的信息系统在设计时,往往从自身需求出发设计独立的身份认证和用户管理模块,随着信息系统的不断增多,这种传统的认证机制逐渐暴露出用户信息无法统一、信息重复、身份不一致,应用系统无法整合、系统安全性差,用户操作复杂、维护难度大等问题[2-3]。
软件架构的发展,尤其是面向服务的体系结构(serviceorientedarchitecture,soa)的兴起为异构系统之间的松耦合集成创造了条件[4-5]。
本文基于webservice技术实现soa架构下的身份认证,采用统一的数据交换标准和接口标准,将不同的用户管理模块和认证模块集成在统一的平台上,实现各异构系统的统一身份认证,管理方式简单、统一,避免了信息冗余和信息孤岛造成的系统间不一致性。
采用基于证书的身份认证管理机制,对应用系统的访问进行统一控制,增强了系统的安全性。
1基于esb的统一身份认证系统设计
1.1系统模型
企业服务总线(enterpriseservicebus,esb)是传统中间件技术与可扩展标记语言(extensiblemarkuplanguage,xml)、webservice等技术结合的产物,用于基于soa的解决方案的实现[6]。
esb提供信息格式的转换以实现应用服务的无缝集成,它可以消除不同应用之间的技术差异,让不同的应用服务协调运作,实现不同服务之间的通信与整合。
本文设计的基于esb的统一身份认证模型如图1所示。
基于esb的统一身份认证模型主要包括统一身份认证平台(uniformidentityauthenticationplatform,uiap)、客户端、应用服务器和esb。
uiap、客户端、应用服务器和esb之间通过简单对象访问协议(simpleobjectaccessprotocol,soap)进行通信。
esb是客户端、应用服务器与uiap的中介,客户端与应用服务器通过esb调用uiap的服务。
uiap通过标准接口发布服务,采用soap封装请求和响应。
当esb收到应用客户端和应用服务器的服务请求时,esb查找请求的服务并返回给客户端和应用服务器。
在esb中,服务执行引擎用于客户端和应用服务器请求服务的发现、选择、编排等功能。
服务适配器主要实现不同格式的消息协议转换。
服务路由器用于完成客户端和应用服务器请求服务的发现、绑定、调用等操作。
服务监控器可以对服务运行的状态进行监控和管理。
服务注册中心提供服务的查找和注册功能。
1.2交互流程设计
web服务描述语言(webservicedescriptionlanguage,wsdl)和soap是soa互操作性的基础[7],uiap采用wsdl描述服务接口,客户端、应用服务器和uiap之间通过基于wssecurity加密的soap消息进行通信。
1)客户端与uiap的交互流程。
客户端通过统一认证服务(uniformauthenticationservice,uas)完成与uiap的交互,用户利用用户凭证在web门户登录,web门户向统一认证服务请求认证,身份认证成功后,统一认证服务创建安全断言标记语言(securityassertionmarkuplanguage,saml)令牌,并返回saml令牌给用户,用户就可以携带这个saml令牌访问服务。
客户端与uiap的交互流程如图2所示。
2)应用服务器与uiap的交互流程。
用户携带saml令牌访问应用服务器,决策执行点(policyenforcementpoint,pep)把用户的saml令牌交给策略决策点(policydecisionpoint,pdp)进行验证,pdp根据用户saml令牌及相关参数对用户进行授权,并把响应结果发送给用户。
应用服务器与uiap的交互流程如图3所示。
1.3基于证书的统一认证协议
客户端(client,c)与uiap之间基于证书的统一认证协议具体步骤如下。
1)c→uiap。
ra,request,certc,sigc{request},c向uiap并发送认证请求。
其中:
ra为c产生的随机数,request为c的请求,certc为c的加密证书,sigc{request}为c利用证书私钥对request的签名。
2)uiap→c。
ra,certuiap,siguiap(response),ec(tokensaml),uiap收到消息后,首先验证用户证书有效性,并验证请求签名;然后发送应答消息返回c。
其中:
ra为接收到的c的随机数,certuiap为uiap的证书,siguiap(response)为uiap利用证书私钥对response的签名,ec(tokensaml)表示利用c的证书公钥加密的tokensaml。
3)c→uiap。
c将对uiap的验证结果发给uiap。
经过以上步骤,客户端和uiap实现了双向身份认证和令牌协商,共享saml令牌tokensaml。
2系统关键技术与实现
2.1soap消息机制
基于soap的统一身份认证消息请求/响应过程包括4个阶段:
服务请求者构造soap消息,服务提供者接收并解析soap消息,服务提供者响应并构造soap消息,服务使用者接收并解析soap消息。
1)服务请求者构造soap消息。
客户端的soap请求内容为一个必需的soap信封(soapenvelope)。
soapenvelope是由一个可选的soap消息头(soapheader)和一个必须soap消息体(soapbody)组成的xml文档。
soapheader是通信双方尚未预先达成一致的情况下,为消息增加特性的通用机制;soapbody为消息的最终接收者所需的信息提供了一个容器[8-9]。
soap请求如下:
程序前
string
程序后
其中checkclient是uiap上被调用的方法,参数为服务请求者的证书。
2)服务提供者接收并解析soap消息。
uiap上处理soap请求的对象是uas。
uas接收到客户端发来的soap请求后解析报文,提取出请求的方法,将其映射为本地的组件调用,然后调用真正的应用程序,处理soap请求。
3)服务提供者响应并构造soap消息。
uas从soap请求中解析出soap请求方法checkclient,连接数据库,根据参数执行soap请求。
最后将执行结果加上soapenvelope信息,得到对上述soap请求的响应,包括soap响应头和soap响应内容。
soapenvelope的具体内容:
程序前
int
程序后
4)服务使用者接收并解析soap消息。
客户端接收到uas的soap响应消息后,分析soap响应,将结果返回给web服务器,web服务器根据用户的身份信息加载显示内容,返回给客户端。
2.2认证令牌的构造与颁发
采用saml令牌来解决wssecurity中存在的令牌不统一的问题,基于saml令牌请求和响应解决wssecurity中存在的令牌颁发问题。
由于saml是可扩展的、开放的、基于xml的标准,saml能够用于不同安全性系统间的安全信息交换[10-11]。
通过saml令牌能够以令牌的形式交换用户信息和授权信息。
saml令牌结构采用saml2.0中声明的格式和专门的词汇,利用authenticationstatement元素进行构造。
saml令牌中的元素如下:
issuer表示saml令牌的颁发者;signature表示saml令牌的数字签名;conditions表示saml令牌的有效期;authenticationstatement表示认证声明,用于编码用户的权限和属性;subject表示凭证拥有者的相关信息;nameidentifier表示凭证拥有者的标识符;subjectconfirmation表示令牌颁发者与令牌拥有者间的关系;keyinfo表示凭证拥有者的相关密钥信息。
在soap消息中添加saml令牌请求和saml令牌响应进行消息的交互,对于saml令牌的颁发,saml定义了saml令牌请求和响应协议。
saml令牌请求结构如图4(a)所示,在结构中,requesttype定义了令牌的类型,requesttype定义了请求类型,包括请求saml令牌和对saml令牌验证两种请求类型;appliesto定义了用户
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 ESB 统一 身份 认证 系统 设计 实现