[摘 要]本文針對在基于Diameter基礎協議的擴展應用中,設計了一種基于SAML的授權信息的描述和傳遞機制的解決方案。該方案可以使AAA系統與業務應用系統結合,實現統一的身份聯盟和單點登陸功能。
[關鍵詞]AAA Diameter SAML 單點登陸
[中圖分類號]TP [文獻標識碼]A [文章編號]1009-5489(2008)09-0270-02
AAA服務是網絡運營、用戶管理以及網絡安全的基礎。目前,原有的RADIUS協議已經很難滿足DSL技術、無線技術等在AAA問題上復雜性和密度性方面的需求。為此,IETF在RAIDUS協議基礎上推出的Diameter協議,作為新一代的移動IP的AAA框架的基礎。Diameter協議與EAP協議、PANA協議構成了新一代的AAA服務框架。
一、Diameter協議
IETF制定了一組以Diamter基礎協議為核心的協議和草案,定義了一套新的AAA框架,包含了對移動IPv6和QoS的支持等細節。其中,Diameter基礎協議定義了傳輸協議、節點角色、消息格式、錯誤機制、計費功能和安全服務等。
二、SAML語言
安全斷言標記語言(The Security Assertion Markup Language SAML)基于XML的框架定義了
一套在線安全信息描述和交換框架。它是由OASIS組織下的安全服務技術委員會(SSTC)維護的。安全信息被表示成簡潔的SAML斷言形式,在不同安全域的應用程序間安全的傳遞。SAML現在多用于信息資源的訪問授權控制。
三、基于Diameter和SAML移動AAA服務框架設計
要想把基于SAML的授權消息集成到Diameter協議框架中,就要針對Diameter的實現框架設計一個基于SAML的授權信息傳遞機制。尤其SAML的消息傳遞機制,在當前應用中沒有討論移動節點MN在未獲訪問許可時如何對家鄉AAA服務器發送請求。在這種情況下,使用Diameter的代理功能可以很好的解決這個問題,具體結構如圖1。

針對新加入的SAML消息,對基礎認證授權過程作如下的調整:
移動節點(MN)與接入服務器(NAS)段采用PANA協議來承載EAP消息。
接入服務器與本地AAA服務器間采用Diameter協議,進行認證授權和記賬等通訊過程。
當被訪問域AAA服務器收到一個本域節點的認證授權請求時,按著正常的Diameter基礎協議進行處理。
當被訪問域AAA服務器(AAAv)收到外地域的移動節點的認證請求時,會對其家鄉域進行判斷。如果是可信任的外地域,則以代理的身份轉發認證請求,并且在認證消息中附加基于SAML協議的授權請求。如果移動節點的家鄉域與被訪問域沒有可信任關系,則認為認證失敗。
移動節點的家鄉域的AAA服務器(AAAh)收到其他域的發送來的含有SAML授權請求認證授權請求消息后,首先根據移動節點的認證信息對移動節點的身份合法性做出判斷。然后,會根據已移動節點的身份信息和SAML授權請求中的信息對授權請求進行處理,生成對應的SAML斷言,并將對應的SAML應答信息封裝在Diameter應答消息中發送回外地AAA服務器。
外地域AAA服務器在收到移動節點家鄉域AAA服務器的應答后,會解析SAML應答消息。根據移動節點家鄉域的給出的移動節點身份信息以及外地AAA服務器的訪問角色映射策略,對移動節點賦予本地訪問角色,并根據角色對應的權限對移動節點在外地域的訪問請求作出相應的判斷。這個認證授權過程的消息流程如圖2所示。

四、SAML應用框架設計
現有的SAML應用框架基本大多是針對信息資源的訪問控制而制定的。這些框架并不適合移動節點漫游到外地管理域的接入認證授權情況。

針對移動節點在外地域的接入認證授權場景,本文設計了一種將SAML協議應用到移動IPv6漫游場景下的應用框架。具體過程如下:
1.移動節點MN移動到新的訪問域,可以向接入控制服務器NAS發送一個攜帶EAP載荷的PANA消息發起認證。
2.NAS接到認證請求后,會將EAP認證請求封裝在Diameter協議中,發向外地認證服務器AAAv,并在Diameter請求中附加一個基于SAML的訪問授權請求。
3.AAAv在收到NAS的請求后,會對請求作出判斷。如果是本地域的節點則按照本地策略庫中的認證授權策略進行處理。如果移動節點家鄉地屬于外地域,則以代理的身份向移動節點家鄉認證服務器AAAh轉發這個含有授權請求的Diameter消息。
4.AAAh根據本地策略庫對認證授權請求作出處理。并將結果返回給AAAv。
5.AAAv對AAAh發來的認證授權應答做出處理。如果認證通過,則根據應答中的SAML AVP中的信息,將移動節點映射為本地的角色,并根據相關策略,向NAS返回一個SAML格式的授權應答。
6.移動節點在外地域中的其他授權請求則根據AAAv中的授權管理模型進行處理。
五、Diameter的功能模塊
根據實際中的功能和部署,Diameter應用分為三個模塊,它們是:AAA服務器模塊、AAAk客戶端/PANA認證者模塊和PANA客戶端模塊。
AAA服務器模塊:AAA服務器為域內安全認證的核心位置。AAA服務器既要實現接入服務身份驗證功能、Diameter消息代理功能、還要實現授權模型的管理者功能以及SAML協議中的策略決策點PDP功能。
AAA客戶端/PANA認證者模塊:該模塊主要布置在NAS服務器或有該功能的路由器之上,負責在移動節點接入認證階段承擔著PANA協議的認證者的角色,與移動節點建立PANA協議通信,采集認證信息。另外,該模塊在Diameter協議中還承擔著客戶端的角色,負責將采集到的認證信息,以Diameter消息的格式發往AAA服務器。在本文設計方案中,該模塊還承擔著SAML安全模型中策略執行點PEP的功能。
PANA客戶端模塊:該模塊布置在移動節點MN上,主要是負責與PANA認證者建立連接,提供認證信息,接收認證應答消息。具體結構如圖4所示。

六、性能分析
本文設計方案在Diameter授權過程中使用SAML協議來傳遞用戶的授權信息。一方面,這種授權信息可以作為NAS實現服務質量控制提供了基礎依據,另一方面,也為Diameter網絡接入認證與當前主流的單點登錄技術提供了接口,為實現網絡接入管理和資源訪問授權的統一管理提供基礎。
[參考文獻]
[1]C·Rigney A.Rubens W.Simpson S.Willens,Remote Authentication Dial In User Service(RADIUS),RFC2058,April 1997
[2]P·Calhoun,J.Loughney,E.Guttman\"Diameter Base Protocol\",RFC3588,September 2003
[3]B·Aboba,L.Blunk,Extensible Authentication Protocol(EAP),RFC3784,June 2004