编辑: liubingb 2019-10-11
????? 基于SAML的Web服务认证技术的研究 王明飞**|1|王明飞|Wang Mingfei|中国矿业大学计算机科学与技术学院,江苏 徐州 221008|School of Computer Science and Technology,China University of Mining and Technology, Jiangsu Xuzhou 221008|王明飞(1986-),男,在读硕士研究生,信息安全|中国矿业大学计算机科学与技术学院09硕|221008|wangmingfei4780490@163.

com|15862161530|15862161530基于SAML的Web服务认证技术的研究|Research on SAML-based Web Services Authentication Technology| (中国矿业大学计算机科学与技术学院,江苏 徐州 221008) 摘要:Web服务的认证问题是Web服务安全的基本问题,尤其在跨领域的单点登录方面对于B2B集成来说是一个挑战.本文首先分析了实现单点登录的几种基本方案,并对它们的优劣进行了比较,然后阐述了将SAML应用于单点登录的必要性,最后基于SAML提出了一个跨领域的单点登录模型,并对其处理过程进行了分析. 关键词: Web服务认证;

SAML;

单点登录 中图分类号:TP309 Research on SAML-based Web Services Authentication Technology Wang Mingfei (School of Computer Science and Technology,China University of Mining and Technology, Jiangsu Xuzhou 221008) Abstract: The authentication issue is the basic problem of Web Service security, and especially is a challenge in the cross domain Single Sign-on for B2B integration. This paper, at the first, analyzes several basic Single Sign-on programs, and compares its advantages and disadvantages, then expounds the necessary of apply SAML in Single Sign-on, finally a cross domain Single Sign-on model is proposed based on SAML and its process is analyzed. Key words: Web Service authentication;

SAML;

Single Sign On 引言 Web服务是基于XML的一种分布式应用,所以安全性问题就在于其分布性.端到端的Web服务应该保证数据的机密性、完整性、认证性、不可否认性、授权和访问控制.而身份认证是保证Web服务安全的第一步,只有经过系统认证过的用户才能够对Web服务资源进行访问.目前在身份认证上普遍采用的技术有:口令认证、智能卡认证、生物特征认证、数字证书认证、基于令牌的认证.而Web服务是跨异构平台和跨区域的应用,当服务请求者申请服务时,需要被不同的服务提供者进行认证,将是十分麻烦和复杂的,本文用基于SAML的单点登录SSO(Single Sign On)对服务申请者进行统一认证. 单点登录的实现方案 目前单点登录的实现方案主要有以下几种:基于经纪人的单点登录模型,基于代理的单点登录模型,基于网关的单点登录模型和基于代理和经纪人的单点登录模型. Broker-Based SSO解决方案(基于经纪人的单点登录) 在一个基于经纪人的单点登录模型中,都有一个集中的认证和用户账号管理的服务器.中央认证服务器和中央数据库的使用减少了管理的代价,并为认证提供一个公共和独立的 第三方 ,就像一个 经纪人 一样.该模型主要有三个部分:客户端、认证服务器、应用服务器,认证服务器充当经纪人的角色.其工作流程:首先,客户端访问系统资源之前,要访问认证服务器,与认证服务器进行双向身份认证后,获得电子身份标识;

然后客户端凭借已获得的电子身份标识访问各种应用系统,从而实现单点登录.如果电子身份标识非法或者过期,服务器会拒绝用户访问.此方案的一个典型应用范例为Kerberos. Kerberos定义了一系列客户机、密钥发布中心(KDC, Key Distribute Center)和服务器之间获得和使用Kerberos票证的通信过程.Kerberos最初是由麻省理工学院草拟的标准网络身份认证协议,该协议旨在给计算机网络提供 身份认证 ,网络上的Kerberos服务器起着可信仲裁者的作用.Kerberos基于对称密码技术,Kerberos服务器与网络上的每个实体分别共享一个不同的密钥,通过检验某实体是否知道对应的密钥来验证该实体的身份. Kerberos协议具有以下的一些优点:与授权机制相结合;

实现了一次性签发票据的机制,并且所签发的票据都有一个一般为8个小时的有效期;

支持双向的身份认证,即服务器可以通过身份认证确认客户方的身份,而客户如果需要也可以反向认证服务方的身份;

支持分布式网络环境下的认证机制,此时要通过交换 跨域密钥 来实现.[1][2] 基于经纪人的单点登录模型的优点是实现了用户认证数据的集中管理,使管理更加方便.但是,它也存在着一些不足:这种单点登录模型要对服务端进行改造,使其适应单点登录的系统要求,才能实施部署,因而对于旧系统的改造是一项艰巨的工作. Agent-Based SSO解决方案(基于代理的单点登录) 在一个基于代理人的解决方案中,有一个自动为不同的应用程序认证用户身份的代理程序,这个代理程序有不同的功能.比如,它可以使用口令表或加密密钥来自动地将认证的负担从用户移开.代理人在服务器的认证系统和客户端认证方法之间充当一个 翻译 .SSH是一个典型的基于代理人的解决方案的例子. SSH的英文全称是Secure Shell.通过使用SSH,你可以把所有传输的数据进行加密,这样就能够防止DNS和IP欺骗.这是一个为在网上进行安全连接的客户/服务器类型加密软件,实现了一个密钥交换协议,以及主机与客户端认证协议.SSH的用户可以使用包括RSA算法的不同认证方法,当使用RSA认证时,代理程序可以被用于单点登录.代理程序可以在PC、便携式或终端上运行,当被认证身份加入到代理程序中,如果该代理程序有新的子连接产生,则继承原有连接的认证.远程系统往往需要一个SSH服务器,用以与代理程序通信.[2] 基于代理人的单点登录模型保证了通道的安全和单点登录,具有比较好的可实施性和灵活性.但是基于代理人的单点登录模型有一个非常大的缺陷,就是用户的登录凭证要在本地存储,这样就增加了口令泄漏的危险;

另外,在实现单点登录时,每个运行SSH的主机(不管是服务器还是客户端)必须有一个安全代理程序在上面运行,这样就增加了兼容现有系统时的开发量,这是用户不太愿意接受的. Gateway-Based SSO解决方案(基于网关的单点登录) 基于网关的模型主要由三类实体组成:客户端、网关、应用服务器.网关可以是防火墙,或者是专门用于通讯加密的服务器,一边连接着客户端,另一边连接着各种应用服务器,网关把外界的客户端和内部的服务器隔离开来,它是客户端访问各种应用服务器必须经过的一道关卡. 在这种方案中,所有的响应服务都需要放在被网关隔离的受信任网络内,客户端通过网关进行认证后获得访问服务的授权.如果在网关后的服务能够通过IP地址进行识别,并在网关上建立一个基于IP的规则,而这个规则如果与在网关上的用户数据库相结合,网关就可以被用于实现单点登录.网关将记录用户的身份,从而不再需要冗余的认证请求,便可授权用户访问所要求的服务.由于网关可以监视并改变应用服务的数据流,所以在不修改应用服务的同时,改变认证信息,并能提供合适的访问控制.[3] 由于企业中现有的网络环境要求比较严格,网关的性能制约着整个单点登录系统的效率.同时,也需要现有的企业应用来适应单点登录系统,所以,这种方案的应用范围并不广. Agent and Broker-Based SSO的解决方案(基于代理和经纪人的单点登录) 基于代理和经纪人的SSO实现模型结合了基于代理SSO实现模型和基于经纪人SSO实现模型,它一方面可以利用基于经纪人SSO实现模型的集中管理机制,建立一个中央数据库对用户进行统一的身份认证管理;

另一方面,又可以利用基于代理的SSO实现模型的灵活性,使企业不需要对原有应用进行大的改动.当前国内外大多数SSO的实现均采用了基于代理和经纪人的解决方案.本文中的模型也将采用这种方案. SAML(Security Assertion Markup Language) SAML(Security Assertion Markup Language,安全声明标记语言)是一种基于XML的安全性标准,用于在Internet的不同的安全性域中交换身份验证和授权凭证.权限信息是通过声明(关于主体信息的声明)来传递的. SAML是用于交换信息的安全性标准,用于在不同的安全域中传输身份验证和授权凭证.安全性域是指用于管理并控制采用了特定访问控制策略的资源的一段区域.位于某个安全性域中的主体如果要求使用其他安全性域中的内容,则必须在该安全性域中定义该主体,或者第二个安全性域必须信任该主体所属的安全性域. 在安全性域中,组织通常使用第三方产品来管理对资源的访问,并提供单点登录的功能.因此SAML可以使不同供应商的产品交换这种类型的信息,并支持在不同组织之间进行单点登录的功能.[4][5] SAML规范的组成 SAML规范由声明、请求/响应协议、绑定和配置文件这四个部分组成.各部分具体的功能和关系如图1所示: 图1 SAML规范 Fig.1 SAML specification 应用SAML的必要性 1. 浏览器Cookie的局限性:大多数SSO产品都使用浏览器的Cookie来保持登陆状态以避免二次登录带来的开销.但浏览器Cookie不能在跨越DNS命名域作用.所以,要解决跨域SSO(CDSSO,Cross-Domain SSO)问题,就需要使用其它技术了. 2. SSO互操作的需要:单点登录产品如何实现SSO或CDSSO是完全因产品而异的.如........

下载(注:源文件不在本站服务器,都将跳转到源网站下载)
备用下载
发帖评论
相关话题
发布一个新话题