云盤權限管理方法
【專利摘要】一種云盤權限管理方法,該云盤權限管理方法對用戶的登入登出進行認證,對文件下載、共享等進行認證,考察是否有權限進行此項操作,該管理方法設置了五個模塊,該五個模塊為用戶認證模塊、文件認證模塊、API認證模塊、數(shù)據(jù)認證操作模塊和底層的認證緩存數(shù)據(jù)庫;認證緩存數(shù)據(jù)庫根據(jù)不同任務的認證操作的頻繁性,采用MySQL存儲用戶認證模塊時所需的驗證碼、用戶編碼ID信息,利用Redis存儲API認證模塊所需的關鍵字,即用戶編碼ID和IP組合,以支持快速查詢操作。
【專利說明】云盤權限管理方法
【【技術領域】】
[0001]本發(fā)明涉及互聯(lián)網(wǎng)在線存儲【技術領域】,尤其涉及可以對文件進行存儲、訪問、備份、共享等操作的云盤權限管理方法。
【【背景技術】】
[0002]在互聯(lián)網(wǎng)時代,云盤已經(jīng)成為一種主流的在線存儲方式,用戶可以直接通過瀏覽器進行文件的存儲、訪問、備份、共享等文件管理功能。特別地,對于家庭云盤,由于不同用戶和不同的文件的操作操作權限各不相同,故需要對用戶、文件和底層的接口調用進行層層權限認證,以保障用戶的權限避免漏洞的注入。
[0003]傳統(tǒng)的WEB開發(fā)中,為了包裝RPC(Remote Procedure Call)的請求應用XML-RPC技術,但是XML-RPC只能使用有限的數(shù)據(jù)類型種類和一些簡單的數(shù)據(jù)結構。現(xiàn)有的比較常見的另一種技術SOAP,是基于簡單對象訪問協(xié)議(SOAP, Simple Object Access Protocol)所開發(fā)的云盤權限管理系統(tǒng),是一種基于XML的結構化數(shù)據(jù)交換,它可以和多種傳輸協(xié)議綁定,包括:超文本傳輸協(xié)議(HTTP)、簡單郵件傳輸協(xié)議(SMTP),它偏向于面向活動,有嚴格規(guī)范和標準,包括事物、安全的各個方面,強調操作方法和操作對象的分離。該基于SOAP所開發(fā)云盤權限管理系雖然可以滿足已有穩(wěn)定業(yè)務的權限認證要求,但是SOAP協(xié)議屬于復雜協(xié)議,很難充分發(fā)揮HTTP本身的緩存能力。
[0004]面向服務的架構(Service Oriented Architecture, S0A)和云計算是目前工業(yè)界和學術界都非常關注的兩個領域,二者都是為了提供基于網(wǎng)絡的服務,實現(xiàn)資源的共享,只不過服務的顆粒度和層次不同。當前SOA的標準技術和協(xié)議主要包括簡單對象訪問協(xié)議S0AP、Web 服務描述語言(the Web Services Descript1n Language, WSDL) ,Web 服務業(yè)務處理執(zhí)行語言(Web Services Bus iness Proeess Execut1n Language, WS-BPEL)等,均是基于遠程過程調用(Remote procedure Call, RPC)式的Web服務忽略了 web賴以成功的重要性一簡單。REST思想對已有的web服務進行重構,作為一種新興的技術,開始在業(yè)界和學術界受到越來越廣泛的關注。
[0005]基于SOAP等的Web服務實現(xiàn)是在HTTP之上的遠程過程調用。這樣做使HTTP成為用于傳輸龐大XML負載的協(xié)議,而真正的描述信息在XML里,最終的服務變得太過復雜,難于調試。REST是分布式超媒體系統(tǒng)的架構風格,在分布式超媒體中,文本、超鏈接、音頻以及其它多媒體資源存儲在網(wǎng)絡之上,利用超鏈接互相連接.REST風格架構意味著,對數(shù)據(jù)的操作信息(Get, Head, put, Delete, Post)都在HTTP方法里;面向資源的架構意味著,客戶端對服務器哪些數(shù)據(jù)進行操作的信息都在URI里。二者結合起來非常強大,通過HTTP請求的第一行就能基本了解客戶端要做什么,HTTP請求的其余部分只是具體細節(jié).面向資源的架構具有可尋址性、無狀態(tài)行、連通性和統(tǒng)一接口的特征。
【
【發(fā)明內容】
】
[0006]本發(fā)明針對以上情況提出了一種前端采用Jersey框架創(chuàng)建RESTful WebServices,設計和實現(xiàn)了對用戶、文件、調用接口等多方面權限認證的認證框架,針對不同業(yè)務權限,對家庭云盤的底層分布式文件進行安全的增刪改查等操作。
[0007]本發(fā)明所涉及的云盤權限管理方法對用戶的登入登出進行認證,對文件下載、共享等進行認證,考察是否有權限進行此項操作,該管理方法設置了五個模塊,該五個模塊為用戶認證模塊、文件認證模塊、API認證模塊、數(shù)據(jù)認證操作模塊和底層的認證緩存數(shù)據(jù)庫;認證緩存數(shù)據(jù)庫根據(jù)不同任務的認證操作的頻繁性,采用MySQL存儲用戶認證模塊時所需的驗證碼、用戶編碼ID等信息,利用Redis存儲API認證模塊所需的關鍵字,即用戶編碼ID和IP組合等,以支持快速查詢操作。
[0008]用戶認證模塊認證步驟為:1、進入登錄界面;2、輸入用戶名、密碼以及驗證碼;3、判斷輸入是否為空;4、否,則進入判斷輸入驗證碼是否正確;5、正確,則進入判斷用戶密碼是否正確;6、正確,則顯示合法用戶相應權限;7、進入系統(tǒng);
[0009]文件認證模塊認證步驟為:規(guī)劃數(shù)據(jù)集;劃分資源;設計URI ;
[0010]API認證模塊認證步驟為:每一個前臺發(fā)送接口調用命令,都需要核實該用戶對此API的調用權限,通過判定認證緩存數(shù)據(jù)庫中的用戶登陸信息(userid和登陸時分發(fā)給用戶的token)是否匹配為依據(jù);
[0011]數(shù)據(jù)認證操作模塊的實現(xiàn)過程如下:
[0012]1、實現(xiàn)通過需要獲取編碼id的用戶email的值,用戶email的哈希字符串及設定的過期時間,為用戶分配ID。
[0013]2、實現(xiàn)通過用戶的email的值獲取已分配的用戶的ID。
[0014]3、實現(xiàn)通過用戶的編碼ID和IP地址組合為用戶分配令牌號Token。
[0015]4、實現(xiàn)通過用戶的編碼ID和IP地址獲取已分配的用戶的令牌號。
[0016]5、實現(xiàn)通過用戶的編碼ID和IP組合與用戶的Token進行匹配,判斷是否為認證用戶。
[0017]6、實現(xiàn)緩存數(shù)據(jù)庫中的用戶ID和IP的組合KEY與用戶Token的增刪改接口。
[0018]其中所述API認證模塊的認證方法主要包括以下兩種實現(xiàn)方式:1、首先通過調用isValidateUser接口來認證用戶是否合法,依據(jù)用戶ID,用戶登陸時系統(tǒng)分配給用戶的令牌和IP地址與緩存數(shù)據(jù)庫的用戶登陸信息進行匹配,若判定為合法用戶則返回True作為標識符號,非法用戶返回False標示符;2、其次通過調用getlpAddr接口來獲取請求IP,即通過客戶端發(fā)送的請求request來調用接口請求,最后返回請求的Ip地址,以返回服務器應答。
[0019]其中規(guī)劃數(shù)據(jù)集,文件權限認證模塊的數(shù)據(jù)集主要包括,文件名、文件ID、文件父節(jié)點ID、文件路徑;劃分資源,文件權限管理表是一次性資源,即只能獲取該資源,不能修改和刪除,若要對文件進行刪除、共享只有通過權限管理認證后才能執(zhí)行;設計URI,設基地址{base}為http://localhost:8001/,則文件認證模塊的URI設計如下:
[0020](I)共享文件:{base}/share/share_files
[0021](2)取消文件共享:{base}/share/cancel_share
[0022](3)取消文件共享:{base}/share/update_idcode
[0023](4)下載共享文件:{base}/share/public
[0024](5)下載文件:{base}/share/downloadFile
[0025](6)檢查文件類型:{base}/share/checkType
[0026](7)批量下載文件:{base}/share/package_download
[0027]以share目錄標識所有關于文件共享認證請求的入口,追加不同功能的標識目錄例如share_files表示共享文件,cancel_share表示取消共享,public表示公開共享文件等,將對文件的共享認證操作信息封裝在URI中,以不同路徑標識文件共享的不同操作請求。
[0028]文件認證模塊需要核實用戶的對文件操作的權限,并通過設定文件的共享密碼等方式保證對文件進行保護,除此以外由于文件的下載訪問并發(fā)量不大,可以將文件的基本信息同用戶的基本信息一樣存儲在MySQL數(shù)據(jù)庫中。
[0029]LDA(Lab of Da-cent&Comp-Arc)家庭數(shù)據(jù)中心為本發(fā)明依托的應用系統(tǒng),其中,權限認證框架需要實現(xiàn)從文件、數(shù)據(jù)庫表等存取控制客體出發(fā)進行權限管理,將權限定義到模塊的操作級別上,按大的功能而不是按操作劃分模塊。當用戶進入某模塊之后,在執(zhí)行某操作時,需要獲取用戶對該模塊的權限集,判斷該用戶是否擁有該操作的權限。此時,考慮到一個用戶在網(wǎng)站上不同的操作就會導致頻繁的權限認證,因此必須考慮將認證信息放在可能快速存儲的介質中,以避免因過多的I/O操作而造成的延遲。
[0030]由于云盤本身主要的業(yè)務操作就是增刪改查,抽象資源容易,而REST強調面向資源,只要求操作的對象可以抽象為資源即可以采用REST架構風格。REST (REpresentat1nalState Transfer)架構模式,因為家庭云盤中的每個用戶和文件都可以抽象為資源,分配一個URI和它對應。同時,在REST中使用統(tǒng)一接口處理資源,與數(shù)據(jù)庫CRUD操作(Create、Read,Update 和 Delete) —樣,可以用 P0ST、GET、PUT 和 DELETE 處理 REST 資源。而且每個REST請求都是孤立的,請求中包含了所需的全部信息。REST支持不同的通信數(shù)據(jù)格式,本系統(tǒng)主要采用JSON格式進行數(shù)據(jù)傳輸。由于底層為分布式文件系統(tǒng),集群都不需要考慮上下文和會話的保持,極大的提高了系統(tǒng)的可伸縮性。
[0031]故采用RESTful Web的方式極大的提高了系統(tǒng)的可伸縮性。
[0032]本發(fā)明主要結合家庭網(wǎng)盤的業(yè)務要求,基于RESTful Web架構模式,提出一種針對用戶、文件、調用接口等多方面權限認證的認證方案,實現(xiàn)了針對不同業(yè)務權限,對家庭云盤的底層分布式文件進行安全的增刪改查。
【【專利附圖】
【附圖說明】】
[0033]圖1是本發(fā)明云盤管理方法的架構圖;
[0034]圖2是本發(fā)明用戶認證模塊流程圖。
【【具體實施方式】】
[0035]下面將結合本發(fā)明附圖和【具體實施方式】對本發(fā)明云盤權利管理方法進行進一步的詳細說明。
[0036]請參考附圖1,其中示出了云盤管理方法的架構圖,本發(fā)明針對以上情況提出了一種前端采用Jersey框架創(chuàng)建RESTful Web Services,設計和實現(xiàn)了對用戶、文件、調用接口等多方面權限認證的認證框架,針對不同業(yè)務權限,對家庭云盤的底層分布式文件進行安全的增刪改查等操作。
[0037]本發(fā)明所涉及的云盤權限管理方法對用戶的登入登出進行認證,對文件下載、共享等進行認證,考察是否有權限進行此項操作,該管理方法設置了五個模塊,該五個模塊為用戶認證模塊、文件認證模塊、API認證模塊、數(shù)據(jù)認證操作模塊和底層的認證緩存數(shù)據(jù)庫;認證緩存數(shù)據(jù)庫根據(jù)不同任務的認證操作的頻繁性,采用MySQL存儲用戶認證模塊時所需的驗證碼、用戶編碼ID等信息,利用Redis存儲API認證模塊所需的關鍵字,即用戶編碼ID和IP組合等,以支持快速查詢操作。
[0038]其中用戶認證模塊是權限管理系統(tǒng)中的一個重要部分,它要求能夠實現(xiàn)管理員對用戶的管理,是對權限管理系統(tǒng)控制資源的主體進行有效管理的一個系統(tǒng)工具。根據(jù)對需求、業(yè)務流程和家庭數(shù)據(jù)中心系統(tǒng)的分析,用戶認證管理的表結構如下,通過存儲用戶的創(chuàng)建日期,用戶郵箱,ID,密碼,令牌,驗證碼等基本信息來標識不同的用戶及其狀態(tài)信息。
[0039]本發(fā)明依照REST體架構風格和RESTful Web Services的設計步驟,結合本系統(tǒng)的需求,將按以下步驟具體實現(xiàn)用戶管理功能所需服務。
[0040]規(guī)劃數(shù)據(jù)集,用戶權限認證模塊的數(shù)據(jù)集主要包括,用戶名、密碼、郵箱、令牌等其他用戶信息。
[0041]劃分資源,用戶認證管理表是一次性資源,即只能獲取該資源,不能修改和刪除,只能通過用戶基本信息操作和用戶的登陸退出系統(tǒng)操作來影響它;或者單個用戶資源可由系統(tǒng)管理員進行創(chuàng)建、修改、刪除。
[0042]設計URI,即作用域信息,采用路徑變量表達層次結構的方式組織作用域信息,設基地址{base}為http://localhost:8001/,則用戶認證模塊的URI設計可以參照具體案例如下:
[0043](I)獲取驗證碼:{base}/auth/pre_login
[0044](2)用戶登陸:{base}/auth/login
[0045](3)檢查登陸:{base}/auth/checL_login
[0046](4)退出系統(tǒng):{base}/auth/log_out
[0047](5)設置新密碼:{base}/auth/forget_password
[0048]以auth目錄標識所有關于用戶認證請求的入口,追加不同功能的標識目錄例如pre_login為申請驗證碼,login為用戶登陸等,將對用戶的認證操作信息封裝在URI中,以路徑標識用戶登陸認證的不同操作請求。
[0049]具體的認證步驟請參考附圖2,認證步驟為:1、進入登錄界面;2、輸入用戶名、密碼以及驗證碼;3、判斷輸入是否為空;4、否,則進入判斷輸入驗證碼是否正確;5、正確,則進入判斷用戶密碼是否正確;6、正確,則顯示合法用戶相應權限;7、進入系統(tǒng);
[0050]用戶認證模塊主要是核對用戶的基本信息,通過驗證碼的輸入大量重復請求和暴力訪問等情況,為成功登陸的用戶分配token,以便于對用戶后期操作進行權限判斷。
[0051]文件認證模塊:家庭數(shù)據(jù)中心最核心的資源就是文件,每個用戶或者用戶組都可以在云盤上上傳和共享資源。對文件的增刪改查若不進行認證操作,很可能導致文件的物理層丟失和一致性受損。因此文件認證模塊也是本系統(tǒng)一個不可獲取的重要部分。
[0052]文件認證模塊的實現(xiàn)步驟為:
[0053]其中規(guī)劃數(shù)據(jù)集,文件權限認證模塊的數(shù)據(jù)集主要包括,文件名、文件ID、文件父節(jié)點ID、文件路徑;劃分資源,文件權限管理表是一次性資源,即只能獲取該資源,不能修改和刪除,若要對文件進行刪除、共享只有通過權限管理認證后才能執(zhí)行;設計URI,設基地址{base}為http://localhost:8001/,則文件認證模塊的URI設計如下:
[0054](I)共享文件:{base}/share/share_files
[0055](2)取消文件共享:{base}/share/cancel_share
[0056](3)取消文件共享:{base}/share/update_idcode
[0057](4)下載共享文件:{base}/share/public
[0058](5)下載文件:{base}/share/downloadFile
[0059](6)檢查文件類型:{base}/share/checkType
[0060](7)批量下載文件:{base}/share/package_download
[0061]以share目錄標識所有關于文件共享認證請求的入口,追加不同功能的標識目錄例如share_files表示共享文件,cancel_share表示取消共享,public表示公開共享文件等,將對文件的共享認證操作信息封裝在URI中,以不同路徑標識文件共享的不同操作請求。
[0062]文件認證模塊需要核實用戶的對文件操作的權限,并通過設定文件的共享密碼等方式保證對文件進行保護,除此以外由于文件的下載訪問并發(fā)量不大,可以將文件的基本信息同用戶的基本信息一樣存儲在MySQL數(shù)據(jù)庫中。
[0063]API認證模塊認證步驟為:每一個前臺發(fā)送接口調用命令,都需要核實該用戶對此API的調用權限,通過判定認證緩存數(shù)據(jù)庫中的用戶登陸信息(userid和登陸時分發(fā)給用戶的token)是否匹配為依據(jù);
[0064]其中所述API認證模塊的認證方法主要包括以下兩種實現(xiàn)方式:1、首先通過調用isValidateUser接口來認證用戶是否合法,依據(jù)用戶ID,用戶登陸時系統(tǒng)分配給用戶的令牌和IP地址與緩存數(shù)據(jù)庫的用戶登陸信息進行匹配,若判定為合法用戶則返回True作為標識符號,非法用戶返回False標示符;2、其次通過調用getlpAddr接口來獲取請求IP,即通過客戶端發(fā)送的請求request來調用接口請求,最后返回請求的Ip地址,以返回服務器應答。
[0065]數(shù)據(jù)認證操作模塊的實現(xiàn)過程如下:
[0066]1、實現(xiàn)通過需要獲取編碼id的用戶email的值,用戶email的哈希字符串及設定的過期時間,為用戶分配ID。
[0067]2、實現(xiàn)通過用戶的email的值獲取已分配的用戶的ID。
[0068]3、實現(xiàn)通過用戶的編碼ID和IP地址組合為用戶分配令牌號Token。
[0069]4、實現(xiàn)通過用戶的編碼ID和IP地址獲取已分配的用戶的令牌號。
[0070]5、實現(xiàn)通過用戶的編碼ID和IP組合與用戶的Token進行匹配,判斷是否為認證用戶。
[0071]6、實現(xiàn)緩存數(shù)據(jù)庫中的用戶ID和IP的組合KEY與用戶Token的增刪改接口。
[0072]后臺系統(tǒng)的服務應用與數(shù)據(jù)庫進行數(shù)據(jù)的增刪改查就由數(shù)據(jù)認證操作模塊來具體實現(xiàn),包括對數(shù)據(jù)原表建模型、對MySQL數(shù)據(jù)庫的讀寫和對Redis數(shù)據(jù)庫進行讀寫操作。
[0073]本發(fā)明的框架采用RESTfuL Web模式,無狀態(tài)請求可以由任何可用服務器回答,特別適用于底層為分布式文件系統(tǒng)的云計算環(huán)境。同時整個云盤管理框架將用戶、文件資源按照Reslful技術要求對認證服務的架構、資源模型、認證流程、表示層進行了具體的設計和實現(xiàn),實現(xiàn)了快捷訪問,系統(tǒng)使用HTTP協(xié)議對外暴露服務,客戶只需通過瀏覽器即可以正常訪問。此外,通過虛擬化、
[0074]分布式結構將服務器資源進行最大化的處理優(yōu)化,保證提供高效的1和高可靠的服務,具有良好的擴展性和可靠性。
[0075]以上所述,僅是本發(fā)明較佳實施例而已,并非對本發(fā)明作任何形式上的限制,雖然本發(fā)明以較佳實施例揭露如上,然而并非用以限定本發(fā)明,任何熟悉本專業(yè)的技術人員,在不脫離本發(fā)明技術方案范圍內,當可利用上述揭示的技術內容做出些許變更或修飾為等同變化的等效實施例,但凡是未脫離本發(fā)明技術方案內容,依據(jù)本發(fā)明技術是指對以上實施例所作的任何簡單修改、等同變化與修飾,均屬于本發(fā)明技術方案的范圍內。
【權利要求】
1.一種云盤權限管理方法,其特征在于,該云盤權限管理方法對用戶的登入登出進行認證,對文件下載、共享等進行認證,考察是否有權限進行此項操作,該管理方法設置了五個模塊,該五個模塊為用戶認證模塊、文件認證模塊、API認證模塊、數(shù)據(jù)認證操作模塊和底層的認證緩存數(shù)據(jù)庫;認證緩存數(shù)據(jù)庫根據(jù)不同任務的認證操作的頻繁性,采用MySQL存儲用戶認證模塊時所需的驗證碼、用戶編碼ID信息,利用Redis存儲API認證模塊所需的關鍵字,即用戶編碼ID和IP組合,以支持快速查詢操作; 其中用戶認證模塊認證步驟為:1、進入登錄界面;2、輸入用戶名、密碼以及驗證碼;3、判斷輸入是否為空;4、否,則進入判斷輸入驗證碼是否正確;5、正確,則進入判斷用戶密碼是否正確;6、正確,則顯示合法用戶相應權限;7、進入系統(tǒng); 其中文件認證模塊認證步驟為:規(guī)劃數(shù)據(jù)集;劃分資源;設計URI ; 其中API認證模塊認證步驟為:每一個前臺發(fā)送接口調用命令,都需要核實該用戶對此API的調用權限,通過判定認證緩存數(shù)據(jù)庫中的用戶登陸信息(userid和登陸時分發(fā)給用戶的token)是否匹配為依據(jù); 其中數(shù)據(jù)認證操作模塊的實現(xiàn)過程如下:1、實現(xiàn)通過需要獲取編碼id的用戶email的值,用戶email的哈希字符串及設定的過期時間,為用戶分配ID ;2、實現(xiàn)通過用戶的email的值獲取已分配的用戶的ID ;3、實現(xiàn)通過用戶的編碼ID和IP地址組合為用戶分配令牌號Token ;4、實現(xiàn)通過用戶的編碼ID和IP地址獲取已分配的用戶的令牌號;5、實現(xiàn)通過用戶的編碼ID和IP組合與用戶的Token進行匹配,判斷是否為認證用戶;6、實現(xiàn)緩存數(shù)據(jù)庫中的用戶ID和IP的組合KEY與用戶Token的增刪改接口。
2.根據(jù)權利要求1所述云盤權限管理方法,其特征在于,其中所述API認證模塊的認證方法主要包括以下兩種實現(xiàn)方式:1、首先通過調用isValidateUser接口來認證用戶是否合法,依據(jù)用戶ID,用戶登陸時系統(tǒng)分配給用戶的令牌和IP地址與緩存數(shù)據(jù)庫的用戶登陸信息進行匹配,若判定為合法用戶則返回True作為標識符號,非法用戶返回False標示符;2、其次通過調用getlpAddr接口來獲取請求IP,即通過客戶端發(fā)送的請求request來調用接口請求,最后返回請求的Ip地址,以返回服務器應答。
3.根據(jù)權利要求1所述云盤權限管理方法,其特征在于,該文件認證模塊中中的規(guī)劃數(shù)據(jù)集:文件權限認證模塊的數(shù)據(jù)集主要包括,文件名、文件ID、文件父節(jié)點ID、文件路徑;其中的劃分資源:文件權限管理表是一次性資源,即只能獲取該資源,不能修改和刪除,若要對文件進行刪除、共享只有通過權限管理認證后才能執(zhí)行;其中的設計UR1:設基地址{base}為http://localhost:8001/,則文件認證模塊的URI設計如下:
(1)共享文件:{base}/share/share_files (2)取消文件共享:{base}/share/cancel_share (3)取消文件共享:{base}/share/update_idcode (4)下載共享文件:{base}/share/public (5)下載文件:{base}/share/downloadFile (6)檢查文件類型:{base}/share/checkType (7)批量下載文件:{base}/share/package_download。
【文檔編號】H04L29/08GK104283875SQ201410508852
【公開日】2015年1月14日 申請日期:2014年9月28日 優(yōu)先權日:2014年9月28日
【發(fā)明者】須成忠, 沈慧 申請人:深圳市中科無軟件有限公司