2.7 IMS中的AAA技術
在IMS中鑒權和認證通常是關聯在一起的,相比之下,計費是由不同節點執行的不同功能。所以對鑒權和認證的介紹與計費的介紹是分開的。
2.7.1 IMS中的鑒權和認證
圖2-19給出了執行鑒權和認證功能的IMS架構。鑒權和認證功能的執行涉及3個不同接口,即Cx、Dx和Sh接口。
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應用所定義的命令列表
當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不同。
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終端⑤和⑥。
(6)推送屬性請求和應答(PPR和PPA)
HSS可以在任何時間變更用戶屬性,例如,當用戶有新業務時;此時通常需要增加新過濾器準則。當用戶屬性更新后,HSS會向分配給用戶的S-CSCF發送一個推送屬性請求(PushProfile Request,PPR)消息,該消息包含用戶屬性的更新拷貝。圖2-23給出了PPR和PPA Diameter消息的實例,該消息不與任何SIP信令關聯。
2.Cx接口Diameter應用中定義的AVP
Cx接口Diameter應用定義了大量新AVP,表2.2給出了這些新屬性值以及其AVP碼。這些AVP的所有Vendor-Id域都設置為10415,表示該設備制造商為3GPP。
表2-2 Cx接口Diameter應用所定義的AVP
公共標識(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應用所定義的命令
應用服務器向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給出了信令流。
(3)簽約通知請求和應答(SNR和SNA)
應用服務器通過向HSS發送簽約通知請求(Subscribe-Notification-Request,SNR)便可以簽約用戶的變更通知。通知的數據類型為存儲數據、IMS用戶狀態、S-CSCF名稱和初始過濾器標準。HSS通過簽約通知應答(Subscribe-Notification-Answer,SNA)來向應用服務器通知簽約結果。圖2-26給出了該流程。
(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
根據在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和路由器對相同會話所產生的計費記錄具有唯一的標識符。