会话发起协议注册方法、认证及授权方法、系统及设备的制作方法

文档序号:7689570阅读:95来源:国知局
专利名称:会话发起协议注册方法、认证及授权方法、系统及设备的制作方法
技术领域
本发明涉及通信安全技术领域,尤其涉及一种会话发起协议(SIP, Session Initiation Protocol)注册方法、认i正及4受4又方法、系统及i殳备。
背景技术
SIP是互联网工程任务组(IETF, Internet Engineering Task Force )定义的
一个应用层信令控制协议,主要用来对多媒体会话进行信令控制,其主要功 能是会话的控制与管理,包括建立由两个或多个用户参与的会话,对已经建 立的会话进行属性修改和终止会话等。
安全声明标记语言(SAML, Secure Assertion Markup Language )是结构 化信息标准促进组织(OASIS, Organization for the Advancement of Structured Information Standards)建立的安全标准。它是基于可扩展标记语言(XML, Extensible Markup Language )的安全声明标记语言,用来在多个信任合作者之 间交换安全信息。在这个过程中, 一个实体可以通过SAML声明向自己或其 他与自己具有信任关系的实体做一个针对某个用户的安全声明,安全声明包 括认证声明、属性声明和授权声明等,其典型应用模式是单点登录。单点登 录的含义,就是用户在一个作为源站点的网络(Web)站点进行了认证,该站 点为用户生成相应的SAML声明,证明用户已通过认证这样一个事实,并将 一个与此声明相关联的标识即声明标识分配给用户,当用户访问作为目的站 点的源站点的伙伴站点时,该目的站点根据用户提供的声明标识,与源站点 进行通信获得SAML声明,即可确定用户的身份,目的站点不需要再次对用 户进4亍认证。
随着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 Resource Locator )。
验证服务器利用验证服务器的私钥对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 SAML Assertion)消息至验证服务器,获取用户A的认证声明。
步骤105、验证服务器返回超文本传输协议(HTTP, Hypertext TransferProtocol)响应消息(200 OK )和用户A的认证声明(Assertion )至SIP Proxy ofB。
步骤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进行认证 和授权。
为解决上述技术问题,本发明实施例一方面,提供了一种会话发起协议 注册方法,包括
接收用户发送的要求进行安全声明标记语言认证的注册消息;
对所述用户进行认证,认证通过生成所述用户的安全声明标记语言认证 声明;为用户进行注册;
存储所述认证声明;
向所述用户返回所述认证声明的位置信息。
另一方面,提供了一种会话发起协议认证及授权方法,包括
接收用户发送的会话发起协议会话请求,所述会话请求为域间会话请求;
根据所述会话发起协议会话请求携带的所述用户的认证声明位置信息发 送消息到声明实体,查找所述用户对应的安全声明标记语言认证声明,并要 求所述声明实体生成所述用户对应的用于授权的声明;
接收所述用于授权的声明的存放地址;
向被访问域的接收方网络代理服务器发送会话发起协议会话请求,所述 会话请求携带有用于授权的声明的存放地址,以使所述接收方代理服务器根 据所述用于授权的声明的存放地址获取所述用于授权的声明,实现认证及授 权。
另一方面,提供了一种会话发起协议认证及授权方法,包括
接收位于发送域的发送方网络代理服务器发送的消息;
根据所述消息查找用户对应的安全声明标记语言认证声明,并为所述用 户生成用于授权的声明;
将所述用于授权的声明的存放地址向所述发送方网络代理服务器发送;
接收被访问域的接收方代理服务器发送的获取消息;
根据所述获取消息查找所述用户对应的用于授权的声明;
发送所述用于授权的声明给所述接收方代理服务器,以实现认证及授权。 另一方面,提供了一种会话发起协议认证及授权方法,包括
接收发送方网络代理服务器发送的用户的用于授权的声明的存放地址;
根据所述用于授权的声明的存放地址向声明实体发送获取消息,获取所 述用于授权的声明;
根据所述用于授权的声明验证用户,验证通过,则认证及授权成功。另一方面,提供了一种会话发起协议注册、认证及授权方法,包括
用户在请求注册的同时"^青求生成安全声明标记语言认"i正声明;
对所述用户认证后,生成安全声明标记语言认证声明,为用户注册并存 储所述认证声明,向所述用户返回认证声明位置信息;
所述用户发起会话发起协议会话请求,所述会话请求携带所述认证声明 位置信息,为域间会话请求;
基于已经保存的认证声明和所述用户的身份信息生成用于授权的声明, 以实现认证及4受斥又。
另一方面,提供了一种会话发起协议注册系统,包括
注册服务器,用于接收要求进行安全声明标记语言认证的注册消息;对 用户进行认证,认证通过生成所述用户的安全声明标记语言认证声明;为用 户进行注册;存储所述认证声明;返回所述认证声明的位置信息;
用户代理客户端,用于向所述注册服务器发送要求进行安全声明标记语 言认证的注册消息;接收所述注册服务器返回的认证声明位置信息。
另一方面,提供了一种注册服务器,包括
注册单元,用于接收用户发送的要求进行安全声明标记语言认证的注册 消息,为用户进行注册;
认证声明位置单元,用于在所述注册单元收到用户发送的要求进行安全 声明标记语言认证的注册消息后,获取所述用户的安全声明标记语言认证声 明的认证声明位置信息,向所述用户返回所述认证声明位置信息。
另一方面,提供了一种声明实体,包括
第二认证声明单元,用于接收注册服务器发送的认证声明服务请求,对 用户进行认证,认证通过根据所述认证声明服务请求携带的用户身份信息生 成所述用户的安全声明标记语言认证声明,存储所述认证声明;
第三位置信息单元,用于向所述注册服务器返回所述认证声明的存放地另一方面,提供了一种用户代理客户端,包括
注册请求单元,用于向注册服务器发送要求进行安全声明标记语言认证
的注册消息;以使所述注册服务器可以为所述用户代理客户端生成安全声明 标记语言认证声明;
接收位置信息单元,用于接收所述注册服务器返回的认证声明位置信息。
另一方面,提供了一种会话发起协议认证及授权系统,包括
用户代理客户端,用于向网络代理服务器发送会话发起协议会话请求, 发起域间会话;在所述会话发起协议会话请求中携带认证声明位置信息;
网络代理服务器,用于接收用户代理客户端发送的会话发起协议会话请 求;从所述会话发起协议会话请求中获取认证声明位置信息;根据所述认证 声明位置信息发送消息到声明实体查找所述用户代理客户端对应的安全声明 标记语言认证声明,并要求所述声明实体生成所述用户代理客户端对应的用 于授权的声明;接收所述用于授权的声明存放地址;向处于被访问域的接收 方网络代理服务器发送会话发起协议会话请求,所述会话发起协议会话请求 携带有声明实体为所述用户代理客户端生成的用于授权的声明的存放地址;
声明实体,用于接收网络代理服务器发送的消息;根据所述消息查找用 户对应的安全声明标记语言认证声明;在查找到用户对应的安全声明标记语 言认证声明时,为所述用户生成用于授权的声明;将所述用于授权的声明存 放地址向所述网络代理服务器发送;接收接收方代理服务器发送的获取消息, 根据所述获取消息查找用户对应的用于授权的声明,返回给所述接收方代理 服务器;
代理服务器,用于接收位于发送域的网络代理服务器发送的用于授权的 声明存放地址;根据所述用于授权的声明存放地址向声明实体发送获取消息, 获取对应的用于授权的声明;用于根据所述用于授权的声明验证用户代理客 户端,验证通过,则认证及授权成功。
另一方面,提供了一种用户代理客户端,包括
会话发起单元,用于向网络代理服务器发送会话发起协议会话请求,发起域间会话;
第四位置信息单元,用于在所述会话发起协议会话请求中携带认证声明 位置信息,以使所述网络代理服务器根据所述认证声明位置信息发送消息到 声明实体完成对所述用户代理客户端的认证。
另一方面,提供了一种网络代理服务器,包括
第五位置信息单元,用于从所述会话发起协议会话请求中获取认证声明 位置信息;
地址获取单元,用于根据所述认证声明位置信息发送消息到声明实体查 找所述用户代理客户端对应的安全声明标记语言认证声明,并要求所述声明 实体生成所述用户代理客户端对应的用于授权的声明;接收所述用于授权的 声明存方史地址。
会话请求单元,用于接收用户代理客户端发送的会话发起协议会话请求;
第一授权单元,用于向处于被访问域的接收方网络代理服务器发送会话 发起协议会话请求,所述会话发起协议会话请求携带有声明实体为所述用户 代理客户端生成的用于授权的声明的存放地址,以使所述接收方代理服务器 根据所述用于授权的声明存放地址获取所述用于授权的声明,实现认证及授权。
另一方面,提供了一种声明实体,包括
认证声明查找单元,用于接收发送方网络代理服务器发送的消息;根据 所述消息查找用户对应的安全声明标记语言认证声明;
授权单元,用于为所述用户生成用于授权的声明;将所述用于授权的声 明存放地址向所述发送方网络代理服务器发送;
授权声明查找单元,用于接收接收方代理服务器发送的获取消息,根据 所述获取消息查找用户对应的用于授权的声明,返回给所述接收方代理服务 器,以实现认证及授权。
另一方面,提供了一种代理服务器,包括
存放地址接收单元,用于接收位于发送域的发送方网络代理服务器发送的用于授权的声明存放地址;
授权声明获取单元,用于根据所述用于授权的声明存放地址向声明实体
发送获取消息,获取对应的用于授权的声明;
第二验证单元,用于根据所述用于授权的声明验证用户代理客户端,验 证通过,则认证及授权成功。
由以上技术方案可以看出,在用户进行注册的同时,声明实体即为用户 生成对应的认证声明并保存,当用户发起域间会话时,可以直接使用已保存 的认证声明,用户不必再次发起生成认证声明的请求,极大的节约了系统资
源;同时在用户发起域间会话时,只需要到声明实体查找属于发起会话用户 的认证声明,查找到对应认证声明,即可使声明实体为该用户生成用于授权 的声明,以完成认证和授权,避免了重复认证及授权,流程更加筒洁,有效, 更加节省系统的资源。


图1为现有技术认证方法信令流程图2为本发明实施例提供的会话发起协议注册方法实施例流程图3为本发明实施例提供的会话发起协议认证及授权方法实施例一流程
图4为本发明实施例提供的简单物件存取协定结束超文本传输协议数据 包结构图5为本发明实施例提供的一个用户可以参加多个会议时的系统实施例 结构示意图6为本发明实施例提供的注册服务器实施例结构示意图7为本发明实施例提供的声明实体实施例一结构示意图8为本发明实施例提供的用户代理客户端实施例一网络代理服务器实 施例结构示意图9为本发明实施例提供的会话发起协议认i正及授权系统实施例结构示 意图;图10为本发明实施例提供的客户端实施例二结构示意图11为本发明实施例提供的网络代理服务器实施例结构示意图12为本发明实施例提供的声明实体实施例二结构示意图13为本发明实施例提供的代理服务器实施例结构示意图14为本发明实施例提供的会话发起协议注册、认证及授权系统实施例 结构示意图。
具体实施例方式
本发明实施例提供了 一种会话发起协议注册方法、认证及授权方法、系 统及设备,可以更加有效的在SIP中运用SAML进行认证和授权。
本发明实施例引入了两个实体,声明实体(AE , Assertion Service )和验 证实体(VS, Verifier Service ),这两个实体的功能如下所述
声明实体负责生成认证声明、属性声明和授权声明,属性声明及授权 声明均是为了进行认证授权而生成的声明,因此属性声明及授权声明均可称 为用于授权的声明。声明实体可以使用独立的物理实体担任,也可以使用注 册服务器、网络代理服务器(Proxy)或用户代理服务器(UAS, User Agent Server)担任。
验证实体对上述声明进行验证。验证实体同样可以使用独立的物理实 体担任,也可以使用Proxy或UAS担任。
本发明实施例提供的在SIP中应用SAML进行认证授权的方法包括注册 和认证及授权两个部分,即会话发起协议注册方法实施例和会话发起协议认 证及授权方法实施例。
在本发明实施例提供的会话发起协议注册方法实施例中,用户终端上线 后,向注册服务器进行注册,同时要求获得认证声明;注册服务器在完成联 系地址注册的同时,向声明实体发出生成认证声明的请求,如成功生成iU正 声明则保存于声明列表中,并返回必要的响应信息。
为了完成认证及授权功能,在本发明实施例提供的会话发起协议认证及 授权方法实施例中,用户终端第一次与某一个域发起域间会话时,在会话邀请的过程中,向声明实体发出生成用于授权的声明的请求,声明实体基于已 经保存的认证声明为该用户生成相应的用于授权的声明并保存,如果该生成 用于授权的声明的请求中请求生成属性声明,则声明实体根据SIP消息中携 带的用户角色信息及会话属性,生成属性声明,如果该生成用于授权的声明 的请求中请求生成属性声明,则声明实体根据SIP消息中携带的用户角色信
息及会话属性进行策略决策,进而生成授权声明;生成用于授权的声明后, 被访问域的代理服务器只需从声明实体获取发起会话的用户对应的用于授权 的声明,即可根据该用于授权的声明完成对用户的授权,进而完成认证。该 发起会话的用户后续再次访问以前被访问域的其他用户或服务而发起域间会 话时,声明实体不需要再次生成用于授权的声明,被访问域的代理服务器只 需从声明实体获取发起会话用户对应的用于授权的声明,即可根据该用于授 权的声明,完成对用户的授权,进而完成认证。
步骤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: lj9FpLxk3uxtm8tn@example.com CS叫1 REGISTER
Contact: <sips:Alice@client.example.com>; 〃用户要注册的地址. Content-Length: 0
Require: SAML-auth 〃表示要求生成认证声明
本发明中,用符号"〃"及其后面的文字表示对其前面的语句的注释。
步骤202、注册服务器向声明实体发送认证声明服务请求(AuthnRequest )。
注册服务器进行用户与联系地址的绑定,完成注册,同时,向声明实体 发送认证声明服务请求,要求声明实体对用户进行认证并为用户颁发认证声 明,认证声明中包含用户的部分固定信息及属性,固定信息中与SIP有关的 信息包括源(FROM)、联系地址(CONTACT )。
声明实体可以和注册服务器由不同的物理实体担任,也可以和注册服务 器位于同一个物理实体,在实际操作中,可以将注册服务器的功能进行扩展, 作为声明实体。
如果用户请求注册的注册服务器不具备与声明实体交互的能力,或不能 使声明实体为用户生成认证声明,则此步中,注册服务器应当向UAS返回错 误响应信息(420 bad extension ),告知不能为用户生成认证声明。
步骤203、声明实体生成认证声明,将认证声明存储于声明列表中,并向 注册服务器返回声明存放地址。
声明实体根据该认证声明服务请求提交的用户身份信息生成SAML格式 的认证声明,生成认证声明的功能单元可以被称为认证权威。声明实体生成 认证声明后,存储于声明列表中(这里的认证声明与FROM头域中的用户名 是——对应关系),并返回声明存放地址。
为了保证认证声明的完整性,该认证声明的摘要值可以由声明实体进行 签名,并将签名值及证书 一 同插入到SAML标签中。此时,认证声明格式举例如下
<AssertionID="_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 </Issu6r〉
<ds:Signature xmlns:ds="http:〃www.w3.org/2000/09/xmldsig#"〉 <ds:SignedInfo>
<ds:CanonicalizationMethod
Algorithm="http:〃www.w3 .org/2001/10/xml-exc-c 14n#7> <ds:SignatureMethod Algorithm="http:〃www.w3 .org/2000/09/xmldsig#rsa-shal 7> <ds:Reference URI="#_a75adf55-01d7-40cc-929f-dbd8372ebdfc"> <ds:Transforms> <ds:Transform Algorithm=
"http:〃www.w3.org/2000/09/xmldsig#enveloped-signature'V> <ds: Transform Algorithm=
"http:〃www.w3 .org/2001/10/xml-exc-c 14n#"> <Inclus iveNamespaces
PrefixList="#default SAML ds xs xsi"xmlns=
"http:〃www.w3 .org/2001/10/xml-exc-c 14n#7〉 </ds:Transform> </ds: Transforms) <ds:DigestMethod
Algorithm="http:〃www.w3.org/2000/09/xmldsig#shar/>
<ds :DigestValue>
Kclet6XcaOgOWXM4gty6/UNdviI=
</ds:DigestValue>
</ds:Reference>
</ds: S ignedlnfo〉
<ds: S ignature Value>
hq4zk+ZknjggCQgZm7ea8fl7...Hr7wHxvCCRwubfZ6RqVL+wNmeWI4=
</ ds: S ignature Value>
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>
MIICyj CC Aj OgAwIB AgICAnUwDQ YJKoZIhvcNAQEEBQAwgakxNVB A YTAIVT
MRIwEAYDVQQIEwlXaXNjb .... dnP6Hr7wHxvCCRwubnZAv2FU78pLX
813bsbmRAUg4UP9hH6ABVq4KQKMknxulxQxLhpRlylGPdioG8cCx3w/
w==
</ds:X509Certificate〉 </ds:X509Data></ds:KeyInfo> </ds:Signature> <Subject〉
〈NameID Format:
"urn:oasis:names:tc:SAML: 1.1 :nameid-format:emailAddress"〉
Alice@example.com </NameID> <SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:sender-vouches7> </Subject〉
(Conditions NotBefore="2003-04-17T00:46:02Z"
NotOnOrAfter="2003-04-17T01:46:02Z"〉 <AudienceRestriction> <Audience>
example2.com </Audience〉 </AudienceRestriction〉 </Conditions> </Assertion>
上面的例子中,〈ssuer〉/々Issuer〉标签对包含的信息表示该声明的生成 者,即声明实体的标识,本例中是 example.com ; 〈ds:Signedlnfo〉/〈/ds:Signedlnfo〉标签对包含的信息表示声明实体对该声明进 行签名的方法,包括使用的签名算法、哈希算法和哈希值;
<ds: S ignatureValue〉和</ds: S ignature Value〉标签对包含的信息表示具体的签名值;
〈ds:Keylnfo〉和々ds:Keylnfo〉包含的信息表示验证签名所用的证书信息;
〈Subject〉和々Subject〉标签对包含的信息表示用户的身份信息,本例中, 用户身份为电子邮件格式,值为Alice@example.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)凭证绑定(Artifact Binding)的格式。该位置信息中包含该声明的凭证(S AML Artifact),也可以 被称为声明索引,凭证长度通常为42个字节,包含一个类型代码、长度为20 个字节的源标识以及长度为20个字节的随机数,其他实体可以根据该凭证去 数据库中查找对应的用户的认证声明。此时,SlP200ok消息实例如下所示
SIP/2.0 200 OK
22Via: SIP/2.0/TLS client.example.com:5061;branch=z9hG4bKnashd92; received=l 92.0.2.201
From: Alice <sips: Alice@example.com>;tag=ja743ks76zlflH
To: Alice <sips: Alice@example.com>;tag=37GkEhwl6
Call-ID: lj9FpLxk3uxtm8tn@ example.com
CS叫2 REGISTER
Contact: <sips:Alice@client.example.com〉;expires=3600 〃有步文时间
Content-Length: 0
SAML-Authen-Info: https:〃example.com/assns/ ID=lcmVRObzU%
〃声明位置信息
上述实例中,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: Alice@example.com ; 所在i或为example.com; 网 络代理服务器为Ssl.example.com。
用户Alice为发起会话方,因此用户Alice可以被称为用户代理客户端A。
接收方用户Bob的UA的AOR为sip: Bob@example2.com;所在域为 example2.com;网络代理服务器为Ss2.example2.com
用户Bob为接收方,因此用户Bob可以被称为用户代理服务器(UAS , User Agent Server) B。
发送i或example.com与4妄收i或example2.com互为4言4壬:威。由于在实际侵_用中验证实体通常由接收方的代理服务器担任,也可能是网络代理服务器或 UAS担任,因此本发明实施例提供的会话发起协议认证及授权方法实施例一
将以验证实体由UAS担任为例进行描述。
本发明实施例提供的会话发起协议认证及授权方法实施例 一的流程如图 3所示
步骤301、用户代理客户端A向发送方网络代理服务器Ssl.example.com 发起INVITE请求。
发送方Alice需与接收方Bob进行通信,首先向发送方网络代理服务器发 起INVITE请求,在INVITE请求中携带认证声明位置信息,认证声明位置信 息保存于INVITE消息的SAML-Authen-Info头域。同时还可以增加支持 (Supported )头字段表明用户终端支持SAML认证功能,此时SIP 200 ok消 息实例如下所示
INVITE sip:Alice@example.com SIP/2.0
Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74b43 Max-Forwards: 70 Route: <sip:Ssl.example.com;lr〉 From: Alice <sip:Alice@example.com>;tag=9fxced76sl To: Bob <sip:Bob@example.com> Call-ID: 3848276298220188511 @example.com CS叫1 INVITE
Contact: <sip:Alice@client.example.com;transport=tcp〉
Supported:SAML-auth〃表示UAC支持SAML认证
SAML-Authen-Info: https:〃example.com/assns/ ID=lcmVR0bzU% 〃iU正 声明位置信息
Content-Type: application/sdp
Content-Length: 147v=0
o=Bob 2890844527 2890844527 IN IP4 client.biloxi.example.com s=-
c=INIP4 192.0.2.201
t=0 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
步骤302、发送方网络代理服务器Ssl.example.com接收到INVITE消息 后,从SAML-Authen-Info中提取声明实体的地址,并向声明实体发出HTTP 请求(request)要求获得用户Alice的认证声明信息包,并要求声明实体生成 用于授权的声明。
本实施例中发送方网络代理服务器Ssl.example.com从SAML-Authen-Info 中提取的声明实体地址为https:〃example.com/assns/ ID=
lcmVRObzU%。发送方网络代理服务器Ssl.example.com将SIP头域消息 及用于授权的声明的请求信息进行打包为基于HTTP的简单对象访问协议 (SOAP, Simple Object Access Protocol OVER HTTP)的方式,形成HTTP request消息发送给声明实体。
SOAP OVER HTTP数据包结构如图4所示包括SOAP消息、SAML正 文、SAML请求响应、SIP头字段和HTTP部分;SAML正文包括SAML请 求响应、SIP头字段部分,SOAP消息包括SAML正文部分,和HTTP部分共 同构成SOAP OVER HTTP数据包。
步骤303、声明实体根据认证声明位置信息查找用户终端对应的认证声 明,根据请求中的相关信息生成用于授权的声明。声明实体接收到HTTP request消息,根据HTTP request消息携带的认证声明位置信息查找用户Alice 对应的SAML认证声明。当认证声明存在时,在该HTTP request消息要求生 成属性声明时,声明实体中的属性声明权威根据提交的SIP消息头域生成属性声明;在该HTTP request消息要求生成授权声明时,声明实体中的策略决 策点根据用户属性进行决策并生成授权声明,保存于声明实体数据库中。
步骤304、声明实体向发送方网络代理服务器返回HTTP响应(respond ) 消息,该消息携带有用于授权的声明的存放地址。
为了保证消息的完整性及声明实体对终端所做声明的真实性,我们利用 域证书,即声明实体的私钥对用于授权的声明进行签名,并将域证书插入到 用于授权的声明中,存储在声明实体中,然后向发送方网络代理服务器返回 用于授权的声明存放地址。如果用于授权的声明生成失败、或者发生其他的 错误导致无法返回发送方网络代理服务器用于授权的声明的存放地址时,将 返回错误代码(425 bad saml assemtion )到发送方网络代理服务器。
在选择声明的传输方式时,除了上述在SIP消息头中携带声明的存放地 址的方式外,还可以采用在SIP消息中直接携带声明的方式,即将SAML声 明直接加入SIP消息体的传输方式。这时,消息类型(Content-Type )中应声 明支持SAML语言的这种类型格式,可以新定义一个参数saml ,表示消息体 中的消息格式为SAML语言的格式。以下是在SIP中携带SAML声明的例子
INVITE sip:Bob@ example.com SIP/2.0
Via: SIP/2.0/TCP Ssl.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:Ssl .example.com;lr〉
From: Alice <sip:Alice@example.com〉;tag=9fxced76sl
To: Bob <sip:Bob@example.com〉
Call-ID: 3848276298220188511@example.com
CSeq: 2 INVITE
Contact: <sip:Alice@example.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=INIP4 192.0.2.201
t=0 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PC固/腸0
在发送方网络代理服务器要求返回SAML认证声明时,可以同时在返回 消息中携带SAML认证声明。
步骤305、发送方网络代理服务器收到该HTTP respond信息后,将带有 用于授权的声明存放地址的INVITE请求,向接收方网络代理服务器Ss2.example2.com发送。
此时INVITE请求消息实例如下所示
INVITE sip: Bob@ example.com SIP/2.0
Via: SIP/2.0/TCP Ssl.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:Ssl .example.com;lr〉
From: Alice <sip:Alice@example.com>;tag=9fxced76sl
To: Bob <sip:Bob@example.com〉
Call-ID: 3848276298220188511@example.com
CSeq: 2 INVITE
Contact: <sip:Alice@example.com;transport=tcp> Supported:saml-auth Sami-Author-Info: https://example.com/assns/ ID=dertd
〃用于授权的声明存放地址
Saml-Author-Artifact:AAQAADdrege5VT47wc04Zx%2FiEzMmFQvGknDf ws2ZtqSGdKNSbs W1 cmVR0bzU%
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建立会话 的权限;如果用于授权的声明包含属性声明和授权声明,则选择其中的一个 完成4受4又。
验证的内容包括以下五个方面
1 、从用于授权的声明中提取域证书,检验域证书的有效性,如有效日期、 颁发机构,是否在撤销列表中。若域证书有效,则继续进行其他验证;否则, 向发送方网络代理服务器返回437 "证书无效(unsupported certificate)"消息, 表明i正书无效。
2、检验域证书中的颁发对象(Subject)字段与用于授权的声明中的发布者(issue)是否是同一主体,验证声明实体的合法性。若结果为是同一主体, 声明实体验证通过,则继续进行其他验证;否则,向发送方代理服务器返回 477 "声明服务器无效(invalid assertion server )',,表明发布用于授权的声明的 声明实体无效。
3、 检验用于授权的声明中的签名值。利用证书的公钥来验证签名,验证 声明实体的真实性,同时验证该声明的完整性。若验证通过,则继续进行其 他验证;否则,向发送方代理服务器返回479 "SAML声明无效(invalid SAML assertion )"消息,表明用于授权的SAML声明无效。
4、 通过查看用于授权的声明中的信息,并对比SIP头字段与消息体中声 明的某些字段,来验证发送者的身份是否真实。比对内容包括
① 比对用于授权的声明中的发布时间(Issuelnstant ),判断声明时间是否 位于i正书的有效期内。
② 比对SIP头域中的FROM字段与声明中的身份标志(Nameld ),判断 两者是否相同,验证签名者是否与被声明的主体位于同一个域内。
③比对SIP头域中的To字段与用于授权的声明中的接收(audience ) 字段,验证目标主体是否位于用于授权的声明所声明的域内。
接收端对声明进行验证时,由于是在SAML中插入了 SIP的相关的头域 字段,因此直接比对各个字段即可。
若验证通过,则继续进行其他验证;否则,向发送方代理服务器返回478 "不知名的SAML声明错误(unknown saml assertion content ),,,表明用于授 权的声明中包含错误的元素。
5 、查看用于授权的声明中的授权决策声明(AuthzDecisionStatement), 验证发送方是否已经被授权与接收方进行通信。若验证通过,在有其他验证 时继续进行其他可能需要进行的验证,所有验证都通过时,可以向发送方代 理服务器返回验证成功响应;否则,向发送方代理服务器返回476 "未授权或 权限不符(invalid AuthzDecision assertion )"消息,表明发送方未被4受4又或4又 限不符。以上验证没有顺序关系,先验证任何一个均可,当5步验证均通过时, 对发送者的身份验证即为成功,任何一步验证不能通过都会引起验证失败, 这里使用的错误响应代码只是一个示例,可以使用其他代码替代。
验证通过,则认证成功。
步骤310、验证通过后,用户代理服务器B向接收方网络代理服务器 Ss2.example2.com返回200 OK响应;接收方网络代理服务器Ss2.example2.com 向发送方网络代理服务器Ssl.example.com返回200 OK响应;发送方网络代 理服务器Ssl.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对该用户进行授权,按照 上述的授权流程即可完成用户的授权管理。
本发明提供的会话发起协议注册、认证及授权方法实施例,包括
用户发送要求进行安全声明标记语言认证的注册消息;
收到所述注册消息后,对所述用户进行认证,iU正通过生成所述用户的 安全声明标记语言认证声明;为用户进行注册;存储所述认证声明;向所述 用户返回所述认证声明的位置信息;
发送会话发起协议会话请求,所述会话请求为域间会话请求;
根据所述会话发起协议会话请求携带的所述用户的认证声明位置信息发 送消息到声明实体,查找所述用户对应的安全声明标记语言认证声明,并要 求所述声明实体生成所述用户对应的用于授权的声明;
查找到所述用户对应的安全声明标记语言认证声明后,生成所述用户对 应的用于授权的声明;返回所述用于授权的声明的存放地址;
向被访问域的接收方网络代理服务器发送会话发起协议会话请求,所述会话请求携带有用于授权的声明的存放地址;
所述接收方代理服务器根据所述用于授权的声明的存放地址向所述声明 实体获取所述用于授权的声明,实现认证及授权。
是可以通过程序来指令相关的硬件完成,所述的程序可以存储于 一种计算机
可读存储介质中,该程序在执行时,包括如下步骤 一种会话发起协议注册方法,包括
接收用户发送的要求进行安全声明标记语言认证的注册消息;
对所述用户进行认证,认证通过生成所述用户的安全声明标记语言认证 声明;
为用户进行注册; 存储所述认证声明;
向所述用户返回所述认证声明的位置信息。 一种会话发起协议认证及授权方法,包括
接收用户发送的会话发起协议会话请求,所述会话请求为域间会话请求;
根据所述会话发起协议会话请求携带的所述用户的认证声明位置信息发 送消息到声明实体,查找所述用户对应的安全声明标记语言认证声明,并要 求所述声明实体生成所述用户对应的用于授权的声明;
接收所述用于授权的声明的存放地址;
向被访问域的接收方网络代理服务器发送会话发起协议会话请求,所述 会话请求携带有用于授权的声明的存放地址,以使所述接收方代理服务器根 据所述用于授权的声明的存放地址获取所述用于授权的声明,实现认证及授 权。
一种会话发起协议认证及授权方法,包括
接收位于发送域的发送方网络代理服务器发送的消息;
根据所述消息查找用户对应的安全声明标记语言认证声明,并为所述用户生成用于授权的声明;
将所述用于授权的声明的存放地址向所述发送方网络代理服务器发送; 接收被访问域的接收方代理服务器发送的获取消息; 根据所述获取消息查找所述用户对应的用于授权的声明; 发送所述用于授权的声明给所述接收方代理服务器,以实现认证及授权。 一种会话发起协议^人证及授权方法,包括
接收发送方网络代理服务器发送的用户的用于授权的声明的存放地址;
根据所述用于授权的声明的存放地址向声明实体发送荻取消息,荻取所 述用于授权的声明;
根据所述用于授权的声明验证用户,验证通过,则认证及授权成功。
一种会话发起协议注册、认证及授权方法,包括
用户在请求注册的同时请求生成安全声明标记语言认证声明;
对所述用户认证后,生成安全声明标记语言认证声明,为用户注册并存 储所述认证声明,向所述用户返回认证声明位置信息;
所述用户发起会话发起协议会话请求,所述会话请求携带所述认证声明 位置信息,为域间会话请求;
基于已经保存的认证声明和所述用户的身份信息生成用于授权的声明, 以实现认证及授权。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
本发明实施例提供会话发起协议注册系统实施例,包括
注册服务器,用于接收要求进行安全声明标记语言认证的注册消息;对 用户进行认证,认证通过生成所述用户的安全声明标记语言认证声明;为用 户进行';主册;存储所述认证声明;返回所述认证声明的位置信息;
用户代理客户端,用于向所述注册服务器发送要求进行安全声明标记语 言认证的注册消息;接收所述注册服务器返回的认证声明位置信息。
其中,注册服务器和用户代理客户端的详细结构可参考下文对本发明实施例提供的注册服务器实施例、本发明实施例提供的声明实体实施例一的描述。
本发明实施例提供的注册服务器实施例结构如图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,用于接收接收方代理服务器发送的获取消息,根 据所述获取消息查找用户对应的用于授权的声明,返回给所述接收方代理服 务器,以实现认证及授4又。
所述声明实体实施例二可以在实施例一的基础上进行改进,即实施例二 还可以实施例一中的第二认证声明单元1101和第三位置信息单元U02,具体 的实现过程可以参照前述方法和相关装置的实施例。
本发明实施例提供的代理服务器实施例结构如图13所示,包括
存放地址接收单元1001,用于接收发送方网络代理服务器发送的用于授 权的声明存》欠地址;
授权声明获取单元1002,用于根据所述用于授权的声明存放地址向声明 实体发送获取消息,获取对应的用于授权的声明;
第二验证单元1003,用于根据所述用于授权的声明验证用户代理客户端, 马全i正通过,则i人i正成功。
第三验证单元1004,用于在所述用于授权的声明携带有所述声明实体的 签名时,验证所述签名,在验证通过时,验证所述用户代理客户端。
本发明实施例提供的会话发起协议认证及授权系统实施例、用户代理客 户端实施例二、网络代理服务器实施例、声明实体实施例二、代理服务器实
方法实施例的描述,在此不再重复描述。
本发明实施例提供的会话发起协议注册、认证及授权系统实施例结构如图14所示,包括
用户代理客户端1401,用于发送要求进行安全声明标记语言iU正的注册 消息;发送会话发起协议会话请求,所述会话请求为域间会话请求;
注册服务器1402,用于收到所述注册消息后,对所述用户进行认证,认 证通过生成所述用户的安全声明标记语言认证声明;为用户进行注册;存储 所述认证声明;向所述用户返回所述认证声明的位置信息;
网络代理服务器1403,用于根据所述会话发起协议会话请求携带的所述 用户的认证声明位置信息发送消息到声明实体,并要求所迷声明实体生成所 述用户对应的用于授权的声明;用于向处于被访问域的接收方网络代理服务 器发送会话发起协议会话请求,所述会话发起协议会话请求携带有声明实体 为所述用户代理客户端生成的用于授权的声明的存放地址;
声明实体1404,用于查找所述用户对应的安全声明标记语言认证声明, 查找到后,生成所迷用户对应的用于授权的声明;返回所述用于授权的声明 的存放地址;接收接收方代理服务器发送的获取消息,根据所述获取消息查 找用户对应的用于授权的声明,返回给所述接收方代理服务器;
代理服务器1405,用于接收位于发送域的发送方网络代理服务器发送的 用于授权的声明存放地址;根据所述用于授权的声明存放地址向声明实体发 送获取消息,获取对应的用于授权的声明;根据所述用于授权的声明验证用 户代理客户端,验证通过,则认证及授权成功。
本发明实施例提供的会话发起协议注册、认证及授权系统实施例的具体 实现方式,可参考本发明实施例提供的会话发起协议注册、认证及授权方法 实施例的描述,在此不再重复描述。
以上对本发明所提供的一种会话发起协议注册方法、认证及授权的方法
进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思 想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方 式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本 发明的限制。
权利要求
1、一种会话发起协议注册方法,其特征在于,包括接收用户的要求进行安全声明标记语言认证的注册消息;对所述用户进行认证,认证通过生成所述用户的安全声明标记语言认证声明;为用户进行注册;存储所述认证声明;向所述用户返回所述认证声明的位置信息。
2、 如权利要求1所述的会话发起协议注册方法,其特征在于,所述方法 还包括认证通过后向声明实体发送认证声明服务请求,以使所述声明实体生成 所述用户的安全声明标记语言认证声明;接收所述声明实体返回的所述认证声明的位置信息。
3、 一种会话发起协议认证及授权方法,其特征在于,包括接收用户的会话发起协议会话请求,所述会话请求为域间会话请求;根据所述会话发起协议会话请求携带的所述用户的认证声明位置信息发 送消息到声明实体,查找所述用户对应的安全声明标记语言认证声明,并要 求所述声明实体生成所述用户对应的用于授权的声明;接收所述用于授权的声明的存放地址;会话请求携带有用于授权的声明的存放地址,以使所述接收方代理服务器根 据所述用于授权的声明的存放地址获取所述用于授权的声明,实现认证及授权。
4、 如权利要求3所述的会话发起协议认证及授权方法,其特征在于,所 述用于授权的声明包括属性声明和/或授权声明。
5、 一种会话发起协议认证及授权方法,其特征在于,包括 接收位于发送域的发送方网络代理服务器发送的消息;根据所述消息查找用户对应的安全声明标记语言认证声明,并为所述用 户生成用于授权的声明;将所述用于授权的声明的存放地址向所述发送方网络代理服务器发送;接收被访问域的接收方代理服务器发送的获取消息;根据所述获取消息查找所述用户对应的用于授权的声明;发送所述用于授权的声明给所述接收方代理服务器,以实现认证及授权。
6、 如权利要求5所述的会话发起协议认证及授权方法,其特征在于,所 述接收方代理服务器包括接收方网络代理服务器或接收方用户代理服务器。
7、 如权利要求5所述的会话发起协议认证及授权方法,其特征在于,还 包括使用域证书对所述用于授权的声明进行签名;发送所述签名后的用于授权的声明给所述接收方代理服务器。
8、 一种会话发起协议认证及授权方法,其特征在于,包括接收发送方网络代理服务器发送的用户的用于授权的声明的存放地址;根据所述用于授权的声明的存放地址向声明实体发送获取消息,获取所 述用于授权的声明;根据所述用于授权的声明验证用户,验证通过,则认证及授权成功。
9、 如权利要求8所述的会话发起协议认证及授权方法,其特征在于,所 述方法还包括在所述用于授权的声明携带有所述声明实体的签名时,验证所述签名, 在验证所述签名通过时,验证所述用户代理客户端。
10、 一种会话发起协议注册、认证及授权方法,其特征在于,包括用户在请求注册的同时请求生成安全声明标记语言认证声明;对所述用户认证后,生成安全声明标记语言认证声明,为用户注册并存 储所述认证声明,向所述用户返回认证声明位置信息;所述用户发起会话发起协议会话请求,所述会话请求携带所述认证声明位置信息,为域间会话请求;基于已经保存的认证声明和所述用户的身份信息生成用于授权的声明, 以实现认证及授权。
11、 如权利要求10所述的会话发起协议注册、认证及授权方法,其特征 在于,所述用户在请求注册的同时请求生成安全声明标记语言认证声明包括所述用户发送要求进行安全声明标记语言认证的注册消息。
12、 如权利要求10所述的会话发起协议注册、认证及4更权方法,其特征 在于,生成所述认证声明后,向所述用户返回所述认证声明的位置信息;所述用户发起会话发起协议会话请求,所述会话请求携带所述认证的声 明位置信息;基于所述认证声明的位置信息查找所述认证声明,进而生成用于授权的声明。
13、 一种会话发起协议注册系统,其特征在于,包括注册服务器,用于接收要求进行安全声明标记语言认证的注册消息;对 用户进行认证,认证通过生成所述用户的安全声明标记语言认证声明;为用 户进行注册;存储所述认证声明;返回所述认证声明的位置信息;用户代理客户端,用于向所述注册服务器发送要求进行安全声明标记语 言认证的注册消息;接收所述注册服务器返回的认证声明位置信息。
14、 一种注册服务器,其特征在于,包括注册单元,用于接收用户发送的要求进行安全声明标记语言认证的注册 消息,为用户进4亍iU正及注册;认证声明位置单元,用于在所述注册单元收到用户发送的要求进行安全 声明标记语言认证的注册消息并认证通过后,获取所述用户的安全声明标记 语言认证声明的位置信息,向所述用户返回所述认证声明的位置信息。
15、 如权利要求14所述的注册服务器,其特征在于,所述认证声明位置 单元包括第一认证声明单元,根据所述用户的身份信息生成所述用户的安全声明标记语言认证声明,存储所述认证声明;第一位置信息单元,用于向所述用户返回所述认证声明位置信息。
16、 如权利要求14所述的注册服务器,其特征在于,所述认证声明位置 单元包括认证声明服务请求单元,用于向声明实体发送认证声明服务请求,以使 所述声明实体生成所述用户的安全声明标记语言认证声明;第二位置信息单元,用于接收所述声明实体返回的所述认证声明的存放 地址,并向所述用户返回所述认证声明的位置信息。
17、 一种声明实体,其特征在于,包括第二认证声明单元,用于接收注册服务器发送的认证声明服务请求,根 据所述认证声明服务请求携带的用户身份信息生成所述用户的安全声明标记 语言认证声明,存储所述认证声明;第三位置信息单元,用于向所述注册服务器返回所述认证声明的存放地址。
18、 如权利要求17所述的声明实体,其特征在于,还包括认证声明查找单元,用于接收发送方网络代理服务器发送的消息;根据 所述消息查找用户对应的安全声明标记语言认证声明;授权单元,用于在所述认证声明查找单元查找到用户对应的安全声明标 记语言认证声明时,为所述用户生成用于授权的声明;将所述用于授权的声 明存放地址向所述发送方网络代理服务器发送;授权声明查找单元,用于接收接收方代理服务器发送的获取消息,根据 所述获取消息查找用户对应的用于授权的声明,返回给所述接收方代理服务 器,以实现认证及4变片又。
19、 一种用户代理客户端,其特征在于,包括注册请求单元,用于向注册服务器发送要求进行安全声明标记语言认证 的注册消息;以使所述注册服务器可以为所述用户代理客户端生成安全声明标记语言认证声明;接收位置信息单元,用于接收所述注册服务器返回的认证声明位置信息。
20、 一种会话发起协议认证及授权系统,其特征在于,包括用户代理客户端,用于向网络代理服务器发送会话发起协议会话请求, 发起域间会话,所述会话请求中携带认证声明位置信息;网络代理服务器,根据所述认证声明位置信息到声明实体查找所述用户 代理客户端对应的安全声明标记语言认证声明,并要求生成用于授权的声明; 接收所述用于授权的声明存放地址;向接收方网络代理服务器发送会话发起 协议会话请求,会话请求中携带所述用于授权的声明的存放地址;声明实体,查找所述用户对应的安全声明标记语言认证声明;为所述用 户生成用于授权的声明;将所述用于授权的声明存放地址向所述网络代理服 务器发送;查找用户对应的用于授权的声明,发送给接收方代理服务器;接收方代理服务器,用于接收位于网络代理服务器发送的用于授权的声 明存放地址;向声明实体获取对应的用于授权的声明;验证用户代理客户端, 验证通过,则认证及授权成功。
21、 一种用户代理客户端,其特征在于,包括会话发起单元,用于向网络代理服务器发送会话发起协议会话请求,发 起域间会话;第四位置信息单元,用于在所述会话发起协议会话请求中携带认证声明 位置信息,以使所述网络代理服务器根据所述认证声明位置信息发送消息到 声明实体完成对所述用户代理客户端的认证及授权。
22、 一种网络代理服务器,其特征在于,包括会话请求单元,用于接收用户代理客户端发送的会话发起协议会话请求;第五位置信息单元,用于从所述会话发起协议会话请求中获取认证声明 位置信息;地址获取单元,用于根据所述认证声明位置信息发送消息到声明实体查找所述用户代理客户端对应的安全声明标记语言认证声明,并要求所述声明 实体生成所述用户代理客户端对应的用于授权的声明;接收所述用于授权的声明存放地址;第 一授权单元,用于向处于被访问域的接收方网络代理服务器发送会话 发起协议会话请求,所述会话发起协议会话请求携带有声明实体为所述用户 代理客户端生成的用于授权的声明的存放地址,以使所述接收方代理服务器 根据所述用于授权的声明存放地址获取所述用于授权的声明,实现认证及授权。
23、 一种声明实体,其特征在于,包括认证声明查找单元,用于接收发送方网络代理服务器发送的消息;根据 所述消息查找用户对应的安全声明标记语言认证声明;授权单元,用于在所述认证声明查找单元查找到用户对应的安全声明标 记语言认证声明时,为所述用户生成用于授权的声明;将所述用于授权的声 明存放地址向所述发送方网络代理服务器发送;授权声明查找单元,用于接收接收方代理服务器发送的获取消息,根据 所述获取消息查找用户对应的用于授权的声明,返回给所述接收方代理服务 器,以实现认证及授权。
24、 一种代理服务器,其特征在于,包括存放地址接收单元,用于接收位于发送域的发送方网络代理服务器发送 的用于授权的声明存放地址;授权声明获取单元,用于根据所述用于授权的声明存放地址向声明实体 发送获取消息,获取对应的用于授权的声明;第二验证单元,用于根据所述用于授权的声明验证用户代理客户端,验 证通过,则认证及4更4又成功。
25、 如权利要求18所述的代理服务器,其特征在于,还包括第三验证单元,用于在所述用于授权的声明携带有所述声明实体的签名 时,验证所述签名,在验证通过时,验证所述用户代理客户端。
全文摘要
本发明公开了一种会话发起协议注册方法,包括接收用户发送的要求进行安全声明标记语言认证的注册消息;根据所述用户身份信息生成所述用户的安全声明标记语言认证声明;存储所述认证声明;向所述用户返回认证声明位置信息。本发明还公开了一种会话发起协议认证及授权方法,包括接收会话发起协议会话请求,向接收方网络代理服务器发送会话发起协议会话请求,所述会话发起协议会话请求携带有声明实体为所述用户代理客户端生成的用于授权的声明的存放地址,实现认证及授权。一种会话发起协议注册、认证及授权方法,包括注册及认证授权。本发明还公开了对应的系统及装置。应用本发明可以更加有效的在SIP中运用SAML进行注册、认证和授权。
文档编号H04L29/06GK101521660SQ20081008263
公开日2009年9月2日 申请日期2008年2月27日 优先权日2008年2月27日
发明者李雪莲, 杨亚涛, 江为强, 阳 辛, 高洪涛 申请人:华为技术有限公司;北京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1