令牌基于esb的统一身份认证系统设计与实现

身份证实名认证  时间:2021-01-25  阅读:()

基于EB的统一身份认证系统设计与实现

文章编号: 10 1-981 2012)01-0504 do  :1  .3 4/sp. j  87. 20 2.0052 摘要:异构的信息系统由于具有各自独立的身份认证和用户管理模块,存在着用户身份不一致、信息重复应用系统无法整合、安全性差等问题。为此提出了一种基于统一的数据交换标准和接口标准,将不同的用户管理模块和认证模块进行集成的方法,设计了系统模型、交互流程和认证协议,实现了基于企业服务总线(esb的统一身份认证系统。实验结果表明,系统能有效地避免身份认证逻辑的重复和数据的冗余,提高认证的效率和系统资源的利用率。

关键词:企业服务总线;面向服务的体系结构;统一身份认证平台;简单对象访问协议

中图分类号 t3 9.  文献标志码:a

   bs ract:te self go rned idnt    athentication ad use  mangement l ad to different denti y, redun nt infrt o, elf g  rned ystem and ba ecu  ty in hteroeeosinf mtion sstems. a new method of integra in bse n uifodta exhang stan r andinterfac standard e peci  y the system moel, dta flow ad athe   cation p  toco ere pt

forwrd.  rthrmore, a un   rm iden it aut nti at o systm bsed on ent rpr  s  servi e bus(esb) a ralize. te xpr ental result show th  the sys em a aoid re nant auhntic  in logic nd data, and it als nace authenticati n e i  i ncy a  mkes th bes   e of the avilabl  resoures   key words:ente pri  ervice bus (e  ) ; servi   orient d rchite tur (soa ; uni or i ti y au entictio platform (u a ; simp  e obj    ace   potoco  oa) 

 0引言  随着计算机和网络应用的快速发展,企业、院校、机关等单位的信息系统日益增多,各个信息系统之间的数据、流程相互间关联的需求也越来越多。由于创建的时间不同、面对的需求不同,这些信息系统在技术体系结构、操作系统平台、编程语言等方面往往是异构的[1] 。这些异构的信息系统在设计时,往往从自身需求出发设计独立的身份认证和用户管理模块,随着信息系统的不断增多,这种传统的认证机制逐渐暴露出用户信息无法统一、信息重复、身份不一致应用系统无法整合、系统安全性差,用户操作复杂、维护难度大等问题[2-。

软件架构的发展,尤其是面向服务的体系结构servi e oieted rchitectr  soa)的兴起为异构系统之间的松耦合

集成创造了条件[-5] 。本文基于we s rvi  技术实现so架构下的身份认证,采用统一的数据交换标准和接口标准,将不同的用户管理模块和认证模块集成在统一的平台上,实现各异构系统的统一身份认证,管理方式简单、统一,避免了信息冗余和信息孤岛造成的系统间不一致性。采用基于证书的身份认证管理机制,对应用系统的访问进行统一控制,增强了系统的安全性。

   1基于esb的统一身份认证系统设计

 1.  系统模型

企业服务总线(n erprise e vice us,esb是传统中间件技术与可扩展标记语言 x  si  e mak  laguae ml) 、 web ervic等技术结合的产物用于基于s的解决方案的实现[  。 esb提供信息格式的转换以实现应用服务的无缝集成,它可以消除不同应用之间的技术差异,让不同的应用服务协调运作,实现不同服务之间的通信与整合。

本文设计的基于esb的统一身份认证模型如图1所示。

基于es的统一身份认证模型主要包括统一身份认证平台un f m ident    aut  t  cat on latfo m,uia) 、客户端、应用服务器和esb。 ui 、客户端、应用服务器和 b之间通过简单对象访问协议(  imp  e bject acess proocol,  ap)进行通信。

 esb是客户端、应用服务器与 a的中介,客户端与应用服务器通过sb调用u a的服务。 u  p通过标准接口发布服务,

采用soap封装请求和响应。当sb收到应用客户端和应用服务器的服务请求时, sb查找请求的服务并返回给客户端和应用服务器。

在esb中,服务执行引擎用于客户端和应用服务器请求服务的发现、选择、编排等功能。服务适配器主要实现不同格式的消息协议转换。服务路由器用于完成客户端和应用服务器请求服务的发现、绑定、调用等操作。服务监控器可以对服务运行的状态进行监控和管理。服务注册中心提供服务的查找和注册功能。

 1 2 交互流程设计   web服务描述语言(web  rvicedescriptio lanuge w dl)和soap是sa互操作性的基础7 u p采用wsl描述服务接口客户端、应用服务器和uiap之间通过基于ws s c ity加密的sap消息进行通信。

 1)客户端与i p的交互流程。  客户端通过统一认证服务uniforathe  ic  ion seri  , as)完成与ui p的交互,用户利用用户凭证在web门户登录 we门户向统一认证服务请求认证,身份认证成功后,统一认证服务创建安全断言标记语言( ecr y a s rtio arkup laguge, sam 令牌,并返回saml令牌给用户,用户就可以携带这个m令牌访问服务。客户端与uiap的交互流程如图2所示。  2)应用服务器与ui  的交互流程。  用户携带s ml令牌访问应用服务器,决策执行点 o   cy  forcement oint,pep)把用户的al令牌交给策略决策点po   cydcisi n poin

  dp)进行验证,pd根据用户s l令牌及相关参数对用户进行授权并把响应结果发送给用户。应用服务器与u i ap的交互流程如图3所示。 

 1. 3基于证书的统一认证协议  客户端( liet, c)与u a之间基于证书的统一认证协议具体步骤如下。

1c→uia 。  r a,rqes  ,ce     sig c{reqest ,c向uiap并发送认证请求。其中 r a为c产生的随机数,reqe  t为c的请求, c   c为c的加密证书, sigc{request}为c利用证书私钥对reqest的签名。

2)u i ap→c。r a, cer  uiap , s g uia (rsons )  e toke saml ) ,uia收到消息后首先验证用户证书有效性并验证请求签名;然后发送应答消息返回 。其中:  a为接收到的的随机数, ce t ui p 为uap的证书, sig

iap (re po  e)为uiap利用证书私钥对re pon e的签名,e c(tken saml 表示利用c的证书公钥加密的tokn saml 。

3 c→ui p。  将对iap的验证结果发给iap。  经过以上步骤客户端和ui p实现了双向身份认证和令牌协商,共享s am令牌tk e n am l 。

2系统关键技术与实现  2 1 soap消息机制  基于soa

的统一身份认证消息请求/响应过程包括4个阶段:服务请求者构造oap消息,服务提供者接收并解析sa消息,服务提供者响应并构造 a消息,服务使用者接收并解析s o ap消息。

 1)服务请求者构造sap消息。

客户端的sap请求内容为一个必需的o ap信封(sap n v  op 。 sap envlope是由一个可选的soap消息头(soapeade )和一个必须soap消息体sop body组成的xm文档。soa e  r是通信双方尚未预先达成一致的情况下,为消息增加特性的通用机制 soap boy为消息的最终接收者所需的信息提供了一个容器[ 9] 。

 s o ap请求如下: 程序前

 

 t  ng

 

程序后

 

其中ceckclie 是ua上被调用的方法参数为服务请求者的证书。  2服务提供者接收并解析soap 消息。

 u iap上处理soap请求的对象是ua 。uas接收到客户端发来的soa请求后解析报文,提取出请求的方法,将其映射为本地的组件调用,然后调用真正的应用程序,处理sap请求。

 3)服务提供者响应并构造s oap消息。  us从sap请求中解析出oa请求方法checclient,连接数据库,根据参数执行op请求。最后将执行结果加上soap enelo 信息得到对上述s oap请求的响应,包括sap响应头和s oap响应内容。so  ene ope的具体内容:

程序前 

    nt       程序后 

服务使用者接收并解析op 消息。  客户端接收到as的oap响应消息后分析sap响应,将结果返回给web服务器,eb服务器根据用户的身份信息加载显示内容,返回给客户端。

 .2 认证令牌的构造与颁发

采用am l令牌来解决 s e c ur  t y中存在的令牌不统一的问题,基于sm令牌请求和响应解决w security中存在的令牌颁发问题。由于s ml是可扩展的、开放的、基于ml的标准, saml能够用于不同安全性系统间的安全信息交换[ 0-11] 。通过 ml令牌能够以令牌的形式交换用户信息和授权信息。  sml令牌结构采用saml 2.0中声明的格式和专门的词汇,利用utentic  ons ate t元素进行构造。 aml令牌中的元素如下:i s r表示am令牌的颁发者;signature表示saml令牌的数

字签名;cod   i s表示sam令牌的有效期;athentictionsta ment表示认证声明用于编码用户的权限和属性;suj ct表示凭证拥有者的相关信息 ameidentif  er表示凭证拥有者的标识符;sub ectconf i rmat  on表示令牌颁发者与令牌拥有者间的关系;k in 表示凭证拥有者的相关密钥信息。 在soap消息中添加 ml令牌请求和s l令牌响应进行消息的交互,对于saml令牌的颁发, aml定义了sal令牌请求和响应协议。 aml令牌请求结构如图4()所示,在结构中   ues tye定义了令牌的类型,reqesttype定义了请求类型,包括请求s aml令牌和对aml令牌验证两种请求类型;apl   st o定义了用户请求访问服务的地址;  i fet me定义了saml令牌请求的有效期。 s am l令牌响应结构如图4(b)所示,在结构中, sl令牌响应包含a响应头部和 ml响应令牌。

2 3 部分代码实现  微软推出的开发环境vi u  stdio.net在业内被称为开发eb服务的首选工具1213。本文使用isa  tdio.nt环境和#语言实现身份认证wb服务的创建、发布和调用。

1)创建b服务。

运行visua stud o.net开发环境,建立“asp.ne  web服务”类型的项目saut。本文实现的wb服务驻留在esauth. mx文件中,其具体内容如下:

程序前

 

 codebhind指定实现web服务的代码文件为esbuth. smx. cs class指定具体实现web服务的类为 tse vice /esbauth. smx.cs文件的实现  public c as  ause v  ce: ystm web. s ri es ebserv  e  { ebmethod]

 pbli  int  ecc  ien (s rin crt)  { in esult=0;

 userd testus rb=n userdb ) ;   /isserexist为通过证书验证用户身份的方法i  (testue  b. isu rexist(   t))  {resu t= ; }

lse{re ult0; }ret n r slt;  }

 } 程序后

 2)发布web服务。

将项目esb th所在的目录esbauthpro c 复制到web服务器上,通过iis把目录e bauthpoj c 设置为虚拟目录,并设置r script和ead属性。   3调用wb服务。 使用eb服务的过程是wb服务的使用者绑定wb服务的提供者,并调用其方法的过程。eb服务的使用者首先通过url地址查找到web服务通过eb引用将wb引用添加到应用程序开发环境中,

腾讯云爆款秒杀:1C2G5M服务器38元/年,CDN流量包6元起

农历春节将至,腾讯云开启了热门爆款云产品首单特惠秒杀活动,上海/北京/广州1核2G云服务器首年仅38元起,上架了新的首单优惠活动,每天三场秒杀,长期有效,其中轻量应用服务器2G内存5M带宽仅需年费38元起,其他产品比如CDN流量包、短信包、MySQL、直播流量包、标准存储等等产品也参与活动,腾讯云官网已注册且完成实名认证的国内站用户均可参与。活动页面:https://cloud.tencent.c...

IMIDC彩虹数据:日本站群多ip服务器促销;30Mbps带宽直连不限流量,$88/月

imidc怎么样?imidc彩虹数据或彩虹网络现在促销旗下日本多IP站群独立服务器,原价159美元的机器现在只需要88美元,而且给13个独立IPv4,30Mbps直连带宽,不限制月流量!IMIDC又名为彩虹数据,rainbow cloud,香港本土运营商,全线产品都是商家自营的,自有IP网络资源等,提供的产品包括VPS主机、独立服务器、站群独立服务器等,数据中心区域包括香港、日本、台湾、美国和南非...

HostNamaste$24 /年,美国独立日VPS优惠/1核1G/30GB/1Gbps不限流量/可选达拉斯和纽约机房/免费Windows系统/

HostNamaste是一家成立于2016年3月的印度IDC商家,目前有美国洛杉矶、达拉斯、杰克逊维尔、法国鲁贝、俄罗斯莫斯科、印度孟买、加拿大魁北克机房。其中洛杉矶是Quadranet也就是我们常说的QN机房(也有CC机房,可发工单让客服改机房);达拉斯是ColoCrossing也就是我们常说的CC机房;杰克逊维尔和法国鲁贝是OVH的高防机房。采用主流的OpenVZ和KVM架构,支持ipv6,免...

身份证实名认证为你推荐
免费送q币活动有什么活动可以免费获得QB?视频制作软件哪个好免费的视频剪辑软件用哪个好?浏览器哪个好用哪个浏览器比较好电视直播软件哪个好电视直播软件哪个好英语词典哪个好英语词典哪种更好啊?核芯显卡与独立显卡哪个好英特尔核芯显卡怎么样?和独立显卡那个更好?手机管家哪个好手机管家哪个好美国国际集团全球500强有哪些企业是美国的美国国际东西方大学凭高考成绩可以申请哪些海外大学?360云网盘下载我有别人的360云盘里面的东西的链接,我要怎么下载他的这个东西?
域名服务 已备案未注册域名 香港服务器租用99idc 个人域名备案 20g硬盘 sub-process 国内加速器 天互数据 ntfs格式分区 北京双线 徐正曦 idc是什么 流量计费 网游服务器 Updog drupal安装 服务器是干什么用的 smtp虚拟服务器 vul php服务器 更多