CN101521660B - 会话发起协议注册方法、认证及授权方法、系统及设备 - Google Patents
会话发起协议注册方法、认证及授权方法、系统及设备 Download PDFInfo
- Publication number
- CN101521660B CN101521660B CN200810082635A CN200810082635A CN101521660B CN 101521660 B CN101521660 B CN 101521660B CN 200810082635 A CN200810082635 A CN 200810082635A CN 200810082635 A CN200810082635 A CN 200810082635A CN 101521660 B CN101521660 B CN 101521660B
- Authority
- CN
- China
- Prior art keywords
- statement
- user
- certification
- authorize
- initiation protocol
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/062—Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0815—Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明公开了一种会话发起协议注册方法,包括:接收用户发送的要求进行安全声明标记语言认证的注册消息;根据所述用户身份信息生成所述用户的安全声明标记语言认证声明;存储所述认证声明;向所述用户返回认证声明位置信息。本发明还公开了一种会话发起协议认证及授权方法,包括:接收会话发起协议会话请求,向接收方网络代理服务器发送会话发起协议会话请求,所述会话发起协议会话请求携带有声明实体为所述用户代理客户端生成的用于授权的声明的存放地址,实现认证及授权。一种会话发起协议注册、认证及授权方法,包括:注册及认证授权。本发明还公开了对应的系统及装置。应用本发明可以更加有效的在SIP中运用SAML进行注册、认证和授权。
Description
技术领域
本发明涉及通信安全技术领域,尤其涉及一种会话发起协议(SIP,SessionInitiation Protocol)注册方法、认证及授权方法、系统及设备。
背景技术
SIP是互联网工程任务组(IETF,Internet Engineering Task Force)定义的一个应用层信令控制协议,主要用来对多媒体会话进行信令控制,其主要功能是会话的控制与管理,包括建立由两个或多个用户参与的会话,对已经建立的会话进行属性修改和终止会话等。
安全声明标记语言(SAML,Secure Assertion Markup Language)是结构化信息标准促进组织(OASIS,Organization for the Advancement of StructuredInformation Standards)建立的安全标准。它是基于可扩展标记语言(XML,Extensible Markup Language)的安全声明标记语言,用来在多个信任合作者之间交换安全信息。在这个过程中,一个实体可以通过SAML声明向自己或其他与自己具有信任关系的实体做一个针对某个用户的安全声明,安全声明包括认证声明、属性声明和授权声明等,其典型应用模式是单点登录。单点登录的含义,就是用户在一个作为源站点的网络(Web)站点进行了认证,该站点为用户生成相应的SAML声明,证明用户已通过认证这样一个事实,并将一个与此声明相关联的标识即声明标识分配给用户,当用户访问作为目的站点的源站点的伙伴站点时,该目的站点根据用户提供的声明标识,与源站点进行通信获得SAML声明,即可确定用户的身份,目的站点不需要再次对用户进行认证。
随着SIP在网络中的广泛应用,使SIP支持单点登录的需求也越来越大,因此目前已出现了将SAML机制应用到SIP协议中,实现SIP单点登录的方案。
通常在网络中会存在多种不同的域,域是指一定的网络范围,在该网络范围内网络及其上的业务由同一家运营商管理,例如可以说深圳移动是一个域,深圳联通是另一个域。一个用户归属于某一个域,即由该归属域对该用户的服务订阅、计费等进行管理。处于网络中的用户常常需要跨域通信。
SIP协议中支持基于用户属性进行授权的需求,例如将用户按属性分为“华为的员工”、“金牌用户”、“北邮的老师”等等,之后即可以根据用户的某些属性对其作认证和授权。在SIP中应用SAML声明,利用SAML声明传递用户已被认证通过的事实时,也可以在SAML声明中携带用户的某些属性,用于对方实体根据这些属性进行授权决策,在SIP中使用SAML进行域间认证的实体交互流程如图1所示:
步骤101、用户A发送SIP请求(SIP INVITE)消息给验证服务器(AS,Authentication Service)。
步骤102、验证服务器对用户A进行摘要认证。
步骤103、认证通过,验证服务器对SIP头域中标识用户A的字段和其他相关字段进行签名,生成并保存用户A的认证声明,向接收者用户B所在域的SIP代理服务器(SIP Proxy of B)发送SIP INVITE消息,该SIP INVITE消息携带签名值及声明的存放地址(即统一资源地址URL,Uniform ResourceLocator)。
验证服务器利用验证服务器的私钥对SIP头域中标识用户A的字段和其他相关字段进行签名后将签名值放入身份(Identity)字段中;生成并保存用户A的认证声明,该声明中包括表示用户A已被认证通过的数据和用户A的相关属性,以及生成所属签名时使用的私钥对应的域证书或域证书的存放地址URL;然后将声明的存放地址URL放于身份信息(Identity-info)字段中。最后验证服务器将Identity和Identity-info两个字段加入SIP消息头中后,向SIP Proxy of B发送SIP消息。
步骤104、SIP Proxy of B收到所述的SIP消息后,为验证用户A的身份,发送超文本传输协议获取安全性断言标记语言声明(HTTP GET SAMLAssertion)消息至验证服务器,获取用户A的认证声明。
步骤105、验证服务器返回超文本传输协议(HTTP,Hypertext TransferProtocol)响应消息(200 OK)和用户A的认证声明(Assertion)至SIP Proxyof B。
步骤106、SIP Proxy of B从认证声明中获取保存的所属声明实体的证书,使用证书验证Identity中保存的签名以及所述声明本身的有效性;如果验证成功从声明中获取用户A的属性,根据用户A的属性就可以判断用户A是否拥有被服务的权限,如果拥有,就转发SIP INVITE消息给用户B。
步骤107、用户B返回200 ok响应给SIP Proxy of B。
步骤108、SIP Proxy of B返回200 ok响应给验证服务器。
步骤109、验证服务器返回200 ok响应给用户A。
至此,用户A访问与用户A在不同域的用户B时,基于属性的认证过程完成。
用户A可能会与用户B所在域的多个用户或服务进行会话,每次进行会话的过程均与上述流程相同,每一次都要进行认证,重复进行上述认证流程。
在对现有技术的研究和实践过程中,发明人发现现有技术存在以下问题:
用户需要与某一域中的用户或服务发起频繁会话时,在每次会话时都需要发起认证,频繁的会话需要进行多次重认证,使得计算开销和通信开销比较大,认证效率较低,会给服务器造成较大负担。
发明内容
本发明实施例要解决的技术问题是提供一种会话发起协议注册方法、认证及授权方法、系统及设备,可以更加有效的在SIP中运用SAML进行认证和授权。
为解决上述技术问题,本发明实施例一方面,提供了一种会话发起协议注册方法,包括:
接收用户发送的要求进行安全声明标记语言认证的注册消息;
对所述用户进行认证,认证通过生成所述用户的安全声明标记语言认证声明;
为用户进行注册;
存储所述认证声明;
向所述用户返回所述认证声明的位置信息。
另一方面,提供了一种会话发起协议认证及授权方法,包括:
接收用户发送的会话发起协议会话请求,所述会话请求为域间会话请求;
根据所述会话发起协议会话请求携带的所述用户的认证声明位置信息发送消息到声明实体,查找所述用户对应的安全声明标记语言认证声明,并要求所述声明实体生成所述用户对应的用于授权的声明;
接收所述用于授权的声明的存放地址;
向被访问域的接收方网络代理服务器发送会话发起协议会话请求,所述会话请求携带有用于授权的声明的存放地址,以使所述接收方代理服务器根据所述用于授权的声明的存放地址获取所述用于授权的声明,实现认证及授权。
另一方面,提供了一种会话发起协议认证及授权方法,包括:
接收位于发送域的发送方网络代理服务器发送的消息;
根据所述消息查找用户对应的安全声明标记语言认证声明,并为所述用户生成用于授权的声明;
将所述用于授权的声明的存放地址向所述发送方网络代理服务器发送;
接收被访问域的接收方代理服务器发送的获取消息;
根据所述获取消息查找所述用户对应的用于授权的声明;
发送所述用于授权的声明给所述接收方代理服务器,以实现认证及授权。
另一方面,提供了一种会话发起协议认证及授权方法,包括:
接收发送方网络代理服务器发送的用户的用于授权的声明的存放地址;
根据所述用于授权的声明的存放地址向声明实体发送获取消息,获取所述用于授权的声明;
根据所述用于授权的声明验证用户,验证通过,则认证及授权成功。
另一方面,提供了一种会话发起协议注册、认证及授权方法,包括:
用户在请求注册的同时请求生成安全声明标记语言认证声明;
对所述用户认证后,生成安全声明标记语言认证声明,为用户注册并存储所述认证声明,向所述用户返回认证声明位置信息;
所述用户发起会话发起协议会话请求,所述会话请求携带所述认证声明位置信息,为域间会话请求;
基于已经保存的认证声明和所述用户的身份信息生成用于授权的声明,以实现认证及授权。
另一方面,提供了一种会话发起协议注册系统,包括:
注册服务器,用于接收要求进行安全声明标记语言认证的注册消息;对用户进行认证,认证通过生成所述用户的安全声明标记语言认证声明;为用户进行注册;存储所述认证声明;返回所述认证声明的位置信息;
用户代理客户端,用于向所述注册服务器发送要求进行安全声明标记语言认证的注册消息;接收所述注册服务器返回的认证声明位置信息。
另一方面,提供了一种注册服务器,包括:
注册单元,用于接收用户发送的要求进行安全声明标记语言认证的注册消息,为用户进行注册;
认证声明位置单元,用于在所述注册单元收到用户发送的要求进行安全声明标记语言认证的注册消息后,获取所述用户的安全声明标记语言认证声明的认证声明位置信息,向所述用户返回所述认证声明位置信息。
另一方面,提供了一种声明实体,包括:
第二认证声明单元,用于接收注册服务器发送的认证声明服务请求,对用户进行认证,认证通过根据所述认证声明服务请求携带的用户身份信息生成所述用户的安全声明标记语言认证声明,存储所述认证声明;
第三位置信息单元,用于向所述注册服务器返回所述认证声明的存放地址。
另一方面,提供了一种用户代理客户端,包括:
注册请求单元,用于向注册服务器发送要求进行安全声明标记语言认证的注册消息;以使所述注册服务器可以为所述用户代理客户端生成安全声明标记语言认证声明;
接收位置信息单元,用于接收所述注册服务器返回的认证声明位置信息。
另一方面,提供了一种会话发起协议认证及授权系统,包括:
用户代理客户端,用于向网络代理服务器发送会话发起协议会话请求,发起域间会话;在所述会话发起协议会话请求中携带认证声明位置信息;
网络代理服务器,用于接收用户代理客户端发送的会话发起协议会话请求;从所述会话发起协议会话请求中获取认证声明位置信息;根据所述认证声明位置信息发送消息到声明实体查找所述用户代理客户端对应的安全声明标记语言认证声明,并要求所述声明实体生成所述用户代理客户端对应的用于授权的声明;接收所述用于授权的声明存放地址;向处于被访问域的接收方网络代理服务器发送会话发起协议会话请求,所述会话发起协议会话请求携带有声明实体为所述用户代理客户端生成的用于授权的声明的存放地址;
声明实体,用于接收网络代理服务器发送的消息;根据所述消息查找用户对应的安全声明标记语言认证声明;在查找到用户对应的安全声明标记语言认证声明时,为所述用户生成用于授权的声明;将所述用于授权的声明存放地址向所述网络代理服务器发送;接收接收方代理服务器发送的获取消息,根据所述获取消息查找用户对应的用于授权的声明,返回给所述接收方代理服务器;
代理服务器,用于接收位于发送域的网络代理服务器发送的用于授权的声明存放地址;根据所述用于授权的声明存放地址向声明实体发送获取消息,获取对应的用于授权的声明;用于根据所述用于授权的声明验证用户代理客户端,验证通过,则认证及授权成功。
另一方面,提供了一种用户代理客户端,包括:
会话发起单元,用于向网络代理服务器发送会话发起协议会话请求,发起域间会话;
第四位置信息单元,用于在所述会话发起协议会话请求中携带认证声明位置信息,以使所述网络代理服务器根据所述认证声明位置信息发送消息到声明实体完成对所述用户代理客户端的认证。
另一方面,提供了一种网络代理服务器,包括:
第五位置信息单元,用于从所述会话发起协议会话请求中获取认证声明位置信息;
地址获取单元,用于根据所述认证声明位置信息发送消息到声明实体查找所述用户代理客户端对应的安全声明标记语言认证声明,并要求所述声明实体生成所述用户代理客户端对应的用于授权的声明;接收所述用于授权的声明存放地址。
会话请求单元,用于接收用户代理客户端发送的会话发起协议会话请求;
第一授权单元,用于向处于被访问域的接收方网络代理服务器发送会话发起协议会话请求,所述会话发起协议会话请求携带有声明实体为所述用户代理客户端生成的用于授权的声明的存放地址,以使所述接收方代理服务器根据所述用于授权的声明存放地址获取所述用于授权的声明,实现认证及授权。
另一方面,提供了一种声明实体,包括:
认证声明查找单元,用于接收发送方网络代理服务器发送的消息;根据所述消息查找用户对应的安全声明标记语言认证声明;
授权单元,用于为所述用户生成用于授权的声明;将所述用于授权的声明存放地址向所述发送方网络代理服务器发送;
授权声明查找单元,用于接收接收方代理服务器发送的获取消息,根据所述获取消息查找用户对应的用于授权的声明,返回给所述接收方代理服务器,以实现认证及授权。
另一方面,提供了一种代理服务器,包括:
存放地址接收单元,用于接收位于发送域的发送方网络代理服务器发送的用于授权的声明存放地址;
授权声明获取单元,用于根据所述用于授权的声明存放地址向声明实体发送获取消息,获取对应的用于授权的声明;
第二验证单元,用于根据所述用于授权的声明验证用户代理客户端,验证通过,则认证及授权成功。
由以上技术方案可以看出,在用户进行注册的同时,声明实体即为用户生成对应的认证声明并保存,当用户发起域间会话时,可以直接使用已保存的认证声明,用户不必再次发起生成认证声明的请求,极大的节约了系统资源;同时在用户发起域间会话时,只需要到声明实体查找属于发起会话用户的认证声明,查找到对应认证声明,即可使声明实体为该用户生成用于授权的声明,以完成认证和授权,避免了重复认证及授权,流程更加简洁,有效,更加节省系统的资源。
附图说明
图1为现有技术认证方法信令流程图;
图2为本发明实施例提供的会话发起协议注册方法实施例流程图;
图3为本发明实施例提供的会话发起协议认证及授权方法实施例一流程图;
图4为本发明实施例提供的简单物件存取协定结束超文本传输协议数据包结构图;
图5为本发明实施例提供的一个用户可以参加多个会议时的系统实施例结构示意图;
图6为本发明实施例提供的注册服务器实施例结构示意图;
图7为本发明实施例提供的声明实体实施例一结构示意图;
图8为本发明实施例提供的用户代理客户端实施例一网络代理服务器实施例结构示意图;
图9为本发明实施例提供的会话发起协议认证及授权系统实施例结构示意图;
图10为本发明实施例提供的客户端实施例二结构示意图;
图11为本发明实施例提供的网络代理服务器实施例结构示意图;
图12为本发明实施例提供的声明实体实施例二结构示意图;
图13为本发明实施例提供的代理服务器实施例结构示意图;
图14为本发明实施例提供的会话发起协议注册、认证及授权系统实施例结构示意图。
具体实施方式
本发明实施例提供了一种会话发起协议注册方法、认证及授权方法、系统及设备,可以更加有效的在SIP中运用SAML进行认证和授权。
本发明实施例引入了两个实体,声明实体(AE,Assertion Service)和验证实体(VS,Verifier Service),这两个实体的功能如下所述:
声明实体:负责生成认证声明、属性声明和授权声明,属性声明及授权声明均是为了进行认证授权而生成的声明,因此属性声明及授权声明均可称为用于授权的声明。声明实体可以使用独立的物理实体担任,也可以使用注册服务器、网络代理服务器(Proxy)或用户代理服务器(UAS,User AgentServer)担任。
验证实体:对上述声明进行验证。验证实体同样可以使用独立的物理实体担任,也可以使用Proxy或UAS担任。
本发明实施例提供的在SIP中应用SAML进行认证授权的方法包括注册和认证及授权两个部分,即会话发起协议注册方法实施例和会话发起协议认证及授权方法实施例。
在本发明实施例提供的会话发起协议注册方法实施例中,用户终端上线后,向注册服务器进行注册,同时要求获得认证声明;注册服务器在完成联系地址注册的同时,向声明实体发出生成认证声明的请求,如成功生成认证声明则保存于声明列表中,并返回必要的响应信息。
为了完成认证及授权功能,在本发明实施例提供的会话发起协议认证及授权方法实施例中,用户终端第一次与某一个域发起域间会话时,在会话邀请的过程中,向声明实体发出生成用于授权的声明的请求,声明实体基于已经保存的认证声明为该用户生成相应的用于授权的声明并保存,如果该生成用于授权的声明的请求中请求生成属性声明,则声明实体根据SIP消息中携带的用户角色信息及会话属性,生成属性声明,如果该生成用于授权的声明的请求中请求生成属性声明,则声明实体根据SIP消息中携带的用户角色信息及会话属性进行策略决策,进而生成授权声明;生成用于授权的声明后,被访问域的代理服务器只需从声明实体获取发起会话的用户对应的用于授权的声明,即可根据该用于授权的声明完成对用户的授权,进而完成认证。该发起会话的用户后续再次访问以前被访问域的其他用户或服务而发起域间会话时,声明实体不需要再次生成用于授权的声明,被访问域的代理服务器只需从声明实体获取发起会话用户对应的用于授权的声明,即可根据该用于授权的声明,完成对用户的授权,进而完成认证。
本发明实施例提供的会话发起协议注册方法实施例流程如图2所示:
步骤201、用户代理客户端(UAC,User Agent Client)向注册服务器发送SIP注册(SIP register)消息,请求注册服务器为该用户进行注册及SAML认证。
该SIP register消息中含有SAML认证声明功能询问(SAML-auth),用以向注册服务器进行注册,并请求注册服务器向声明实体进行信息交互,生成该用户的认证声明。
本发明实施例对SIP register消息进行了扩充,使用了新的扩展标签SAML-auth,含义为要求注册服务器存储用户注册信息的同时,请求注册服务器向声明实体进行信息交互,生成该用户的认证声明。以发出SIP register消息的用户名为Alice为例,用户Alice向注册服务器进行注册,并请求注册服务器与声明实体进行交互实现注册认证,此时,SIP register消息实例如下所示:
REGISTER sips:ss2.example.com SIP/2.0
Via:SIP/2.0/TLS client.example.com:5061;branch=z9hG4bKnashds7
Max-Forwards:70
From:Alice<sips:Alice example.com>;tag=a73kszlfl //用户的标识
To:Alice<sips:Alice example.com>
Call-ID:1j9FpLxk3uxtm8tnexample.com
CSeq:1 REGISTER
Contact:<sips:Aliceclient.example.com>;//用户要注册的地址.
Content-Length:0
Require:SAML-auth //表示要求生成认证声明
本发明中,用符号“//”及其后面的文字表示对其前面的语句的注释。
步骤202、注册服务器向声明实体发送认证声明服务请求(AuthnRequest)。
注册服务器进行用户与联系地址的绑定,完成注册,同时,向声明实体发送认证声明服务请求,要求声明实体对用户进行认证并为用户颁发认证声明,认证声明中包含用户的部分固定信息及属性,固定信息中与SIP有关的信息包括:源(FROM)、联系地址(CONTACT)。
声明实体可以和注册服务器由不同的物理实体担任,也可以和注册服务器位于同一个物理实体,在实际操作中,可以将注册服务器的功能进行扩展,作为声明实体。
如果用户请求注册的注册服务器不具备与声明实体交互的能力,或不能使声明实体为用户生成认证声明,则此步中,注册服务器应当向UAS返回错误响应信息(420 bad extension),告知不能为用户生成认证声明。
步骤203、声明实体生成认证声明,将认证声明存储于声明列表中,并向注册服务器返回声明存放地址。
声明实体根据该认证声明服务请求提交的用户身份信息生成SAML格式的认证声明,生成认证声明的功能单元可以被称为认证权威。声明实体生成认证声明后,存储于声明列表中(这里的认证声明与FROM头域中的用户名是一一对应关系),并返回声明存放地址。
为了保证认证声明的完整性,该认证声明的摘要值可以由声明实体进行签名,并将签名值及证书一同插入到SAML标签中。
此时,认证声明格式举例如下:
<Assertion ID=″_a75adf55-01d7-40cc-929f-dbd8372ebdfc″
IssueInstant=″2003-04-17T00:46:02Z″Version=″2.0″)
xmlns=″urn:oasis:names:tc:SAML:2.0:assertion″>
<Issuer>
example.com
</Issuer>
<ds:Signature xmlns:ds=″http://www.w3.org/2000/09/xmldsig#″>
<ds:SignedInfo>
<ds:CanonicalizationMethod
Algorithm=″http://www.w3.org/2001/10/xml-exc-c14n#″/>
<ds:SignatureMethod
Algorithm=″http://www.w3.org/2000/09/xmldsig#rsa-shal″/>
<ds:Reference
URI=″#_a75adf55-01d7-40cc-929f-dbd8372ebdfc″>
<ds:Transforms>
<ds:Transform
Algorithm=
″http://www.w3.org/2000/09/xmldsig#enveloped-signature″/>
<ds:Transform
Algorithm=
″http://www.w3.org/2001/10/xml-exc-c14n#″>
<InclusiveNamespaces
PrefixList=″#default SAML ds xs xsi″
xmlns=
″http://www.w3.org/2001/10/xml-exc-c14n#″/>
</ds:Transform>
</ds:Transforms>
<ds:DigestMethod
Algorithm=″http://www.w3.org/2000/09/xmldsig#sha1″/>
<ds:DigestValue>
Kclet6XcaOgOWXM4gty6/UNdviI=
</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue>
hq4zk+ZknjggCQgZm7ea8fI7...Hr7wHxvCCRwubfZ6RqVL+wNmeWI4=
</ds:SignatureValue>
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>
MIICyjCCAjOgAwIBAgICAnUwDQYJKoZIhvcNAQEEBQAwgakxNVBA
YTAlVT
MRIwEAYDVQQIEwlXaXNjb .....
dnP6Hr7wHxvCCRwubnZAv2FU78pLX
8I3bsbmRAUg4UP9hH6ABVq4KQKMknxu1xQxLhpR1ylGPdioG8cCx3w/
w==
</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
</ds:Signature>
<Subject>
<NameID
Format=
″urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress″>
Aliceexample.com
</NameID>
<SubjectConfirmation
Method=″urn:oasis:names:tc:SAML:2.0:cm:sender-vouches″/>
</Subject>
<Conditions NotBefore=″2003-04-17T00:46:02Z″
NotOnOrAfter=″2003-04-17T01:46:02Z″>
<AudienceRestriction>
<Audience>
example2.com
</Audience>
</AudienceRestriction>
</Conditions>
</Assertion>
上面的例子中,<Issuer>/</Issuer>标签对包含的信息表示该声明的生成者,即声明实体的标识,本例中是example.com;<ds:SignedInfo>/</ds:SignedInfo>标签对包含的信息表示声明实体对该声明进行签名的方法,包括使用的签名算法、哈希算法和哈希值;
<ds:SignatureValue>和</ds:SignatureValue>标签对包含的信息表示具体的签名值;
<ds:KeyInfo>和</ds:KeyInfo>包含的信息表示验证签名所用的证书信息;
<Subject>和</Subject>标签对包含的信息表示用户的身份信息,本例中,用户身份为电子邮件格式,值为Aliceexample.com,该值应该与步骤201中注册消息中的From和To的值一致;
<Conditions>和</Conditions>标签对中包含的信息表示该声明在被使用时的一些限制条件,本例中表示该声明只能在NotBefore和NotAfter所表示的时间之间有效,而且只对域example2.com有效。
在实际使用中声明实体多由注册服务器担任,在声明实体由注册服务器担任时,可以不进行步骤202和步骤203的信令交互,由于声明实体即由注册服务器担任,注册服务器在进行用户与联系地址的绑定时,直接使用声明实体功能单元对用户进行认证并为用户颁发认证声明,生成认证声明后,将认证声明存储于声明列表中,即认证声明存储于注册服务器本身,因此不需要向注册服务器通知声明存放地址及凭证。
在上述步骤中,为用户进行注册与认证声明的生成之间没有顺序关系,可以先后进行,也可以同时进行。
步骤204、注册服务器将认证声明位置信息插入到认证声明位置信息(SAML-Authen-Info)头域中,并随SIP成功响应(SIP 200 ok)一起返回给用户。
本发明实施例新增的SAML-Authen-Info头域存放认证声明的位置信息,该信息为统一资源地址(URL,Uniform Resource Locator)格式,并遵循SAML的超文本传输协议(HTTP,Hypertext Transfer Protocol)凭证绑定(ArtifactBinding)的格式。该位置信息中包含该声明的凭证(SAML Artifact),也可以被称为声明索引,凭证长度通常为42个字节,包含一个类型代码、长度为20个字节的源标识以及长度为20个字节的随机数,其他实体可以根据该凭证去数据库中查找对应的用户的认证声明。此时,SIP 200 ok消息实例如下所示:
SIP/2.0 200 OK
Via:SIP/2.0/TLS client.example.com:5061;branch=z9hG4bKnashd92;received=192.0.2.201
From:Alice<sips:Aliceexample.com>;tag=ja743ks76zlflH
To:Alice<sips:Aliceexample.com>;tag=37GkEhwl6
Call-ID:1j9FpLxk3uxtm8tnexample.com
CSeq:2REGISTER
Contact:<sips:Aliceclient.example.com>;expires=3600 //有效时间
Content-Length:0
SAML-Authen-Info:https://example.com/assns/?ID=1cmVR0bzU%
//声明位置信息
上述实例中,SAML-Authen-Info字段的值为表示认证声明的位置的URL,Contact字段中的expires=3600表示该注册地址的有效时间为3600秒,该有效时间应与认证声明的有效时间一致,注册刷新时认证声明的有效时间也随之刷新。认证声明的有效时间通过NotBefore和NotOn Or NotAfter表示。
此时,注册完成的用户在声明实体上即具有一个对应的身份的认证声明,后续该用户再访问以前访问过的域的其他用户或服务进行会话时,只需验证该认证声明,就可以完成认证过程,进行会话。
应用本发明实施例提供的会话发起协议注册方法实施例,用户在请求注册时一同请求生成认证声明,声明实体在用户注册时会为用户生成对应的认证声明,并将该认证声明存储于声明列表,便于其他实体查询,后续用户再访问以前访问过的域的其他用户或服务进行域间会话时,系统只需通过声明实体查找到该用户对应的认证声明,即可完成认证,不需要每次发起域间会话都重复进行认证,节省了计算开销和通信资源,减轻了服务器的负担。
以上为对本发明实施例提供的会话发起协议注册方法实施例的描述。
在本发明实施例提供的会话发起协议认证及授权方法实施例中,用户需要发起域间会话时,用户代理客户端向其归属域的网络代理服务器发送SIP会话请求(SIP INVITE)消息,发起会话,该INVITE消息中携带有认证声明位置信息,保存于INVITE消息的SAML-Authen-Info头域。
当发送方网络代理服务器需要进行用户身份验证时,位于发送方网络代理服务器的验证实体根据SAML-Authen-Info中提供的声明位置信息到声明实体中查找对应的SAML认证声明,向声明实体发出消息要求查找SAML认证声明,声明实体根据消息中的认证声明位置信息查找SAML认证声明。声明实体查找到SAML认证声明说明已经对该用户代理客户端进行过认证,在发送域对用户身份的认证已完成。如果验证实体要求返回SAML认证声明,则将查到的SAML认证声明返回给验证实体,如出现错误则返回错误响应。
发送方网络代理服务器还可以在向声明实体发送查找认证声明的请求消息的同时,向声明实体提交用户角色及会话属性,要求声明实体生成属性声明或授权声明,用于域间会话的认证。
声明实体根据用户角色及会话属性生成属性声明,生成属性声明的功能模块可以被称为属性权威。
根据具体的会话需求,如果需要生成授权声明,发送方网络代理服务器发出的请求消息中会表明请求生成授权声明。例如对于提供通话质量等级区分的电话业务,如果该用户属于订购了高等级服务的用户,在电话量高峰期,需要请求发送方网络代理服务器直接授权用户使用高等级的服务,此时需要生成授权声明,用于接收方代理服务器直接按授权声明中表示的服务等级提供服务。
声明实体根据用户角色及会话属性生成授权声明,生成授权声明的功能模块可以被称为授权决策机构。
属性声明可以保存于声明实体的属性列表中,以备与其他实体交互时使用,例如计费服务器。授权声明保存于声明实体中,以备接收方用户对其访问权限做验证。
声明实体向发送方网络代理服务器返回所生成的用于授权的声明存放的地址。
由于用户发起的是一个域间会话,目标用户在另一个域,则发送方网络代理服务器向用户访问的接收方代理服务器发送SIP Invite消息,该SIP Invite消息携带有用于授权的声明的存放地址,保存于INVITE消息的SAML-Author-Info头域。
接收方代理服务器收到SIP Invite消息后,根据其携带的用于授权的声明位置信息即存放的地址去声明实体中进行查找。
声明实体将查找到的用于授权的声明返回给接收方验证实体,如果出现错误则返回错误响应。
此时如果声明实体返回给接收方的响应消息中包含属性声明,则接收方获得了发出会话请求的用户的属性信息,接收方可以基于该属性信息对发出会话请求的用户进行授权,建立会话;如果声明实体返回给接收方的响应消息中包含授权声明,则接收方获得了发出会话请求的用户的授权信息,此时授权已完成,接收方可以基于该授权信息与发出会话请求的用户建立会话。如果声明实体返回给接收方的响应消息中同时包含属性声明和授权声明,则选择其中的一个完成授权。
由以上描述可以看出用户在发起域间会话时,直接到声明实体查找认证声明,进而声明实体根据认证声明生成用于授权的声明即可完成认证及授权。
现以实例来说明用户在发起域间会话时,本发明实施例提供的会话发起协议认证及授权方法实施例的实现方式。
发送方用户Alice的用户代理(UA,User Agent)的标记地址(AOR,Address-of-Record)为:sip:Aliceexample.com;所在域为example.com;网络代理服务器为:Ss1.example.com。
用户Alice为发起会话方,因此用户Alice可以被称为用户代理客户端A。
接收方用户Bob的UA的AOR为:sip:Bobexample2.com;所在域为example2.com;网络代理服务器为:Ss2.example2.com
用户Bob为接收方,因此用户Bob可以被称为用户代理服务器(UAS,User Agent Server)B。
发送域example.com与接收域example2.com互为信任域。由于在实际使用中验证实体通常由接收方的代理服务器担任,也可能是网络代理服务器或UAS担任,因此本发明实施例提供的会话发起协议认证及授权方法实施例一将以验证实体由UAS担任为例进行描述。
本发明实施例提供的会话发起协议认证及授权方法实施例一的流程如图3所示:
步骤301、用户代理客户端A向发送方网络代理服务器Ss1.example.com发起INVITE请求。
发送方Alice需与接收方Bob进行通信,首先向发送方网络代理服务器发起INVITE请求,在INVITE请求中携带认证声明位置信息,认证声明位置信息保存于INVITE消息的SAML-Autheh-Info头域。同时还可以增加支持(Supported)头字段表明用户终端支持SAML认证功能,此时SIP 200 ok消息实例如下所示:
INVITE sip:Aliceexample.com SIP/2.0
Via:SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74b43
Max-Forwards:70
Route:<sip:Ss1.example.com;lr>
From:Alice<sip:Aliceexample.com>;tag=9fxced76sl
To:Bob<sip:Bobexample.com>
Call-ID:3848276298220188511example.com
CSeq:1 INVITE
Contact:<sip:Aliceclient.example.com;transport=tcp>
Supported:SAML-auth //表示UAC支持SAML认证
SAML-Authen-Info:https://example.com/assns/?ID=IcmVR0bzU% //认证声明位置信息
Content-Type:application/sdp
Content-Length:147
v=0
o=Bob 2890844527 2890844527 IN IP4 client.biloxi.example.com
s=-
c=IN IP4 192.0.2.201
t=0 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
步骤302、发送方网络代理服务器Ss1.example.com接收到INVITE消息后,从SAML-Authen-Info中提取声明实体的地址,并向声明实体发出HTTP请求(request)要求获得用户Alice的认证声明信息包,并要求声明实体生成用于授权的声明。
本实施例中发送方网络代理服务器Ss1.example.com从SAML-Authen-Info中提取的声明实体地址为https://example.com/assns/?ID=
1cmVR0bzU%。发送方网络代理服务器Ss1.example.com将SIP头域消息及用于授权的声明的请求信息进行打包为基于HTTP的简单对象访问协议(SOAP,Simple Object Access Protocol OVER HTTP)的方式,形成HTTPrequest消息发送给声明实体。
SOAP OVER HTTP数据包结构如图4所示:包括SOAP消息、SAML正文、SAML请求响应、SIP头字段和HTTP部分;SAML正文包括SAML请求响应、SIP头字段部分,SOAP消息包括SAML正文部分,和HTTP部分共同构成SOAP OVER HTTP数据包。
步骤303、声明实体根据认证声明位置信息查找用户终端对应的认证声明,根据请求中的相关信息生成用于授权的声明。声明实体接收到HTTPrequest消息,根据HTTP request消息携带的认证声明位置信息查找用户Alice对应的SAML认证声明。当认证声明存在时,在该HTTP request消息要求生成属性声明时,声明实体中的属性声明权威根据提交的SIP消息头域生成属性声明;在该HTTP request消息要求生成授权声明时,声明实体中的策略决策点根据用户属性进行决策并生成授权声明,保存于声明实体数据库中。
步骤304、声明实体向发送方网络代理服务器返回HTTP响应(respond)消息,该消息携带有用于授权的声明的存放地址。
为了保证消息的完整性及声明实体对终端所做声明的真实性,我们利用域证书,即声明实体的私钥对用于授权的声明进行签名,并将域证书插入到用于授权的声明中,存储在声明实体中,然后向发送方网络代理服务器返回用于授权的声明存放地址。如果用于授权的声明生成失败、或者发生其他的错误导致无法返回发送方网络代理服务器用于授权的声明的存放地址时,将返回错误代码(425 bad saml asserntion)到发送方网络代理服务器。
在选择声明的传输方式时,除了上述在SIP消息头中携带声明的存放地址的方式外,还可以采用在SIP消息中直接携带声明的方式,即将SAML声明直接加入SIP消息体的传输方式。这时,消息类型(Content-Type)中应声明支持SAML语言的这种类型格式,可以新定义一个参数saml,表示消息体中的消息格式为SAML语言的格式。以下是在SIP中携带SAML声明的例子:
INVITE sip:Bob example.com SIP/2.0
Via:SIP/2.0/TCP Ss1.example.com:5060;branch=z9hG4bK2d4790.1
Via:SIP/2.0/TCP client.example.com:5060;branch=z9hG4bK74bf9;received=192.0.2.101
Max-Forwards:69
Record-Route:<sip:Ss1.example.com;lr>
From:Alice<sip:Aliceexample.com>;tag=9fxced76sl
To:Bob<sip:Bobexample.com>
Call-ID:3848276298220188511example.com
CSeq:2 INVITE
Contact:<sip:Aliceexample.com;transport=tcp>
Supported:saml-auth
Content-Type:multipart/mixed;boundary=bar
--bar--
Content-type:text/saml //直接将声明携带在SIP消息中,格式为text/saml
<saml:Assertion ID=″_a75adf55-01d7-40cc-929f-dbd8372ebdfc″
……
</saml:Assertion>
--bar--
Content-Type:application/sdp
Content-Transfer-Encoding:base64
v=0
o=Bob 2890844527 2890844527 IN IP4 client.biloxi.example.com
s=-
c=IN IP4 192.0.2.201
t=0 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
在发送方网络代理服务器要求返回SAML认证声明时,可以同时在返回消息中携带SAML认证声明。
步骤305、发送方网络代理服务器收到该HTTP respond信息后,将带有用于授权的声明存放地址的INVITE请求,向接收方网络代理服务器Ss2.example2.com发送。
此时INVITE请求消息实例如下所示:
INVITE sip:Bob example.com SIP/2.0
Via:SIP/2.0/TCP Ss1.example.com:5060;branch=z9hG4bK2d4790.1
Via:SIP/2.0/TCP client.example.com:5060;branch=z9hG4bK74bf9;received=192.0.2.101
Max-Forwards:69
Record-Route:<sip:Ss1.example.com;lr>
From:Alice<sip:Aliceexample.com>;tag=9fxced76sl
To:Bob<sip:Bobexample.com>
Call-ID:3848276298220188511example.com
CSeq:2 INVITE
Contact:<sip:Aliceexample.com;transport=tcp>
Supported:saml-auth
Saml-Author-Info:https://example.com/assns/?ID=dertd
//用于授权的声明存放地址
Saml-Author-Artifact:AAQAADdrege5VT47wcO4Zx%2FiEzMmFQvGknDfws2ZtqSGdKNSbsW1cmVR0bzU%
Content-Type:application/sdp
Content-Length:147
步骤306、接收方网络代理服务器Ss2.example2.com收到INVITE请求后,将该INVITE请求发送到用户代理服务器B。
此时用户代理服务器B和接收方网络代理服务器Ss2.example2.com均收到了用于授权的声明存放地址,由于实际使用中,验证实体通常由接收方的代理服务器担任,可能位于用户代理服务器B,也可能位于接收方网络代理服务器Ss2.example2.com,本实施例以验证实体位于用户代理服务器B进行后续流程的描述。
步骤307、用户代理服务器B在收到INVITE请求后,根据Saml-Author-Info头域中提供的用于授权的声明存放地址,发送HTTP获取(get)消息到声明实体,去声明实体中获取用于授权的声明。
步骤308、声明实体返回HTTP应答消息(HTTP 200 OK)给用户代理服务器B,该HTTP 200 OK消息携带有用域证书进行签名的用于授权的声明。
声明实体收到HTTP get消息后,根据HTTP get消息携带的信息,查找到对应的用于授权的声明,发送到用户代理服务器B,发送时,可以使用域证书对该用于授权的声明进行签名。
步骤309、用户代理服务器B验证用户Alice的身份。
用户代理服务器B通过对HTTP 200 OK消息SIP头域信息及用户声明对象的信息对象(subject)字段的对比,验证用户Alice的身份,相同则验证通过,证明用户Alice的身份是可信的。
如果用于授权的声明为属性声明,则基于该属性信息对发出会话请求的用户进行授权,在其属性信息说明用户Alice有访问接收域example2.com,与用户代理服务器B建立会话的权限时,为用户Alice进行授权;如果用于授权的声明为授权声明,则通过查看授权声明,实现对用户访问权限的验证,看用户Alice有没有访问接收域example2.com,与用户代理服务器B建立会话的权限;如果用于授权的声明包含属性声明和授权声明,则选择其中的一个完成授权。
验证的内容包括以下五个方面:
1、从用于授权的声明中提取域证书,检验域证书的有效性,如有效日期、颁发机构,是否在撤销列表中。若域证书有效,则继续进行其他验证;否则,向发送方网络代理服务器返回437“证书无效(unsupported certificate)”消息,表明证书无效。
2、检验域证书中的颁发对象(Subject)字段与用于授权的声明中的发布者(issue)是否是同一主体,验证声明实体的合法性。若结果为是同一主体,声明实体验证通过,则继续进行其他验证;否则,向发送方代理服务器返回477“声明服务器无效(invalid assertion server)”,表明发布用于授权的声明的声明实体无效。
3、检验用于授权的声明中的签名值。利用证书的公钥来验证签名,验证声明实体的真实性,同时验证该声明的完整性。若验证通过,则继续进行其他验证;否则,向发送方代理服务器返回479“SAML声明无效(invalid SAMLassertion)”消息,表明用于授权的SAML声明无效。
4、通过查看用于授权的声明中的信息,并对比SIP头字段与消息体中声明的某些字段,来验证发送者的身份是否真实。比对内容包括:
①比对用于授权的声明中的发布时间(IssueInstant),判断声明时间是否位于证书的有效期内。
②比对SIP头域中的FROM字段与声明中的身份标志(NameId),判断两者是否相同,验证签名者是否与被声明的主体位于同一个域内。
③比对SIP头域中的To字段与用于授权的声明中的接收(audience)字段,验证目标主体是否位于用于授权的声明所声明的域内。
接收端对声明进行验证时,由于是在SAML中插入了SIP的相关的头域字段,因此直接比对各个字段即可。
若验证通过,则继续进行其他验证;否则,向发送方代理服务器返回478“不知名的SAML声明错误(unknown saml assertion content)”,表明用于授权的声明中包含错误的元素。
5、查看用于授权的声明中的授权决策声明(AuthzDecisionStatement),验证发送方是否已经被授权与接收方进行通信。若验证通过,在有其他验证时继续进行其他可能需要进行的验证,所有验证都通过时,可以向发送方代理服务器返回验证成功响应;否则,向发送方代理服务器返回476“未授权或权限不符(invalid AuthzDecision assertion)”消息,表明发送方未被授权或权限不符。
以上验证没有顺序关系,先验证任何一个均可,当5步验证均通过时,对发送者的身份验证即为成功,任何一步验证不能通过都会引起验证失败,这里使用的错误响应代码只是一个示例,可以使用其他代码替代。
验证通过,则认证成功。
步骤310、验证通过后,用户代理服务器B向接收方网络代理服务器Ss2.example2.com返回200 OK响应;接收方网络代理服务器Ss2.example2.com向发送方网络代理服务器Ss1.example.com返回200 OK响应;发送方网络代理服务器Ss1.example.com向用户代理客户端A返回200 OK响应。
此时即可建立用户Alice和用户Bob之间的会话。
该实施例中,用户Bob也可以是一个网络服务的服务器,那么以上流程就是用户Alice访问该网络服务时,对Alice的服务访问权限的验证过程。
假如步骤310的验证没有通过,或者用户Alice没有与用户代理服务器B建立会话的权限,则根据不同情况返回不同的错误代码,例如上文提到的437、477、478、479等等。
在本发明实施例提供的会话发起协议认证及授权方法实施例中,在用户发起域间会话时,只需要到声明实体查找属于发起会话用户的认证声明,查找到对应认证声明,即可使声明实体为该用户生成用于授权的声明,以完成认证和授权,避免了重复认证,流程更加简洁,有效,节省了系统资源。
进一步,在基于SIP的“多方会议”的场景中,一个用户可能拥有多个身份,例如一个用户可以既是“华为的员工”,又是“金牌用户”,基于一个用户的多个身份,一个用户可以参加多个会议,在这种情况下,用户的角色变化会比较频繁,现有技术没有给出使用SAML解决的方案,本发明实施例提供的会话发起协议注册方法及本发明实施例提供的会话发起协议认证及授权方法实施例给出的解决方案如下所述:
一个用户可以参加多个会议时的系统结构如图5所示,包括:会议中心节点502、会议服务器503、会议服务器504、用户501、用户505、用户506、用户507、用户508、用户509、用户510。
用户501具有多个身份,可以参加会议服务器503的会议,也可以参加会议服务器504的会议。
本发明实施例提供的会话发起协议注册方法实施例中,可以由会议中心节点502担任声明实体,用户501首先向会议中心节点502进行注册,会议服务器完成对用户501的认证,为用户501生成对应的认证声明,存储于数据库的声明列表中,并向用户501发放认证声明位置信息。
本发明实施例提供的会话发起协议认证及授权方法实施例中,当用户501需要参加某个分会场的会议,例如需要参加会议服务器503会议时,用户501向会议服务器503发出权限申请的会话请求,会议服务器503根据用户的身份凭证,到会议中心节点502查找用户501对应的认证声明,进而完成认证;同时根据会话需求,会议服务器503请求会议中心节点502对用户501进行授权,并得到授权凭证,进而完成了访问会议的权限管理。
此时,当用户还要参加会议服务器504的会议时,会议服务器504无需再次对用户进行认证,直接请求会议中心节点502对该用户进行授权,按照上述的授权流程即可完成用户的授权管理。
本发明提供的会话发起协议注册、认证及授权方法实施例,包括:
用户发送要求进行安全声明标记语言认证的注册消息;
收到所述注册消息后,对所述用户进行认证,认证通过生成所述用户的安全声明标记语言认证声明;为用户进行注册;存储所述认证声明;向所述用户返回所述认证声明的位置信息;
发送会话发起协议会话请求,所述会话请求为域间会话请求;
根据所述会话发起协议会话请求携带的所述用户的认证声明位置信息发送消息到声明实体,查找所述用户对应的安全声明标记语言认证声明,并要求所述声明实体生成所述用户对应的用于授权的声明;
查找到所述用户对应的安全声明标记语言认证声明后,生成所述用户对应的用于授权的声明;返回所述用于授权的声明的存放地址;
向被访问域的接收方网络代理服务器发送会话发起协议会话请求,所述会话请求携带有用于授权的声明的存放地址;
所述接收方代理服务器根据所述用于授权的声明的存放地址向所述声明实体获取所述用于授权的声明,实现认证及授权。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括如下步骤:
一种会话发起协议注册方法,包括:
接收用户发送的要求进行安全声明标记语言认证的注册消息;
对所述用户进行认证,认证通过生成所述用户的安全声明标记语言认证声明;
为用户进行注册;
存储所述认证声明;
向所述用户返回所述认证声明的位置信息。
一种会话发起协议认证及授权方法,包括:
接收用户发送的会话发起协议会话请求,所述会话请求为域间会话请求;
根据所述会话发起协议会话请求携带的所述用户的认证声明位置信息发送消息到声明实体,查找所述用户对应的安全声明标记语言认证声明,并要求所述声明实体生成所述用户对应的用于授权的声明;
接收所述用于授权的声明的存放地址;
向被访问域的接收方网络代理服务器发送会话发起协议会话请求,所述会话请求携带有用于授权的声明的存放地址,以使所述接收方代理服务器根据所述用于授权的声明的存放地址获取所述用于授权的声明,实现认证及授权。
一种会话发起协议认证及授权方法,包括:
接收位于发送域的发送方网络代理服务器发送的消息;
根据所述消息查找用户对应的安全声明标记语言认证声明,并为所述用户生成用于授权的声明;
将所述用于授权的声明的存放地址向所述发送方网络代理服务器发送;
接收被访问域的接收方代理服务器发送的获取消息;
根据所述获取消息查找所述用户对应的用于授权的声明;
发送所述用于授权的声明给所述接收方代理服务器,以实现认证及授权。
一种会话发起协议认证及授权方法,包括:
接收发送方网络代理服务器发送的用户的用于授权的声明的存放地址;
根据所述用于授权的声明的存放地址向声明实体发送获取消息,获取所述用于授权的声明;
根据所述用于授权的声明验证用户,验证通过,则认证及授权成功。
一种会话发起协议注册、认证及授权方法,包括:
用户在请求注册的同时请求生成安全声明标记语言认证声明;
对所述用户认证后,生成安全声明标记语言认证声明,为用户注册并存储所述认证声明,向所述用户返回认证声明位置信息;
所述用户发起会话发起协议会话请求,所述会话请求携带所述认证声明位置信息,为域间会话请求;
基于已经保存的认证声明和所述用户的身份信息生成用于授权的声明,以实现认证及授权。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
本发明实施例提供会话发起协议注册系统实施例,包括:
注册服务器,用于接收要求进行安全声明标记语言认证的注册消息;对用户进行认证,认证通过生成所述用户的安全声明标记语言认证声明;为用户进行注册;存储所述认证声明;返回所述认证声明的位置信息;
用户代理客户端,用于向所述注册服务器发送要求进行安全声明标记语言认证的注册消息;接收所述注册服务器返回的认证声明位置信息。
其中,注册服务器和用户代理客户端的详细结构可参考下文对本发明实施例提供的注册服务器实施例、本发明实施例提供的声明实体实施例一的描述。
本发明实施例提供的注册服务器实施例结构如图6所示,包括:
注册单元610,用于接收用户发送的要求进行安全声明标记语言认证的注册消息,为用户进行认证及注册;
认证声明位置单元620,用于在所述注册单元610收到用户发送的要求进行安全声明标记语言认证的注册消息并认证通过后,获取所述用户的安全声明标记语言认证声明的位置信息,向所述用户返回所述认证声明位置信息。
其中,在声明实体由注册服务器担任时,认证声明位置单元620包括:
第一认证声明单元621,在注册单元610对所述用户认证通过后,根据所述用户的身份信息生成所述用户的安全声明标记语言认证声明,存储所述认证声明;
第一位置信息单元622,用于向所述用户返回所述认证声明位置信息。
在声明实体独立于注册服务器时,认证声明位置单元620包括:
认证声明服务请求单元623,在注册单元610对用户认证通过后,用于向声明实体发送认证声明服务请求,以使所述声明实体生成所述用户的安全声明标记语言认证声明;
第二位置信息单元624,用于接收所述声明实体返回的所述认证声明的存放地址及凭证,并向所述用户返回所述认证声明位置信息。
本发明实施例提供的声明实体实施例一如图7所示,包括:
第二认证声明单元1101,用于接收注册服务器发送的认证声明服务请求,根据所述认证声明服务请求携带的用户身份信息生成所述用户的安全声明标记语言认证声明,存储所述认证声明;
第三位置信息单元1102,用于向所述注册服务器返回所述认证声明的存放地址。
本发明实施例提供的用户代理客户端实施例一如图8所示,包括:
注册请求单元1201,用于向注册服务器发送要求进行安全声明标记语言认证的注册消息,以使所述注册服务器可以为所述用户代理客户端生成安全声明标记语言认证声明;
接收位置信息单元1202,用于接收所述注册服务器返回的认证声明位置信息。
本发明实施例提供的会话发起协议注册系统实施例、注册服务器实施例、声明实体实施例一、用户代理客户端实施例一的具体实现方式,可参考本发明实施例提供的会话发起协议注册方法实施例的描述,在此不再重复描述。
本发明实施例提供的会话发起协议认证及授权系统实施例结构如图9所示,包括:
用户代理客户端1301,用于向网络代理服务器发送会话发起协议会话请求,发起域间会话;在所述会话发起协议会话请求中携带认证声明的位置信息;
网络代理服务器1302,用于接收用户代理客户端发送的会话发起协议会话请求;从所述会话发起协议会话请求中获取所述认证声明的位置信息;根据所述认证声明的位置信息发送消息到声明实体查找所述用户代理客户端对应的安全声明标记语言认证声明,并要求所述声明实体生成所述用户代理客户端对应的用于授权的声明;接收所述用于授权的声明的存放地址;向处于被访问域的接收方网络代理服务器发送会话发起协议会话请求,所述会话发起协议会话请求携带有声明实体为所述用户代理客户端生成的用于授权的声明的存放地址;
声明实体1304,用于接收网络代理服务器发送的消息;根据所述消息查找用户对应的安全声明标记语言认证声明;在查找到用户对应的安全声明标记语言认证声明时,为所述用户生成用于授权的声明;将所述用于授权的声明存放地址向所述网络代理服务器发送;接收接收方代理服务器发送的获取消息,根据所述获取消息查找用户对应的用于授权的声明,返回给所述接收方代理服务器;
代理服务器1305,用于接收位于发送域的网络代理服务器发送的用于授权的声明存放地址;根据所述用于授权的声明存放地址向声明实体发送获取消息,获取对应的用于授权的声明;用于根据所述用于授权的声明验证用户代理客户端,验证通过,则认证及授权成功。
本发明实施例提供的用户代理客户端实施例二结构如图10所示,包括:
会话发起单元701,用于向网络代理服务器发送会话发起协议会话请求,触发会话;
第四位置信息单元702,用于在所述会话发起协议会话请求中携带认证声明的位置信息,以使所述网络代理服务器根据所述认证声明位置信息发送消息到声明实体完成对所述用户代理客户端的认证及授权;
标志单元703,用于在所述会话发起协议会话请求中携带所述用户代理客户端支持安全声明标记语言认证功能的标记。
所述用户代理客户端实施例二可以在实施例一的基础上进行改进,即实施例二还可以实施例一中的注册请求单元1201和接收位置信息单元1202,具体的实现过程可以参照前述方法和相关装置的实施例。
本发明实施例提供的网络代理服务器实施例结构如图11所示,包括:
会话请求单元801,用于接收用户代理客户端发送的会话发起协议会话请求;
第五位置信息单元802,用于从所述会话发起协议会话请求中获取认证声明位置信息;
地址获取单元803,用于根据所述认证声明的位置信息发送消息到声明实体查找所述用户代理客户端对应的安全声明标记语言认证声明,并要求所述声明实体生成所述用户代理客户端对应的用于授权的声明;接收所述用于授权的声明存放地址;
第一授权单元804,用于向处于被访问域的接收方网络代理服务器发送会话发起协议会话请求,所述会话发起协议会话请求携带有声明实体为所述用户代理客户端生成的用于授权的声明的存放地址,以使所述接收方代理服务器根据所述用于授权的声明存放地址获取所述用于授权的声明,实现认证及授权。
本发明实施例提供的声明实体实施例二结构如图12所示,包括:
认证声明查找单元901,用于接收发送方网络代理服务器发送的消息;根据所述消息查找用户对应的安全声明标记语言认证声明;
授权单元902,用于在所述认证声明查找单元查找到用户对应的安全声明标记语言认证声明时,为所述用户生成用于授权的声明;将所述用于授权的声明存放地址向所述发送方网络代理服务器发送;
授权声明查找单元903,用于接收接收方代理服务器发送的获取消息,根据所述获取消息查找用户对应的用于授权的声明,返回给所述接收方代理服务器,以实现认证及授权。
所述声明实体实施例二可以在实施例一的基础上进行改进,即实施例二还可以实施例一中的第二认证声明单元1101和第三位置信息单元1102,具体的实现过程可以参照前述方法和相关装置的实施例。
本发明实施例提供的代理服务器实施例结构如图13所示,包括:
存放地址接收单元1001,用于接收发送方网络代理服务器发送的用于授权的声明存放地址;
授权声明获取单元1002,用于根据所述用于授权的声明存放地址向声明实体发送获取消息,获取对应的用于授权的声明;
第二验证单元1003,用于根据所述用于授权的声明验证用户代理客户端,验证通过,则认证成功。
第三验证单元1004,用于在所述用于授权的声明携带有所述声明实体的签名时,验证所述签名,在验证通过时,验证所述用户代理客户端。
本发明实施例提供的会话发起协议认证及授权系统实施例、用户代理客户端实施例二、网络代理服务器实施例、声明实体实施例二、代理服务器实施例的具体实现方式,可参考本发明实施例提供的会话发起协议认证及授权方法实施例的描述,在此不再重复描述。
本发明实施例提供的会话发起协议注册、认证及授权系统实施例结构如图14所示,包括:
用户代理客户端1401,用于发送要求进行安全声明标记语言认证的注册消息;发送会话发起协议会话请求,所述会话请求为域间会话请求;
注册服务器1402,用于收到所述注册消息后,对所述用户进行认证,认证通过生成所述用户的安全声明标记语言认证声明;为用户进行注册;存储所述认证声明;向所述用户返回所述认证声明的位置信息;
网络代理服务器1403,用于根据所述会话发起协议会话请求携带的所述用户的认证声明位置信息发送消息到声明实体,并要求所述声明实体生成所述用户对应的用于授权的声明;用于向处于被访问域的接收方网络代理服务器发送会话发起协议会话请求,所述会话发起协议会话请求携带有声明实体为所述用户代理客户端生成的用于授权的声明的存放地址;
声明实体1404,用于查找所述用户对应的安全声明标记语言认证声明,查找到后,生成所述用户对应的用于授权的声明;返回所述用于授权的声明的存放地址;接收接收方代理服务器发送的获取消息,根据所述获取消息查找用户对应的用于授权的声明,返回给所述接收方代理服务器;
代理服务器1405,用于接收位于发送域的发送方网络代理服务器发送的用于授权的声明存放地址;根据所述用于授权的声明存放地址向声明实体发送获取消息,获取对应的用于授权的声明;根据所述用于授权的声明验证用户代理客户端,验证通过,则认证及授权成功。
本发明实施例提供的会话发起协议注册、认证及授权系统实施例的具体实现方式,可参考本发明实施例提供的会话发起协议注册、认证及授权方法实施例的描述,在此不再重复描述。
以上对本发明所提供的一种会话发起协议注册方法、认证及授权的方法及设备进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (12)
1.一种会话发起协议认证及授权方法,其特征在于,包括:
接收用户的会话发起协议会话请求,所述会话请求为域间会话请求;
根据所述会话发起协议会话请求携带的所述用户的认证声明位置信息发送消息到声明实体,查找所述用户对应的安全声明标记语言认证声明,并要求所述声明实体生成所述用户对应的用于授权的声明;
接收所述用于授权的声明的存放地址;
向被访问域的接收方网络代理服务器发送会话发起协议会话请求,所述会话请求携带有用于授权的声明的存放地址,以使所述接收方代理服务器根据所述用于授权的声明的存放地址获取所述用于授权的声明,实现认证及授权。
2.如权利要求1所述的会话发起协议认证及授权方法,其特征在于,所述用于授权的声明包括:属性声明和/或授权声明。
3.一种会话发起协议认证及授权方法,其特征在于,包括:
接收位于发送域的发送方网络代理服务器发送的消息;
根据所述消息查找用户对应的安全声明标记语言认证声明,并为所述用户生成用于授权的声明;
将所述用于授权的声明的存放地址向所述发送方网络代理服务器发送;
接收被访问域的接收方代理服务器发送的获取消息;
根据所述获取消息查找所述用户对应的用于授权的声明;
发送所述用于授权的声明给所述接收方代理服务器,以实现认证及授权。
4.如权利要求3所述的会话发起协议认证及授权方法,其特征在于,所述接收方代理服务器包括:接收方网络代理服务器或接收方用户代理服务器。
5.如权利要求3所述的会话发起协议认证及授权方法,其特征在于,还包括:
使用域证书对所述用于授权的声明进行签名;
发送所述签名后的用于授权的声明给所述接收方代理服务器。
6.一种会话发起协议注册、认证及授权方法,其特征在于,包括:
用户在请求注册的同时请求生成安全声明标记语言认证声明;
对所述用户认证后,生成安全声明标记语言认证声明,为用户注册并存储所述认证声明,向所述用户返回认证声明位置信息;
所述用户发起会话发起协议会话请求,所述会话请求携带所述认证声明位置信息,为域间会话请求;
基于已经保存的认证声明和所述用户的身份信息生成用于授权的声明,以实现认证及授权。
7.如权利要求6所述的会话发起协议注册、认证及授权方法,其特征在于,所述用户在请求注册的同时请求生成安全声明标记语言认证声明包括:
所述用户发送要求进行安全声明标记语言认证的注册消息。
8.如权利要求6所述的会话发起协议注册、认证及授权方法,其特征在于,生成所述认证声明后,向所述用户返回所述认证声明的位置信息;
所述用户发起会话发起协议会话请求,所述会话请求携带所述认证的声明位置信息;
基于所述认证声明的位置信息查找所述认证声明,进而生成用于授权的声明。
9.一种声明实体,其特征在于,包括:
第二认证声明单元,用于接收注册服务器发送的认证声明服务请求,根据所述认证声明服务请求携带的用户身份信息生成所述用户的安全声明标记语言认证声明,存储所述认证声明;
第三位置信息单元,用于向所述注册服务器返回所述认证声明的存放地址;
认证声明查找单元,用于接收发送方网络代理服务器发送的消息;根据所述消息查找用户对应的安全声明标记语言认证声明;
授权单元,用于在所述认证声明查找单元查找到用户对应的安全声明标记语言认证声明时,为所述用户生成用于授权的声明;将所述用于授权的声明存放地址向所述发送方网络代理服务器发送;
授权声明查找单元,用于接收接收方代理服务器发送的获取消息,根据所述获取消息查找用户对应的用于授权的声明,返回给所述接收方代理服务器,以实现认证及授权。
10.一种会话发起协议认证及授权系统,其特征在于,包括:
用户代理客户端,用于向网络代理服务器发送会话发起协议会话请求,发起域间会话,所述会话请求中携带认证声明位置信息;
网络代理服务器,根据所述认证声明位置信息到声明实体查找所述用户代理客户端对应的安全声明标记语言认证声明,并要求生成用于授权的声明;接收所述用于授权的声明存放地址;向接收方网络代理服务器发送会话发起协议会话请求,会话请求中携带所述用于授权的声明的存放地址;
声明实体,查找所述用户对应的安全声明标记语言认证声明;为所述用户生成用于授权的声明;将所述用于授权的声明存放地址向所述网络代理服务器发送;查找用户对应的用于授权的声明,发送给接收方代理服务器;
接收方代理服务器,用于接收位于网络代理服务器发送的用于授权的声明存放地址;向声明实体获取对应的用于授权的声明;验证用户代理客户端,验证通过,则认证及授权成功。
11.一种网络代理服务器,其特征在于,包括:
会话请求单元,用于接收用户代理客户端发送的会话发起协议会话请求;
第五位置信息单元,用于从所述会话发起协议会话请求中获取认证声明位置信息;
地址获取单元,用于根据所述认证声明位置信息发送消息到声明实体查找所述用户代理客户端对应的安全声明标记语言认证声明,并要求所述声明实体生成所述用户代理客户端对应的用于授权的声明;接收所述用于授权的声明存放地址;
第一授权单元,用于向处于被访问域的接收方网络代理服务器发送会话发起协议会话请求,所述会话发起协议会话请求携带有声明实体为所述用户代理客户端生成的用于授权的声明的存放地址,以使所述接收方代理服务器根据所述用于授权的声明存放地址获取所述用于授权的声明,实现认证及授权。
12.一种声明实体,其特征在于,包括:
认证声明查找单元,用于接收发送方网络代理服务器发送的消息;根据所述消息查找用户对应的安全声明标记语言认证声明;
授权单元,用于在所述认证声明查找单元查找到用户对应的安全声明标记语言认证声明时,为所述用户生成用于授权的声明;将所述用于授权的声明存放地址向所述发送方网络代理服务器发送;
授权声明查找单元,用于接收接收方代理服务器发送的获取消息,根据所述获取消息查找用户对应的用于授权的声明,返回给所述接收方代理服务器,以实现认证及授权。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810082635A CN101521660B (zh) | 2008-02-27 | 2008-02-27 | 会话发起协议注册方法、认证及授权方法、系统及设备 |
PCT/CN2009/070514 WO2009105988A1 (zh) | 2008-02-27 | 2009-02-24 | 会话发起协议注册方法、认证及授权方法、系统及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810082635A CN101521660B (zh) | 2008-02-27 | 2008-02-27 | 会话发起协议注册方法、认证及授权方法、系统及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101521660A CN101521660A (zh) | 2009-09-02 |
CN101521660B true CN101521660B (zh) | 2012-10-03 |
Family
ID=41015528
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810082635A Active CN101521660B (zh) | 2008-02-27 | 2008-02-27 | 会话发起协议注册方法、认证及授权方法、系统及设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN101521660B (zh) |
WO (1) | WO2009105988A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9369286B2 (en) | 2013-11-27 | 2016-06-14 | Tata Consultancy Services Limited | System and methods for facilitating authentication of an electronic device accessing plurality of mobile applications |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102045317B (zh) * | 2009-10-15 | 2016-06-08 | 华为技术有限公司 | 实现多方通信的方法、装置及系统 |
CN102750479B (zh) * | 2012-06-12 | 2018-08-07 | 北京英华高科科技有限公司 | 一种分层软件版权保护方法 |
CN104065616B (zh) * | 2013-03-20 | 2017-06-20 | 中国移动通信集团公司 | 单点登录方法和系统 |
CN103401876B (zh) * | 2013-08-07 | 2017-02-22 | 武汉大学 | 一种基于变尺度窗口机制的VoIP服务安全保障方法与系统 |
CN106452774B (zh) * | 2015-08-07 | 2020-07-10 | 百度在线网络技术(北京)有限公司 | 基于单点登录协议进行访问权限控制的方法和装置 |
CN106998315B (zh) * | 2016-01-22 | 2020-04-28 | 阿里巴巴集团控股有限公司 | 一种注册认证的方法、装置及系统 |
CN108270747B (zh) * | 2016-12-30 | 2021-08-13 | 杭州华为企业通信技术有限公司 | 一种认证方法及装置 |
CN107172221B (zh) * | 2017-07-26 | 2020-08-04 | 成都三零盛安信息系统有限公司 | 跨域会话管理方法和装置 |
CN109995535B (zh) * | 2017-12-29 | 2022-05-10 | 中移(杭州)信息技术有限公司 | 一种sip用户认证方法及装置 |
CN110971397B (zh) * | 2018-09-28 | 2021-09-14 | 华为技术有限公司 | 一种通信的方法、通信装置、服务器和系统 |
BR112022008022A2 (pt) * | 2019-11-04 | 2022-07-12 | Huawei Tech Co Ltd | Método de autenticação de identidade e aparelho de comunicações |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070245411A1 (en) * | 2005-09-15 | 2007-10-18 | Gregory Newton | Methods, systems and computer program products for single sign on authentication |
-
2008
- 2008-02-27 CN CN200810082635A patent/CN101521660B/zh active Active
-
2009
- 2009-02-24 WO PCT/CN2009/070514 patent/WO2009105988A1/zh active Application Filing
Non-Patent Citations (3)
Title |
---|
H.Tschofenig ET AL.Using SAML for SIP,draft-tschofenig-sip-saml-04.txt.《Using SAML for SIP》.2005, * |
高俊娜.在IMS中SIP协议的实现以及安全管理研究.《浙江大学硕士学位论文》.2005, * |
高俊娜等.一种新的SIP SSO机制.《计算机应用》.2004,第24卷(第5期), * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9369286B2 (en) | 2013-11-27 | 2016-06-14 | Tata Consultancy Services Limited | System and methods for facilitating authentication of an electronic device accessing plurality of mobile applications |
Also Published As
Publication number | Publication date |
---|---|
WO2009105988A1 (zh) | 2009-09-03 |
CN101521660A (zh) | 2009-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101521660B (zh) | 会话发起协议注册方法、认证及授权方法、系统及设备 | |
CN100571134C (zh) | 在ip多媒体子系统中认证用户终端的方法 | |
Peterson et al. | Enhancements for authenticated identity management in the session initiation protocol (SIP) | |
US6938090B2 (en) | Authentication and protection for IP application protocols based on 3GPP IMS procedures | |
US7574735B2 (en) | Method and network element for providing secure access to a packet data network | |
ES2390988T3 (es) | Gestión de mensajes en un subsistema multimedia IP | |
US20080120705A1 (en) | Systems, Methods and Computer Program Products Supporting Provision of Web Services Using IMS | |
US8713634B2 (en) | Systems, methods and computer program products supporting provision of web services using IMS | |
US20110138453A1 (en) | Single sign-on in mixed http and sip environments | |
US10142341B2 (en) | Apparatus, system and method for webRTC | |
CN101291216B (zh) | P2p网络系统及其认证方法 | |
CN101527632B (zh) | 响应消息认证方法、装置及系统 | |
US7940748B2 (en) | Systems, methods and computer program products supporting provision of web services using IMS | |
CN1716953B (zh) | 会话初始协议认证的方法 | |
CN102111379B (zh) | 认证系统、方法及设备 | |
CN102065069B (zh) | 一种身份认证方法、装置和系统 | |
CN101083838B (zh) | Ip多媒体子系统中的http摘要鉴权方法 | |
CN102082769B (zh) | Ims终端在获取非ims业务时的认证系统、装置及方法 | |
Huang et al. | Efficient and provably secure IP multimedia subsystem authentication for UMTS | |
CN101540678A (zh) | 固定终端及其认证方法 | |
CN102594782A (zh) | Ip多媒体子系统鉴权方法、系统及服务器 | |
CN114915494B (zh) | 一种匿名认证的方法、系统、设备和存储介质 | |
KR102507608B1 (ko) | Did를 통해 비식별성을 확보한 멀티미디어 커뮤니케이션의 세션 생성 시스템 및 방법 | |
Song et al. | Performance evaluation of an authentication solution for IMS services access | |
Proserpio et al. | Introducing Infocards in NGN to enable user-centric identity management |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |