2.7 IMS中的AAA技术
在IMS中鉴权和认证通常是关联在一起的,相比之下,计费是由不同节点执行的不同功能。所以对鉴权和认证的介绍与计费的介绍是分开的。
2.7.1 IMS中的鉴权和认证
图2-19给出了执行鉴权和认证功能的IMS架构。鉴权和认证功能的执行涉及3个不同接口,即Cx、Dx和Sh接口。
图2-19 IMS中的鉴权和认证架构
Cx接口是HSS与I-CSCF或者HSS与S-CSCF之间的接口。当在归属网络中有多个HSS时,就需要有一个签约定位功能(Subscription Locator Function,SLF)来帮助I-CSCF或者S-CSCF确定哪个HSS存储了某个用户的数据。Dx接口是SLF与I-CSCF或S-CSCF之间的接口,它以Diameter重定向模式工作。
Sh是HSS与SIP应用服务器或者OSA业务能力服务器之间的接口。
在所有这些接口中,任何两点都运行具有IMS特定应用的Diameter协议,这些Diameter应用定义了新的Diameter命令码和新属性值对(Attribute Value Pairs,AVP)。
2.7.2 Cx和Dx接口
前面已经提到Cx接口是I-CSCF与HSS之间接口,或者HSS与S-CSCF之间的接口。类似地,Dx接口是I-CSCF和SLF之间接口,或者是S-CSCF与SLF之间的接口。唯一的区别是SLF作为一个Diameter重定向代理,而HSS是作为一个Diameter服务器。对于二者,I-CSCF和S-CSCF都作为Diameter客户。
当归属网络中有多个HSS时,Diameter客户(S-CSCF和I-CSCF)需要联系SLF从而找到网络中哪个HSS存储了由公共用户标识的用户的信息。不管S-CSCF和I-CSCF的消息是发给HSS还是SLF,S-CSCF和I-CSCF发出的Diameter命令是相同的。SLF作为一个增强的Diameter重定向代理,它包含了一张映射表,该映射表将公共用户标识映射为包含该用户信息的HSS。SLF随后在应答中包括一个Redirect-Host AVP。Redirect-Host AVP包括I-CSCF和S-CSCF所必须联系的特定HSS地址,I-CSCF或者S-CSCF会将Diameter消息转发给该HSS。
由于在Cx和Dx接口上的Diameter消息都是相同的,Dx接口可以看做对Cx接口上交互的透明描述。所以这里重点介绍HSS的Cx接口,对于SLF的接口Dx而言是类似的。
需要注意的是,P-CSCF既没有Cx接口也没有Dx接口。
对于特定的用户,I-CSCF和S-CSCF使用Cx和Dx接口来执行以下功能:
● 定位已经分配给用户的S-CSCF;
● 下载用户的鉴权矢量,这些矢量存储在HSS中;
● 对漫游在拜访网络中的用户进行鉴权;
● 在HSS中记录分配给用户的S-CSCF;
● 向HSS通知用户标识的注册状态;
● 从HSS下载用户属性,该属性包括过滤器准则;
● 当用户属性发生了改变时,将用户的属性从HSS推送到S-CSCF;
● 为I-CSCF提供选择S-CSCF的必要信息。
Cx和Dx接口都实现了一个制造商特定Diameter应用,该应用被称为Cx接口的Diameter应用,该应用在3GPP TS29.228和3GPP TS29.229中进行规范。Cx接口的Diameter应用在IETF中没有进行标准化,但是对于3GPP R5,IETF对该应用进行了授权。
Cx接口的Diameter应用构成了SIP服务器的一般AAA应用基。可以预见,在不久的将来,3GPP发布的Cx接口的制造商特定Diameter应用将被转移到IETF标准化的Diameter SIP应用中。
1.Cx接口Diameter应用中定义的命令码
前面已经提到,I-CSCF和S-CSCF通过Cx和Dx接口来执行大量功能。为了执行这些功能,Cx接口的Diameter应用定义了很多新命令。表2.1列出了Cx接口Diameter应用所规范的新命令。
表2-1 Cx接口Diameter应用所定义的命令列表
(1)用户认证请求和应答(UAR和UAA)
当I-CSCF从IMS终端接收到一个SIP REGISTER请求后,该I-CSCF将发送一个用户认证请求(User Authorization Request,UAR)消息。I-CSCF向HSS发送Diameter UAR消息有多种原因。
● HSS首先从SIP REGISTER请求中过滤出公共用户标识,例如,HSS验证该公共用户标识是分配给归属网络中的一个合法用户,并且该用户是一个常规的用户;
● I-CSCF需要确定是否为该要注册的公共用户标识分配了一个S-CSCF,在I-CSCF将该SIP REGISTER请求转发给S-CSCF之前,如果没有为该公共用户标识分配一个S-CSCF,I-CSCF将接收到S-CSCF中所需的能力集,I-CSCF可以根据这些能力来选择一个S-CSCF;
● SIP REGISTER请求通常携带用户的公共用户标识和私有用户标识,HSS检查公共用户标识,私有用户标识可以用于鉴权目的。
图2-20给出了一个典型的注册信令流。当I-CSCF接收到一个SIP REGISTER请求①时,它将Diameter UAR消息发送给HSS③。HSS以Diameter用户认证应答(User Authorization Answer,UAA)消息④来应答,随后I-CSCF继续处理注册过程。该过程在⑬和⑭时重复,但是由于在该过程中I-CSCF的注册状态可能会发生变化,而且,因为DNS负荷分担机制,接收到第一个SIP REGISTER请求②的I-CSCF可能与接收到第二个SIP REGISTER请求⑫的I-CSCF不同。
图2-20 注册过程中的UAR/UAA、MAR/MAA和SAR/SAA消息
HSS在UAA消息中包含了Result-Code AVP,它可以帮助I-CSCF来确定是否需要继续注册过程还是拒绝该过程。如果注册认证通过,UAA消息包含的AVP将有助于I-CSCF来确定是否已有S-CSCF分配给用户,或者I-CSCF是否已选择了一个S-CSCF。
(2)多媒体鉴权请求和应答(MAR和MAA)
图2-20对于说明Diameter多媒体鉴权请求(Multimedia-Auth-Request,MAR)和多媒体鉴权应答(Multimedia-Auth-Answer,MAA)消息也是有效的。当S-CSCF接收到一个初始SIP REGISTER请求时,它必须对IMS用户进行鉴权。但是,在初始注册时,S-CSCF没有获得对用户鉴权的鉴权矢量,这些矢量存储在HSS中。S-CSCF向HSS发送Diameter MAR消息,从而提取鉴权矢量。另外,S-CSCF在存储在HSS中的用户相关数据中记录其自己的SIP URI,所以,其他的CSCF(如I-CSCF)或者AS通过HSS协商,便可以获得分配给特定用户的S-CSCF的URI。
(3)服务器分配请求和应答(SAR和SAA)
图2-20还描述了SAR和SAA消息过程。当S-CSCF完成了对用户的鉴权后(实际上是私有用户标识),公共用户标识完成注册并绑定到一个联系地址。当S-CSCF向HSS发送SAR以通知HSS该用户当前已注册到S-CSCF时,S-CSCF还会请求与该用户相关的用户属性。HSS在SAA消息中附着用户属性。
当用户不再注册到该S-CSCF时,S-CSCF也会向HSS发送SAR消息,所以HSS能了解用户的注册状态。即使在用户没有注册时,S-CSCF也可以请求HSS继续将该S-CSCF分配给用户,这是因为它可以决定是否保持该S-CSCF的分配。保持S-CSCF的分配可以使S-CSCF保持用户属性信息,随后的注册就不再需要从HSS下载这样的用户信息了。
(4)位置信息请求和应答(LIR和LIA)
I-CSCF在接收到一个SIP请求后,如果其Route域中没有指向下一跳(S-CSCF)的地址,那么就需要找到分配给该用户的S-CSCF。在接收到SIP请求后,I-CSCF将向HSS发送位置信息请求(Location-Information-Request,LIR)消息。HSS以位置信息应答(Location-Information-Answer,LIA)消息来进行应答。LIA命令将指出分配给用户的S-CSCF的SIP URI,如果S-CSCF没有分配给用户,那么HSS将给出能力集,这样I-CSCF便可以为用户选择一个S-CSCF。
根据图2-21,I-CSCF在接收到没有包含路由信息的SIP请求后,将向HSS发送Diameter LIR消息。HSS以LIA消息进行应答,消息中包括分配给用户的S-CSCF的地址。因此,I-CSCF将把INVITE请求消息转发给S-CSCF。
(5)注册终止请求和应答(RTR和RTA)
出于管理原因,归属网络运营商可能希望去注册一个或者多个已分配给用户的公共用户标识。此时,HSS会向S-CSCF发送注册终止请求(Registration-Termination-Request,RTR)消息。
图2-22给出HSS向S-CSCF发送RTR消息的流程,从而实现一个或者多个公共用户标识的去注册。S-CSCF会通知用户reg状态的所有用户;在该实例中,P-CSCF和IMS终端都定购了用户reg状态,所以S-CSCF将通知P-CSCF ③和IMS终端⑤和⑥。
图2-21 LIR/LIA和SAR/SAA消息
图2-22 RTR/RTA消息
(6)推送属性请求和应答(PPR和PPA)
HSS可以在任何时间变更用户属性,例如,当用户有新业务时;此时通常需要增加新过滤器准则。当用户属性更新后,HSS会向分配给用户的S-CSCF发送一个推送属性请求(PushProfile Request,PPR)消息,该消息包含用户属性的更新拷贝。图2-23给出了PPR和PPA Diameter消息的实例,该消息不与任何SIP信令关联。
图2-23 PPR/PPA消息
2.Cx接口Diameter应用中定义的AVP
Cx接口Diameter应用定义了大量新AVP,表2.2给出了这些新属性值以及其AVP码。这些AVP的所有Vendor-Id域都设置为10415,表示该设备制造商为3GPP。
表2-2 Cx接口Diameter应用所定义的AVP
Visited-Network-Identity AVP携带P-CSCF所位于的网络标识符。一个I-CSCF会将包含在SIP注册请求中的P-Visited-Network-ID映射到Visited-Network-Identifier AVP。归属网络可以通过使用在该网络中的P-CSCF来对IMS进行鉴权。
公共标识(Public-Identity)AVP携带一个公共用户标识(SIP URI或TEL URI)。
服务器名称(Server-Name)AVP包含SIP服务器节点的URI(例如,S-CSCF URI)。
服务器能力(Server-Capabilities)是一个组AVP,其主要目的就是携带为用户提供服务的S-CSCF所需的能力。HSS将这些能力发送给I-CSCF,I-CSCF便可以为用户选择一个S-CSCF。由于它是一个组AVP,所以它包含其他AVP:Mandatory-Capability,Optional-Capability和Server-Name。
Mandatory-Capability AVP指出了所选S-CSCF必须实现的能力,但是对于另一个Optional-Capability而言,它包含S-CSCF可以选择实现的能力。两个AVP都可以重复多次,从而标识多个能力。表示的能力可以是一个整数,归属运营商为每个整数分配了语义,因为Cx接口都位于归属网络内部,所以这种分配方式是有效的。例如,执行Java的能力可以指定为能力1,运行SIP CGI脚本的能力为能力2,等等。
用户数据AVP携带用户属性。S-CSCF将在SIP-Number-Auth-Items AVP中指出它希望从HSS为特定用户接收多少鉴权矢量,HSS使用该AVP来说明它实际发送了多少鉴权矢量。
SIP-Auth-Data-Item是一个组AVP,它包含以下AVP:SIP-Item-Number,SIP-Authentication-Scheme,SIP-Authenticate,SIP-Authorization,SIP-Authentication-Context,Confidentiality-Key和Integrity-Key。
当一个Diameter消息携带多个SIP-Auth-Data-Item AVP时,S-CSCF必须考虑对这些AVP的处理顺序,于是HSS会在SIP-Item-Number AVP中包含一个序列号,该SIP-Item-Number包含在每个SIP-Auth-Data-Item中。
SIP-Authentication-Scheme AVP指出了SIP消息使用的鉴权机制。3GPP Release5中只定义了Digest-AKAv1-MD5作为鉴权机制。
SIP-Authenticate AVP由HSS来使用,用于发送S-CSCF在401未认证响应中在SIP WWW-Authenticate域中插入的值。当用户被鉴权时,IMS终端会发送一个包含Authorization域的SIP请求。该值并不发送给HSS,除非同步失败,在这种情况下,S-CSCF将把SIP Authorization域中的值复制到SIP-Authorization AVP。
根据某个鉴权机制,SIP-Authentication-Context用于携带发给S-CSCF的部分或者完全的SIP请求。
Confidentiality-Key和Integrity-Key AVP分别包含P-CSCF需要加密/解密和SIP消息(IMS终端收发的消息)完整性保护所需的密钥。HSS将这些密钥通过这些AVP发送给S-CSCF,而S-CSCF将这些参数插入到SIP WWW-Authentication域的Digest机制,随后P-CSCF将删除之。
S-CSCF将在Server-Assignment-Type AVP中给出S-CSCF联系HSS的原因,可能的原因有:S-CSCF需要用户属性;用户已经注册;重注册;去注册;注册超时;管理性去注册;鉴权失败或者超时等。
当HSS去注册一个用户时,它在Deregistration-Reason AVP中向S-CSCF发送该信息。该Deregistration-Reason是一个群AVP,包括一个Reason-Code AVP,可选的,还可以包括一个Reason-Info AVP。Reason-Code AVP是一个数值码,它标识了由网络发起的去注册的原因,例如,IMS签约的永久终止或者有一个新的S-CSCF被分配给用户。Reason-Info包含一个可读的文本字符串,它描述了去注册的原因。
Charging-Information是一个群AVP,它包括事件计费功能(Event Charging Function,ECF)和计费收集功能(Charging Collection Function,CCF)节点的AAA URI。主要和辅助节点的AAA URI都发送给S-CSCF,第二个节点在第一个节点失败时将开始使用。计费信息(Charging-Information)AVP包含以下AVP:
● 主事件计费功能名;
● 次事件计费功能名;
● 主计费收集功能名;
● 次计费收集功能名。
User-Authorization-Type AVP指出了一个I-CSCF在UAR消息中的请求认证类型,该值可以表明初始注册、重注册、去注册、或者注册和能力。当目前分配给用户的S-CSCF不可达时,I-CSCF会使用注册和能力值,I-CSCF请求S-CSCF的能力是为了对S-CSCF进行新选择。
在SAR消息中,S-CSCF可以向HSS指出S-CSCF已经获得了用户属性,S-CSCF通过在SAR消息中包含一个User-Data-Already-Available AVP来实现。
现存AVP的使用:除了3GPP创建的支持Cx接口Diameter应用的AVP外,该应用的请求和应答还使用了在Diameter基本协议中所定义的已有AVP。3GPP所使用的最重要的AVP已在前面章节进行了介绍。当然User-Name AVP也很重要,在IMS中它总是携带私有用户标识。
3.用户属性
用户属性存储在HSS中,它包含与特定用户相关的大量信息。当用户第一次注册到S-CSCF时,S-CSCF将下载用户属性。S-CSCF在Diameter SAA消息的用户数据AVP中接收这些属性。当用户已经注册到网络且用户属性发生改变时,HSS将在DiameterPPR消息中的User-Data AVP中更新这些用户属性。
用户属性包含多个业务属性(Service Profiles),每个业务属性定义了可应用到一组公共用户标识的业务触发器。业务属性分为4部分:一个或多个公共标识集合、一个可选的核心网业务认证、零或者多个初始过滤器标准、零或多个共享的初始过滤器准则。
包含在业务属性中的公共标识包含与该业务属性相关的公共用户标识。业务属性对于在公共标识中列出的所有标识都是可应用的,每个公共标识包含一个标签用于指出公共用户标识是否被禁止,禁止的公共用户标识可以用于注册目的,但是不能用于其他SIP业务。公共标识包含一个SIP URI或者一个TEL URI。
业务属性也可以包括一个核心网业务认证,它又包括一个签约的媒体属性标识符。签约媒体属性标识符包含一个值,该值标识用户请求认证的一组SDP参数,该标识符存储在S-CSCF中。S-CSCF使用签约的媒体属性标识符来应用特定SDP属性,它可以帮助S-CSCF管理用户初始请求中的SDP。例如,用户可能不会认证用户视频。在这种情况下,如果用户发起一个会话,其SDP包含一个视频流,当S-CSCF评估发现SDP与用户签约的媒体属性不同时,S-CSCF将拒绝该会话尝试。
在业务属性中存储的第三部分信息是初始过滤器准则集合,它决定哪个SIP请求必须访问一个确定的应用服务器,这样就可以提供特定的业务。初始过滤器准则在前面已经进行了介绍。
业务属性的最后一部分是共享的初始过滤器标准,这是一个可选的特征,它需要S-CSCF和HSS都支持。通常,网络中的很多用户都会共享一个初始过滤器准则集。如果每次用户注册到S-CSCF时,它都下载之前已经下载过的初始过滤器准则,显然这不是最优的。共享初始过滤器准则运行创建一个初始过滤器数据库,它对于用户集合是公共的。数据库存储在S-CSCF和HSS中。每个共享的初始化过滤器准则都由一个唯一标识符来标识。当用户业务属性包含一个或者多个共享的初始过滤器准则时,只有标识符下载到S-CSCF中;S-CSCF在其内部数据库中已经存储了共享的初始过滤器准则。
2.7.3 Sh接口
Sh接口是SIP AS或者OSA-SCS与HSS之间定义的接口,它支持数据存储和功能提取功能,例如,一个应用服务器从HSS下载数据,或者应用服务器向HSS上载数据。这些数据可以是业务执行脚本或者是应用给用户和特定业务的配置参数。Sh接口还提供签约和通知业务,所以AS可以签约HSS中存储数据的变更,当这些数据发生变更时,HSS会通知应用服务器。
在应用服务器中实现Sh接口是可选的,取决于应用服务器所提供的业务特性:因为一些业务需要与HSS进行交互,而有些业务则不需要。
Sh接口上的协议是具有Diameter应用的Diameter协议,该应用称为Sh接口的Diameter应用,这是制造商特定的Diameter应用,它定义了新命令码和AVP以通过Sh接口支持所需的功能。
Sh接口引入了术语用户数据,用该术语来指明各种数据类型。在Sh接口上的多数Diameter消息属于不同的用户数据类型。在Sh接口上下文中,用户数据可以有以下类型。
● 存储数据:AS使用HSS来存储透明数据,这些数据只有相关实现业务的应用服务器才能理解,对于不同用户和不同业务而言,这些数据是不同的;
● 公共标识符:是分配给用户的公共用户标识列表;
● IMS用户状态:是IMS中用户的注册状态,这些状态包括已注册、未注册、鉴权挂起、虽未注册但是S-CSCF已分配给未注册用户;
● S-CSCF名称:包括分配给用户的S-CSCF地址;
● 初始过滤器准则:对于业务而言,它包含触发信息,一个应用服务器只有获得初始过滤器准则才能将SIP请求路由到请求的应用服务器;
● 位置信息:包括电路域或分组域的用户位置;
● 用户状态:包括电路域或分组域的用户状态;
● 计费信息:包括计费功能的地址。
1.Sh接口Diameter应用所定义的命令码
Sh接口定义了8个新Diameter消息以支持该接口所需的功能。表2.3列出了Sh接口Diameter应用所定义的8个新命令。
表2-3 Sh接口Diameter应用所定义的命令
(1)用户数据请求和应答(UDR和UDA)
应用服务器向HSS发送一个用户数据请求(User-Data-Request,UDR)以请求特定用户的数据,该用户数据可以是Sh接口所定义的数据类型。HSS通过Diameter用户数据应答(User-Data-Answer,UDA)消息来返回请求的数据类型。图2-24描述了该呼叫流程。
(2)属性更新请求和应答(PUR和PUA)
应用服务器可以修改存储类型的用户数据并在HSS中存储。为此,应用服务器会向HSS发送一个属性更新请求(Profile-Update-Request,PUR)消息。HSS会在Diameter属性更新用户(Profile-Update-Answer,PUA)消息中返回该结果。图2-25给出了信令流。
图2-24 UDR/UDA消息
图2-25 PUR/PUA消息
(3)签约通知请求和应答(SNR和SNA)
应用服务器通过向HSS发送签约通知请求(Subscribe-Notification-Request,SNR)便可以签约用户的变更通知。通知的数据类型为存储数据、IMS用户状态、S-CSCF名称和初始过滤器标准。HSS通过签约通知应答(Subscribe-Notification-Answer,SNA)来向应用服务器通知签约结果。图2-26给出了该流程。
图2-26 SNR/SNA和PNR/PNA消息
(4)推送通知请求和应答(PNR和PNA)
当HSS中的用户数据发生改变且应用服务器已签约数据变更时,HSS会向应用服务器推送通知请求(Push-Notification-Request,PNR)消息。PNR消息包括变更数据的一个拷贝。应用服务器以推送通知应答(Pust-Notification-Answer,PNA)消息来响应。该流程请求参阅图2-26。
2.Sh接口Diameter应用定义的AVP
Sh接口Diameter应用定义了很多新AVP,表2.4列出了这些属性名称以及AVP码。
表2-4 Sh接口Diameter应用定义的AVP
用户标识User-Identity是一个群AVP,它包括作为公共用户标识的用户标识,在这种情况下,它包括一个Public-Identity AVP,或者,作为一个移动用户综合业务数字网(Mobile Subscribe Integrated Services Digital Network,MSISDN)号,此时,它包括一个MSISDN AVP。
根据在Sh接口上定义的用户数据,用户数据User-Data AVP包括用户数据,用户数据的类型在Data-Reference AVP中进行了规范,它包括一个值,该值标识任意用户数据的不同类型。
业务指示Service-Identification AVP包含存储在HSS中的存储数据标识符,这样应用服务器就能实现为HSS中的每种业务存储数据,并能区分每种对应业务的相关数据集合。
Subs-Req-Type AVP包含一个指示,它表明应用服务器是否签约了HSS中的通知业务。
请求域Request-Domain AVP指出应用服务器是对访问电路交换域数据感兴趣还是对访问分组交换域数据感兴趣。
当前位置Current-Location AVP指出是否要发起称为“激活位置恢复”的过程。
服务器名称Server-Name AVP反映了Cx接口Diameter应用中具有相同名称的AVP。
2.7.4 计费
计费是对网络所耗用的相关资源数据的收集与统计,从而为系统容量趋势分析、成本收益、审计以及业务应用情况提供必要的支持。
IMS使用Diameter协议来传输计费信息。CSCF通知计费系统为每个用户所建立会话的类型和时长,路由器(如GGSN)会向计费系统通报在这些会话过程中媒体的活动情况,计费系统将这些信息按照用户进行关联,从而进行相应的计费。
计费系统使用唯一的标识符来将计费数据域从不同实体接收到的特定会话进行关联。所以,CSCF和路由器对相同会话所产生的计费记录具有唯一的标识符。