本发明涉及计算机数据安全管理领域,具体涉及一种基于web服务的统一身份认证方法和装置。
背景技术:
现有技术中需要集成的若干个应用系统本身都由自己的身份认证系统,用户得知道登陆不同应用系统的用户名和口令,能正常使用,但不好维护,且安全性难以保证。
现有技术存在以下缺点:
1、为每个应用系统开发一套独立的身份认证系统,会造成信息冗余和资源浪费,不仅增加信息管理成本,而且给运维工作加强难度;
2、用户在使用不同应用系统时,每次都得知道用户名和口令,操作非常繁琐;
3、用户为了方便、简单,经常会将多个系统中的口令设置为简短的数字或者英文字母,这样泄露了用户身份信息,而且威胁应用系统的安全性。
系统设计的主要思想就是提供一个应用系统的集中统一认证标准和用户管理接口,通过制定相应的集中认证技术规范,来实现所有新建系统用户认证的统一集中化管理,做到真正意义的集中认证。实现各应用系统的“集中认证”,需要具备以下几个特点:
1、完善的用户管理机制:需要一套完善的用户管理和权限分配机制,管理应用系统的各个用户;
2、异构特性:兼容各个应用系统平台,做到良好的对接;
3、安全性:信息和数据的存放及和各个应用系统的信息传递都要保证安全可靠;
4、稳定性:建立完善的运行保障机制保证该应用系统稳定可靠运行。
技术实现要素:
为解决上述技术问题,本发明提供了一种基于web服务的统一身份认证方法,包括以下步骤:
2)身份服务系统从安全目录系统获取认证身份认证所需信息;
3)用户请求身份服务系统完成身份认证,身份服务系统获取用户凭证,并根据获取的认证身份认证所需信息,完成对用户的身份认证;
4)用户向身份服务系统请求获取令牌,身份服务系统根据对用户的身份认证结果向用户发放身份令牌;
5)用户利用身份令牌发送访问应用资源的请求;
6)对用户进行身份验证和鉴权通过后,把访问应用资源的请求发送到应用系统;
7)用户访问应用系统并操作。
所述步骤2)中身份认证所需信息包括:认证服务信息、用户绑定信息、信任控制设备信息、认证保障信息以及所需的其他配置信息。
根据本发明的实施例,优选的,所述步骤5)用户利用身份令牌发送访问应用资源的请求包括:
5.1)用户将访问应用资源的请求和身份令牌发送到信任控制设备;
根据本发明的实施例,优选的,所述步骤6)对用户进行身份验证和鉴权通过后,把访问应用资源的请求发送到应用系统,具体包括:
6.2)信任控制设备对用户的身份验证通过;
6.3)信任控制设备请求策略服务系统提供访问控制权限;
6.4)策略服务系统鉴权成功后,返回响应,信任控制设备把访问应用资源的请求发送到应用系统。
根据本发明的实施例,优选的,其中,所述身份服务系统、策略服务系统、信任控制设备以及应用系统之间身份信息的流转通过用户的网络信任号进行标识,即作为身份传递载体的身份令牌中用户的标识id采用网络信任管理系统维护的网络信任号。
为解决上述技术问题,本发明提供了一种基于web服务的统一身份认证系统平台,包括:
用户凭证管理系统、网络信任管理系统、安全目录系统、身份服务系统、策略服务系统及信任控制设备(访问控制网关);
身份服务系统从安全目录系统获取认证身份认证所需信息;
用户通过客户端请求身份服务系统完成身份认证,身份服务系统获取用户请求的凭证,依托用户凭证管理系统,根据获取的认证身份认证所需信息,完成对用户的身份认证;
客户端向身份服务系统请求获取令牌,身份服务系统根据对用户的身份认证结果,生成用户身份令牌,发放给用户;
客户端利用身份令牌发送访问应用资源的请求;
对用户进行身份验证和鉴权通过后,把访问应用资源的请求发送到应用系统。
所述身份认证所需信息包括:认证服务信息、用户绑定信息、信任控制设备信息、认证保障信息以及所需的其他配置信息。
根据本发明的实施例,优选的,根据权利要求6所述的系统平台,所述客户端利用身份令牌发送访问应用资源的请求包括:将访问应用资源的请求和身份令牌发送到信任控制设备;
为解决上述技术问题,本发明提供了一种基于web服务的统一身份认证系统平台,其包括计算机存储介质和计算机处理装置,所述计算机存储介质包括有计算机程序指令,通过所述计算机处理装置执行所述计算机程序指令,实现上述权利要求之一的方法。
通过本发明的技术方案取得了以下技术效果:
完善的用户管理机制:需要一套完善、统一的用户身份管理和权限分配机制,管理应用系统的各个用户;
异构特性:兼容各个应用系统平台,做到良好的对接;
安全性:信息和数据的存放及和各个应用系统的信息传递都要保证安全可靠。
附图说明
图1是本发明的网络信任体系结构图
图2是本发明身份服务系统体系结构图
图3是本发明消息服务模块结构图
图4是本发明身份认证框架图
图5是本发明认证消息四次握手过程流程图
图6是本发明身份令牌申请流程图
图7是本发明携带令牌访问控制设备流程图
具体实施方式
身份服务系统的应用背景
网络信任体系是以解决信息系统中认证与访问控制等为目的,由密码支撑、基础设施、信任应用、组织管理、法规标准等要素构成的完整体系。身份服务系统作为其中的信任服务之一,具有身份认证、令牌申请、令牌获取、属性请求、属性获取、登出通知等功能。
用户访问应用系统的整个流程如下:
1、网络信任系统配置认证服务信息、用户绑定信息、策略服务信息以及所需的其他配置信息,并发布到安全目录系统;
2、身份服务系统从安全目录系统获取认证服务信息、用户绑定信息、信任控制设备信息、认证保障信息以及所需的其他配置信息;
3、根据系统配置的信任控制设备信息,可以自动将访问控制策略信息推送到指定的信任控制设备;
4、用户请求身份服务系统完成身份认证;身份服务系统根据用户提供的凭证,完成其身份认证;
5、用户请求获取令牌;身份服务系统发放身份令牌;
6、用户将访问应用资源的请求和身份令牌发送到信任控制设备;
8、信任控制设备(访问控制网关)在一系列的身份验证后,信任控制设备请求策略服务系统发布的权限策略服务提供访问控制权限;
9、策略服务鉴权成功后,返回响应;信任控制设备把请求发送到应用系统;
10、用户访问应用系统并操作。
上述操作具体参见图1。如图2,是身份服务系统的体系结构。其包括:
1、消息服务模块
安全套接层(ssl,securesocketlayer)协议是web浏览器与web服务器之间安全交换信息的internet协议,提供了两个基本安全服务:鉴别与保密。逻辑上,它提供了web浏览器与web服务器之间的安全管道。
采用ssl传输机制时,消息服务不负责对soap消息的安全保护。
在web服务通信中,soap定义的xml文档结构、规则和机制可用于支持应用之间的通信。soap没有定义任何安全机制,但soap报头可用来定义和增加特性,以支持诸如数字签名和加密等应用特定的安全机制。
在需要使用消息级和传输级安全特性(如传播安全上下文、支持多种安全技术、在消息跨越中间节点时确保其完整性和机密性)的web服务端到端安全应用场景中,在soap报头中添加安全机制将增加复杂性和带来挑战。更重要的是,在soap报头中添加安全机制将影响支持各种安全基础设施(如pki、二进制安全令牌、数字签名格式、加密机制等)的互操作性。
ws-security规范定义了一组soap标准扩展,以满足保护web服务的安全以及实现消息机密性、消息完整性、和安全令牌传送等需求,且将安全信息作为安全令牌发送给消息接收方的方法,以支持认证以及在soap消息中表示身份信息。ws-security指定了定义安全令牌的机制,包括用户名和密码、二进制安全令牌(如x.509证书、kerberosv5票据)和xml安全令牌(如saml、rel)。
采用ws-security安全机制时,消息服务可以配置对soap消息进行完整性、机密性、抗重放攻击保护策略。
消息完整性指对web服务来说,使用数字签名来确定消息和发送方身份的真实性非常重要。在ws-security中应用数字签名,soap消息的接收方可确信消息的完整性和消息及其元素在传输过程中没有被篡改,既发送方的私钥签名数据报文,接收方用发送方公开的公钥来验证数据确实来自发送方,使传输过程中没有被篡改。
消息机密性指在web服务通信中,可使用标准的ssl/tls机制来进行加密,并对整条消息进行加密,以确保将其发送给一个或多个接收方时的机密性。使用ssl/tls可满足传输级机密性需求,在需要有选择地加密部分xml消息以确保其机密性,然后由不同用户签名,这无法满足消息级安全需求。ws-security使用xml加密规范来加密和解密消息,从而支持对整条消息或选定部分进行加密,消息的多个接收方可根据其已签名的身份和权限来查看和使用加密的内容。ws-security也支持soap中间节点的使用。
如图3是消息服务模块结构,其包括:
(2)ws-security:
可选模块,基于ws-security规范,为soap消息提供安全性保护,如完整性、机密性、抗重放性等。
(3)认证服务模块:
该模块只处理认证握手交互信息。封装和解析认证握手消息,调用身份认证模块,并根据身份认证模块的处理结果组织相应的响应消息。
(4)断言请求服务模块
该模块只处理基于saml协议的令牌请求消息。解析断言请求消息,根据查询认证状态管理模块返回的认证状态,根据终端认证状态调用saml处理模块组织相应的响应消息。
(5)登出服务模块
该模块只处理基于saml协议的登出请求消息。解析登出请求,调用认证状态管理模块删除终端登陆状态,组织登出响应消息。
2、身份认证模块
身份认证模块根据认证服务模块传递的认证凭证对终端身份进行认证。身份认证模块支持多种不同的身份认证方式,根据不同的认证凭证类型依次调用不同的认证模块进行身份认证。
3、saml处理模块
saml是安全服务标准,让多个应用能够共享安全信息,从而支持单点登陆。saml概要满足了这些核心互操作需求。saml概要允许协议和断言将saml用于特定用途。saml概要定义了一组有关如何将saml断言嵌入到协议或其他上下文中以及如何提取saml断言的规则和指南。通过使用saml概要,业务应用可以在saml消息中无缝地交换安全信息,并轻松地与支持saml的系统实现互操作性。
4、认证状态管理模块
实时记录身份认证、令牌申请、令牌获取、属性请求、属性获取、登出请求、登出处理时状态。
5、配置信息管理模块
配置从安全目录获取的认证服务信息、用户绑定信息、信任控制设备信息、认证保障信息以及所需的其他配置信息。
6、密码服务模块
身份认证的框图,如图4所示。
认证过程的四次握手过程如图5所示。
术语解释,如下所示:
数据包类型描述说明
acreq基于公钥的认证过程认证客户端发送的首个消息
asack基于公钥的认证过程认证服务端发送的首个消息
acauth基于公钥的认证过程认证客户端发送的第二个消息
authstate基于公钥的认证过程认证服务端发送的第二个消息
acstate认证客户端定期发送的状态维持消息
ra终端控制设备产生的随机数
ida主体身份标识
ka使用认证服务器公钥加密保护的会话密钥ka。
authrule使用会话密钥加密保护的认证规则。
rs认证服务器产生的随机数
rasra与rs的连接值。
authtmppk会话公钥(临时公钥)
encryptedid用户内部标识,认证成功时返回的系统内部唯一标识用户的id,用ka加密保护。
keyname公钥名称,认证成功时返回,用来标识内部认证数据发送中的公钥
认证过程是以规定的schema生成xml结构来实现:
(1)客户端发起认证,生成acreq信息。处理过程如下:
■产生随机数ra、会话密钥ka
■计算e(pks:ka)和e(ka:authrule)
◆认证方式编码:代表用户的认证方式,取值由网络信任管理系统提供
◆密码运算方式:0:软件实现方式;1:密码模块实现方式(如ukey)
◆如果是用户名/口令认证,控制用户必须输入ida。证书认证只提示输入pin码
■生成acreq信息
■客户端安全存储ra,ka
(2)身份服务系统生成asack,返回给客户端。处理过程如下:
产生随机数rs
现阶段暂时不根据ida对用户允许的认证方式进行控制,直接使用接收到的e(ka:authrule)
生成asack
(3)客户端处理asack,生成acauth。处理过程如下:
处理e(ka:authrule),得到用户允许选用的认证方式,如果用户选择的认证方式不再authrule,则提示用户错误信息,重新发起认证。
产生临时公私钥对(authtmppk,authtmpsk)。
生成认证数据
证书认证:终端证书
口令认证:authtmppk,ka加密的口令数据
生成签名数据:对ra,rs,认证数据进行签名
生成acauth
(4)身份服务系统生成authstate,返回给客户端。处理过程如下:
验证签名
验证认证数据,得到用户可信身份
生成authstate
认证状态:成功或者失败
成功返回的信息
encryptedid:系统内部唯一标识用户的id,且用ka加密
keyname:系统用于内部认证数据中发送的公钥
错误返回errorinfo
2、令牌申请
发起情形
情形一:认证成功后,客户端程序自动发起令牌申请流程,如图6所示。
情形二:网关/代理验证令牌无效(如:已超出有效期,签名无效等),客户端程序根据网关/代理返回错误提示,自动发起令牌申请流程,如图7所示。
令牌格式/内容
采用saml断言,对主体采用密钥持有者(holder-of-key)的主体确认方法。主体确认方法中
身份关联
身份服务系统、信任控制设备以及应用系统和网路信任管理系统之间身份信息的流转通过用户的网络信任号进行标识。即作为身份传递载体的令牌中用户的标识id(如断言的主体id)采用网络信任管理系统维护的网络信任号。
签发者
采用身份服务系统证书的私钥进行令牌的签发。
3、令牌获取
采用saml规范中的authenticationrequestprotocol实现。请求使用authnrequest,响应使用response。请求和响应都支持签名。请求的签名采用内部认证数据中发送的公钥对应的私钥签名,响应采用身份服务系统的设备证书私钥签名。
4、身份验证
信任控制设备验证令牌时,如果令牌的签发者在信任列表中,则可以本地验证令牌是否有效,包括断言签名的有效性、有效期;如果令牌的签发者不再其信任列表中,则需要向指定的身份服务系统进行远程验证。远程验证采用ws_trust协议。
5、属性获取
为支持基于策略的决策,需要各种不同的属性。包括主体属性、系统资源属性和应用环境属性。该服务群提供标准的访问机制,并定义了属性查询如何以saml属性断言的形式被返回。请求-响应机制也是基于标准的saml协议。主体属性服务指提供查询和获取接口以访问主体属性,该主体可以是个人或组织。服务没有定义属性分类和“计划”,而是由底层属性权威(如身份库)定义。属性通过请求恢复,被用来作为saml断言,这些断言被用作策略决定逻辑的输入。目前,主体属性主要由现有的身份管理系统管理并存储在各种不同的目录中。因此,在将服务同主体身份绑定的断言中,该服务只提供“读”功能以获取存储的属性。
采用简化的属性查询请求结构,属性查询消息中不出现saml:attribute元素。属性查询请求结构如下所示:
6、登出通知
7、认证上下文
身份认证、令牌申请、令牌获取和登出时客户端和服务端的认证上下文是共享内存机制实现。
网络信任体系是保障安全的支撑平台,分为信任管理和信任服务系统。身份服务系统作为其中的信任服务之一,具有身份认证、令牌申请、令牌获取、属性请求、属性获取、登出通知等功能。
此身份认证系统有如下几个特点:
3、安全性:信息和数据的存放及和各个应用系统的信息传递都要保证安全可靠。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换以及改进等,均应保护在本发明的保护范围之内。