用戶端設(shè)備及其配置方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信領(lǐng)域,具體而言,涉及一種利用遠(yuǎn)程身份認(rèn)證撥入用戶服務(wù)協(xié)議(Remote Authenticat1n Dial In User Service Protocol,簡(jiǎn)稱為 RADIUS)服務(wù)器進(jìn)行配置的方法和用戶端設(shè)備。
【背景技術(shù)】
[0002]RADIUS 是 RFC2865 “RADIUS”和 RFC2866 “RADIUS 記賬”中描述的業(yè)界標(biāo)準(zhǔn)協(xié)議。其目的是為撥號(hào)用戶進(jìn)行認(rèn)證和計(jì)費(fèi)。后來經(jīng)過多次改進(jìn),形成了一項(xiàng)通用的認(rèn)證計(jì)費(fèi)協(xié)議。
[0003]RADIUS是一種用戶端(Client)/服務(wù)器(Server)結(jié)構(gòu)的協(xié)議,它的用戶端最初就是網(wǎng)絡(luò)接入服務(wù)器(Network Access Server,簡(jiǎn)稱為NAS),現(xiàn)在任何運(yùn)行NAS軟件的計(jì)算機(jī)都可以成為RADIUS的用戶端。RADIUS協(xié)議認(rèn)證機(jī)制靈活,是一種可擴(kuò)展的協(xié)議,它進(jìn)行的全部工作都是基于屬性-長(zhǎng)度-值(Attribute-Length-Value)的三元組進(jìn)行的,其中,屬性用屬性編號(hào)表示其名稱,屬性值代表著用戶端可執(zhí)行的配置操作。
[0004]目前,用戶端設(shè)備在配置的過程中,由于存在人為的疏忽以及封包傳遞過程中可能遭受的攻擊篡改,進(jìn)而導(dǎo)致用戶端設(shè)備從RADIUS服務(wù)器接收的屬性及屬性值出現(xiàn)錯(cuò)誤,在這種情況下,一種方式是忽略錯(cuò)誤的屬性值以正確的屬性值進(jìn)行配置,然各個(gè)屬性之間存在著一定的相關(guān)性,故配置也存在著一定的順序性,若僅僅只以正確的屬性值進(jìn)行配置,可能會(huì)因?yàn)榕渲玫臒o序而造成用戶端設(shè)備功能的損壞。另外一種方式就是若所接收的屬性中存在一個(gè)錯(cuò)誤,則丟棄所有接收的屬性并重新請(qǐng)求配置,如此便造成了配置效率的低下。
【發(fā)明內(nèi)容】
[0005]有鑒于此,本發(fā)明的目的是提供一種用戶端設(shè)備及其配置方法,可以依據(jù)屬性之間的相關(guān)性對(duì)用戶端設(shè)備進(jìn)行配置,進(jìn)而實(shí)現(xiàn)配置效率的提升。
[0006]本發(fā)明實(shí)施方式中提供的用戶端設(shè)備包括分類模塊、配置請(qǐng)求模塊、解析模塊、判斷模塊和配置模塊。分類模塊用于發(fā)送屬性分類請(qǐng)求封包至RADIUS服務(wù)器請(qǐng)求授權(quán)對(duì)所述多個(gè)屬性進(jìn)行分類,也用于接收RADIUS服務(wù)器的屬性分類響應(yīng)封包并將所述多個(gè)屬性分類并根據(jù)所述多個(gè)屬性的分類構(gòu)造一樹狀結(jié)構(gòu),所述樹狀結(jié)構(gòu)的多個(gè)節(jié)點(diǎn)與所述多個(gè)屬性對(duì)應(yīng);配置請(qǐng)求模塊用于發(fā)送配置請(qǐng)求封包給RADIUS服務(wù)器請(qǐng)求進(jìn)行配置,并接收RADIUS服務(wù)器的配置響應(yīng)封包,所述配置響應(yīng)封包包括RADIUS服務(wù)器對(duì)所述多個(gè)屬性設(shè)定的屬性值;解析模塊用于解析所述配置響應(yīng)封包以獲取所述屬性值,并將所述屬性值存放在所述樹狀結(jié)構(gòu)的節(jié)點(diǎn)處;判斷模塊依序?qū)λ龉?jié)點(diǎn)存放的所述屬性值的正確性進(jìn)行判斷;配置模塊在所述屬性值正確時(shí)使用所述屬性值進(jìn)行配置。
[0007]優(yōu)選地,所述屬性分類請(qǐng)求封包包括相關(guān)性屬性,所述相關(guān)性屬性為RADIUS協(xié)議中規(guī)定的擴(kuò)展屬性并代表所述多個(gè)屬性之間的相互關(guān)系,其中,根據(jù)所述屬性分類響應(yīng)封包將所述多個(gè)屬性分類是依據(jù)所述相互關(guān)系對(duì)所述多個(gè)屬性進(jìn)行分類。
[0008]優(yōu)選地,所述解析模塊依據(jù)RADIUS協(xié)議標(biāo)準(zhǔn)屬性文件對(duì)配置響應(yīng)封包進(jìn)行解析。
[0009]優(yōu)選地,所述判斷模塊在某一節(jié)點(diǎn)的所述屬性值錯(cuò)誤時(shí),停止判斷該節(jié)點(diǎn)后續(xù)節(jié)點(diǎn)的所述屬性值,同時(shí)跳到該節(jié)點(diǎn)的兄弟節(jié)點(diǎn)處以判斷所述兄弟節(jié)點(diǎn)存放的所述屬性值的正確性。
[0010]優(yōu)選地,所述判斷模塊判斷所述節(jié)點(diǎn)存放的所述屬性值的正確性的順序由深度優(yōu)先搜索算法進(jìn)行確定。
[0011]本發(fā)明實(shí)施方式中提供的配置方法,應(yīng)用于用戶端設(shè)備中,所述用戶端設(shè)備具有多個(gè)屬性且與RADIUS服務(wù)器相連,所述配置方法包括:發(fā)送屬性分類請(qǐng)求封包至RADIUS服務(wù)器請(qǐng)求授權(quán)對(duì)所述多個(gè)屬性進(jìn)行分類;接收RADIUS服務(wù)器的屬性分類響應(yīng)封包并將所述多個(gè)屬性分類并根據(jù)所述多個(gè)屬性的分類構(gòu)造一樹狀結(jié)構(gòu),所述樹狀結(jié)構(gòu)的多個(gè)節(jié)點(diǎn)與所述多個(gè)屬性對(duì)應(yīng);發(fā)送配置請(qǐng)求封包給RADIUS服務(wù)器請(qǐng)求進(jìn)行配置,并接收RADIUS服務(wù)器的配置響應(yīng)封包,所述配置響應(yīng)封包包括RADIUS服務(wù)器對(duì)所述多個(gè)屬性設(shè)定的屬性值;解析所述配置響應(yīng)封包以獲取所述屬性值,并將所述屬性值存放在所述樹狀結(jié)構(gòu)的節(jié)點(diǎn)處;依序?qū)λ龉?jié)點(diǎn)存放的所述屬性值的正確性進(jìn)行判斷;當(dāng)所述屬性值正確時(shí)使用所述屬性值進(jìn)行配置。
[0012]優(yōu)選地,所述屬性分類請(qǐng)求封包包括相關(guān)性屬性,所述相關(guān)性屬性為RADIUS協(xié)議中規(guī)定的擴(kuò)展屬性并代表所述多個(gè)屬性之間的相互關(guān)系,其中,根據(jù)所述屬性分類響應(yīng)封包將所述多個(gè)屬性分類是依據(jù)所述相互關(guān)系對(duì)所述多個(gè)屬性進(jìn)行分類。
[0013]優(yōu)選地,所述配置響應(yīng)封包是依據(jù)RADIUS協(xié)議標(biāo)準(zhǔn)屬性文件進(jìn)行解析。
[0014]優(yōu)選地,在某一節(jié)點(diǎn)的所述屬性值錯(cuò)誤時(shí),停止判斷該節(jié)點(diǎn)后續(xù)節(jié)點(diǎn)的所述屬性值,同時(shí)跳到該節(jié)點(diǎn)的兄弟節(jié)點(diǎn)處以判斷所述兄弟節(jié)點(diǎn)存放的所述屬性值的正確性。
[0015]優(yōu)選地,判斷所述節(jié)點(diǎn)存放的所述屬性值的正確性的順序由深度優(yōu)先搜索算法進(jìn)行確定。
[0016]上述用戶端設(shè)備及其配置方法依據(jù)屬性的相關(guān)性將各屬性存儲(chǔ)在一個(gè)樹形結(jié)構(gòu)中,確定了屬性配置過程中的配置順序,進(jìn)而避免了配置過程的無序?qū)е掠脩舳嗽O(shè)備功能的損壞,同時(shí)由于確定了各個(gè)屬性的配置順序,也不會(huì)因?yàn)橐粋€(gè)屬性的錯(cuò)誤而放棄所有屬性的設(shè)定,即提高了用戶端設(shè)備配置過程中的效率。
[0017]以下結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)描述,但不作為對(duì)本發(fā)明的限定。
【附圖說明】
[0018]圖1是本發(fā)明用戶端設(shè)備一實(shí)施方式的應(yīng)用環(huán)境圖。
[0019]圖2是本發(fā)明用戶端設(shè)備一實(shí)施方式的功能模塊圖。
[0020]圖3是本發(fā)明用戶端設(shè)備新增一相關(guān)性屬性的示意圖。
[0021]圖4是本發(fā)明用戶端設(shè)備所構(gòu)建樹狀結(jié)構(gòu)的示意圖。
[0022]圖5是本發(fā)明配置方法一實(shí)施方式的流程圖。
[0023]主要元件符號(hào)說明
[0024]用戶終端10
[0025]用戶端設(shè)備20
[0026]RADIUS 服務(wù)器30
[0027]分類模塊200
[0028]配置請(qǐng)求模塊202
[0029]解析模塊204
[0030]判斷模塊206
[0031]配置模塊208
[0032]如下【具體實(shí)施方式】將結(jié)合上述附圖進(jìn)一步說明本發(fā)明。
【具體實(shí)施方式】
[0033]圖1是本發(fā)明用戶端設(shè)備20 —實(shí)施方式的應(yīng)用環(huán)境示意圖,其展示了用戶上網(wǎng)的組網(wǎng)方式,整個(gè)組網(wǎng)為三層結(jié)構(gòu)。如圖1所示,用戶終端10直接與用戶端設(shè)備20相連,用戶端設(shè)備20再通過RADIUS數(shù)據(jù)封包與RADIUS服務(wù)器30進(jìn)行交互。其中RADIUS服務(wù)器30對(duì)用戶上網(wǎng)的認(rèn)證、授權(quán)和計(jì)費(fèi)進(jìn)行集中式的管理。
[0034]圖2所示為本發(fā)明用戶端設(shè)備20 —實(shí)施方式的功能模塊圖。用戶端設(shè)備20包括分類模塊200、配置請(qǐng)求模塊202、解析模塊204、判斷模塊206、配置模塊208。在本實(shí)施方式中,模塊200?208為可執(zhí)行程序且一起存在于用戶端設(shè)備20的存儲(chǔ)器中,并由處理器執(zhí)行相關(guān)程序以實(shí)現(xiàn)上述模塊的功能。
[0035]分類模塊200發(fā)送屬性分類請(qǐng)求封包至RADIUS服務(wù)器30以請(qǐng)求授權(quán)對(duì)屬性進(jìn)行分類,并在接收RADIUS服務(wù)器回送的屬性分類響應(yīng)封包后將用戶端設(shè)備20的所有屬性進(jìn)行分類,同時(shí)依據(jù)屬性的分類構(gòu)造一樹狀結(jié)構(gòu)。在本實(shí)施方式中,用戶端設(shè)備20包括多個(gè)屬性,各個(gè)屬性之間存在一定的相關(guān)性,即某些屬性正確與否會(huì)影響一些與其關(guān)聯(lián)的其他屬性。在本實(shí)施方式中,屬性分類請(qǐng)求封包中具有一個(gè)相關(guān)性屬性以表示各個(gè)屬性之間的相互關(guān)系,并發(fā)送此屬性分類請(qǐng)求封包至RADIUS服務(wù)器30請(qǐng)求授權(quán)用戶端設(shè)備20對(duì)其所有屬性按照屬性之間相關(guān)關(guān)系進(jìn)行分類,其中,上述新增的相關(guān)性屬性屬于RADIUS協(xié)議中規(guī)定的擴(kuò)展性屬性。
[0036]在本實(shí)施方式中,屬性分類請(qǐng)求封包和屬性分類響應(yīng)封包均包含新增的相關(guān)性屬性,其相關(guān)性屬性如圖3所示,包括屬性編碼、屬性名、屬性字類型、屬性長(zhǎng)度和屬性值。在本實(shí)施方式中,相關(guān)性屬性中的屬性編碼為250,屬性名稱為相關(guān)性,屬性字為字符串,屬性長(zhǎng)度為0-256,屬性值表示用戶端設(shè)備20各個(gè)屬性之間的相互關(guān)系。在本實(shí)施方式中,假如用戶端設(shè)備20具有六個(gè)屬性,則屬性分類請(qǐng)求封包中相關(guān)性屬性的屬性值可為一字符串“110,120 ;111,11 ;112,10 ;113,1210 ;114,1212 ;115,1211”,其中 110、111、112、113、114、115表示用戶端設(shè)備20中各個(gè)屬性的屬性編碼,即代表著各個(gè)屬性,而其中相應(yīng)的120、11、10、1210、1212、1211則表示著各個(gè)屬性之間的相互關(guān)系,S卩11和120代表的屬性依附于10代表的屬性,1210代表的屬性依附于120代表的屬性,1211和1212代表的屬性依附1210代表的屬性。
[0037]在本實(shí)施方式中,由于相關(guān)性屬性中的屬性值表示的是各個(gè)屬性之間的相互關(guān)系,故很容易通過相關(guān)性屬性的屬性值將多個(gè)屬性進(jìn)行分類,并依據(jù)屬性的分類和數(shù)據(jù)結(jié)構(gòu)的知識(shí)構(gòu)造出一樹狀結(jié)構(gòu)。在本實(shí)施方式中,分類模塊200構(gòu)造的樹狀結(jié)構(gòu)如圖4所示,其中112代表的屬性位于樹狀結(jié)構(gòu)的根節(jié)點(diǎn)處,其他屬性編碼代表的屬性位于樹狀結(jié)構(gòu)的其他子節(jié)點(diǎn)處。
[0038]配置請(qǐng)求模塊202發(fā)送配置請(qǐng)求封包至RADIUS服務(wù)器30以請(qǐng)求RADIUS服務(wù)器30對(duì)用戶端設(shè)備20進(jìn)行配置,同時(shí)接收RADIUS服務(wù)器30回送的配置響應(yīng)封包。在本實(shí)施方式中,配置請(qǐng)求封包包括用戶端設(shè)備20識(shí)別信息,比如設(shè)備識(shí)別號(hào)。在RADIUS服務(wù)器30接收到配置請(qǐng)求封包并識(shí)別出用戶端設(shè)備20后,RADIUS服務(wù)器30對(duì)用戶端設(shè)備20的屬性設(shè)定屬性值,并將用戶端設(shè)備20的屬性及設(shè)定的屬性值以配置響應(yīng)封包的形式發(fā)送給用戶端設(shè)備20。在本實(shí)施方式中,配置響應(yīng)封包中的屬性及設(shè)定的屬性值成對(duì)存在。
[0039]解析模塊204對(duì)接收的配置響應(yīng)封包進(jìn)行解析以獲得RADIUS服務(wù)器30發(fā)送的屬性及設(shè)定的屬性值,并將獲得的屬性值對(duì)應(yīng)存放到樹狀結(jié)構(gòu)的節(jié)點(diǎn)處。在本實(shí)施方式中,解析模塊204利用RADIUS協(xié)議標(biāo)準(zhǔn)屬性文件對(duì)配置響應(yīng)封包進(jìn)行解析。
[0040]判斷模塊206利用深度優(yōu)先搜索算法(depth-first search, DFS)確定的順序?qū)錉罱Y(jié)構(gòu)中的各個(gè)節(jié)點(diǎn)中的屬性值的正確性進(jìn)行判