專利名稱:一種對第三方資源的訪問控制方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機(jī)技術(shù)領(lǐng)域,尤其涉及ー種對第三方資源的訪問控制方法及系統(tǒng)。
背景技術(shù):
在互聯(lián)網(wǎng)時代,某些平臺會將自身的服務(wù)封裝為接ロ,供第三方開發(fā)者使用。這些平臺我們一般稱為開放平臺,或者資源服務(wù)器,基于資源服務(wù)器的開放平臺是近期互聯(lián)網(wǎng)發(fā)展比較快的ー個方向?;ヂ?lián)網(wǎng)公司通過資源服務(wù)器提供可以調(diào)用該公司服務(wù)的接ロ,而第三方通過調(diào)用資源服務(wù)器提供的接ロ,為該公司用戶提供ー些額外的應(yīng)用/應(yīng)用程序服務(wù)(諸如充值等服務(wù)),從而用戶、第三方、資源服務(wù)器公司達(dá)到共贏。資源服務(wù)器的產(chǎn)生和發(fā)展,也帶來ー些問題,例如,資源服務(wù)器如何認(rèn)證第三方身份,如何控制第三方訪問API (即Application Program Interface,應(yīng)用程序接ロ)的權(quán)限。由此,OAuth認(rèn)證授權(quán)協(xié)議應(yīng)運而生,可以在Web或桌面程序中使用簡單而標(biāo)準(zhǔn)的,安全的API認(rèn)證。到目前為止,OAuth協(xié)議有兩個版本被大家廣泛使用,分別為OAuthl. Oa與 0Auth2. 0,但現(xiàn)有協(xié)議的流程必須通過authorization code方式獲得access token (訪問令牌),該方法包含兩步,首先獲得code,而后由第三方應(yīng)用服務(wù)端https請求獲取access token接ロ,獲得access token。該方法流程長,且第三方需要請求一次服務(wù)器?,F(xiàn)有流程中,access token有效期為I個小時。第三方應(yīng)用附帶access token 訪問API時,如果access token此時過期,應(yīng)用方先接收到錯誤異常碼;根據(jù)錯誤異常碼判斷是否為access token過期;使用refresh token刷取新access token ;使用新access token訪問API。以上access token過期流程,處理流程復(fù)雜,多數(shù)應(yīng)用方在接入資源服務(wù)器吋,都有大量技術(shù)問題提出。現(xiàn)有流程中,涉及到了 0Auth2. 0的兩套獲取access token的方法,這要求第三方對OAuth協(xié)議有比較深入的了解;在申請授權(quán)以及使用refresh token刷新access token 流程中,每次請求需要輸出多個參數(shù)。此外,目前還存在OpenID認(rèn)證方案,但該方案雖然簡單高效,但是其缺少作用域控制設(shè)計。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題在于提供ー種對第三方資源的訪問控制方法及系統(tǒng), 以克服現(xiàn)有流程復(fù)雜,門檻過高的問題。為解決上述技術(shù)問題,本發(fā)明提供ー種對第三方資源的訪問控制方法,用于資源服務(wù)器、App應(yīng)用與用戶端之間的認(rèn)證過程,包括接收用戶瀏覽器端對所述App應(yīng)用的登錄請求,若該用戶端尚未對該App應(yīng)用授權(quán),根據(jù)預(yù)設(shè)的數(shù)據(jù)庫服務(wù)器的授權(quán)接ロ地址,向用戶展示授權(quán)頁,根據(jù)登錄的第一授權(quán)訪問信息向用戶提供授權(quán)訪問;根據(jù)第二授權(quán)訪問信息將所述授權(quán)訪問轉(zhuǎn)向App應(yīng)用服務(wù)器。其中,根據(jù)登錄的第一授權(quán)訪問信息向用戶提供授權(quán)訪問;包括所述資源服務(wù)器中的App應(yīng)用在接收到用戶瀏覽器端對所述App應(yīng)用的登錄請求時,根據(jù)發(fā)起該登錄請求的用戶端在該資源服務(wù)器注冊的User_ID,如果判斷到該用戶端尚未對該App應(yīng)用授權(quán), 則跳轉(zhuǎn)到預(yù)設(shè)的該資源服務(wù)器的授權(quán)接ロ地址,并接收該用戶端上傳的所述第一授權(quán)訪問信息中的Client_ID和Scope參數(shù),向用戶展示授權(quán)頁,接受用戶的授權(quán),其中所述Scope 參數(shù)代表對所述資源服務(wù)器內(nèi)的應(yīng)用程序接ロ API的作用域。其中,根據(jù)第二授權(quán)訪問信息將所述授權(quán)訪問轉(zhuǎn)向App應(yīng)用服務(wù)器,包括所述資源服務(wù)器在該用戶端對該App應(yīng)用授權(quán)后,生成與所述Client_ID及User_ID相對應(yīng)的Session_Key,并向該用戶端返回所述第二授權(quán)訪問信息中的該App應(yīng)用的回調(diào)地址、 SessionJfey和User_ID,使該用戶端瀏覽器接收到所述參數(shù)后訪問該回調(diào)地址指向的該 App應(yīng)用的服務(wù)端網(wǎng)絡(luò)地址,并向該網(wǎng)絡(luò)地址傳遞所述Session_Key和User_ID,其中所述 Session_Key作為訪問API的令牌,具有一短生命期及一永久過期時間戳Expire。本發(fā)明進(jìn)而還提供ー種對第三方資源的訪問控制系統(tǒng),用于資源服務(wù)器、App應(yīng)用與用戶端之間的認(rèn)證,包括授權(quán)模塊,接收用戶瀏覽器端對所述App應(yīng)用的登錄請求,若該用戶端尚未對該 App應(yīng)用授權(quán),根據(jù)預(yù)設(shè)的數(shù)據(jù)庫服務(wù)器的授權(quán)接ロ地址,向用戶展示授權(quán)頁,根據(jù)登錄的第一授權(quán)訪問信息向用戶提供授權(quán)訪問;令牌生成模塊,根據(jù)第二授權(quán)訪問信息將所述授權(quán)訪問轉(zhuǎn)向App應(yīng)用服務(wù)器。其中,所述授權(quán)模塊,根據(jù)登錄的第一授權(quán)訪問信息向用戶提供授權(quán)訪問時,進(jìn)ー 步用于在所述資源服務(wù)器中的App應(yīng)用在接收到用戶瀏覽器端對所述App應(yīng)用的登錄請求時,根據(jù)發(fā)起該登錄請求的用戶端在該資源服務(wù)器注冊的User_ID,如果判斷到該用戶端尚未對該App應(yīng)用授權(quán),則跳轉(zhuǎn)到預(yù)設(shè)的該資源服務(wù)器的授權(quán)接ロ地址,并接收該用戶端上傳的所述第一授權(quán)訪問信息中的Client_ID和Scope參數(shù),向用戶展示授權(quán)頁,接受用戶的授權(quán),其中所述Scope參數(shù)代表對所述資源服務(wù)器內(nèi)的應(yīng)用程序接ロ API的作用域。所述令牌生成模塊,根據(jù)第二授權(quán)訪問信息將所述授權(quán)訪問轉(zhuǎn)向App應(yīng)用服務(wù)器時,進(jìn)ー步用于在所述資源服務(wù)器在該用戶端對該App應(yīng)用授權(quán)后,生成與所述Client_ID 及User_ID相對應(yīng)的Session_Key,并向該用戶端返回所述第二授權(quán)訪問信息中的該App 應(yīng)用的回調(diào)地址、SessionJfey和User_ID,使該用戶端瀏覽器接收到所述參數(shù)后訪問該回調(diào)地址指向的該App應(yīng)用的服務(wù)端網(wǎng)絡(luò)地址,井向該網(wǎng)絡(luò)地址傳遞所述SessionJfey和 User_ID,其中所述Session_Key作為訪問API的令牌,具有一短生命期及一永久過期時間戮 Expire。應(yīng)用本發(fā)明的實施例,利用了 OpenID的簡單性、有效性和開放性,并吸取了 0Auth2. 0中的作用域控制的特點。本發(fā)明降低了第三方應(yīng)用接入資源服務(wù)器的難度。本發(fā)明提供了一套高效、安全的認(rèn)證授權(quán)協(xié)議,從而用戶可以安全的使用第三方應(yīng)用,并保證不會泄漏用戶名、密碼等重要信息,保證用戶既體驗到第三方應(yīng)用服務(wù),又不會有安全方面的隱患。
為了更清楚地說明本發(fā)明實施例的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖I為根據(jù)本發(fā)明的實施例所述對第三方資源的訪問控制方法流程圖。圖2為根據(jù)本發(fā)明實施例所述的對第三方資源的訪問控制系統(tǒng)示意圖;圖3為根據(jù)本發(fā)明實施例所述的對第三方資源的訪問控制系統(tǒng)又一整體示意圖。
具體實施例方式下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。在本實施例中,涉及的開放平臺或資源服務(wù)器可以包括=Federo環(huán)境,Ngnix服務(wù)器,Mysql, redis數(shù)據(jù)庫服務(wù)器等。本發(fā)明實施例提供的ー種對第三方資源的訪問控制方法,可首先包括一授權(quán)流程,包括接收用戶瀏覽器端對所述App應(yīng)用的登錄請求,若該用戶端尚未對該App應(yīng)用授權(quán),根據(jù)預(yù)設(shè)的數(shù)據(jù)庫服務(wù)器的授權(quán)接ロ地址,向用戶展示授權(quán)頁,根據(jù)登錄的第一授權(quán)訪問信息向用戶提供授權(quán)訪問;根據(jù)第二授權(quán)訪問信息將所述授權(quán)訪問轉(zhuǎn)向App應(yīng)用服務(wù)器。其中,根據(jù)登錄的第一授權(quán)訪問信息向用戶提供授權(quán)訪問,具體包括所述資源服務(wù)器中的App應(yīng)用在接收到用戶瀏覽器端對所述App應(yīng)用的登錄請求時,根據(jù)發(fā)起該登錄請求的用戶端在該資源服務(wù)器注冊的User_ID,如果判斷到該用戶端尚未對該App應(yīng)用授權(quán),則跳轉(zhuǎn)到預(yù)設(shè)的該資源服務(wù)器的授權(quán)接ロ地址,并接收該用戶端上傳的所述第一授權(quán)訪問信息中的Client_ID和Scope參數(shù),向用戶展示授權(quán)頁,接受用戶的授權(quán),其中所述 Scope參數(shù)代表對所述資源服務(wù)器內(nèi)的應(yīng)用程序接ロ API的作用域;其中,根據(jù)第二授權(quán)訪問信息將所述授權(quán)訪問轉(zhuǎn)向App應(yīng)用服務(wù)器,具體包括所述資源服務(wù)器在該用戶端對該App應(yīng)用授權(quán)后,生成與所述Client_ID及User_ID相對應(yīng)的Session_Key,并向該用戶端返回所述第二授權(quán)訪問信息中的該App應(yīng)用的回調(diào)地址、 SessionJfey和User_ID,使該用戶端瀏覽器接收到所述參數(shù)后訪問該回調(diào)地址指向的該 App應(yīng)用的服務(wù)端網(wǎng)絡(luò)地址,并向該網(wǎng)絡(luò)地址傳遞所述Session_Key和User_ID,其中所述 Session_Key作為訪問API的令牌,具有一短生命期及一永久過期時間戳Expire。還可包括一驗證流程,具體包括所述資源服務(wù)器在接收到該App應(yīng)用對應(yīng)用程序接ロ API的調(diào)用請求時,根據(jù)該 App應(yīng)用當(dāng)前的Session_Key的短生命期及一永久過期時間戳,驗證該Session_Key是否有效,如果有效則允許該App應(yīng)用對屬于其Scope參數(shù)作用域內(nèi)的API的調(diào)用。而在所述接受用戶授權(quán)之前,還可以進(jìn)ー步包括App應(yīng)用的注冊申請流程,具體包括所述資源服務(wù)器在接收到App應(yīng)用的注冊申請時,根據(jù)該App應(yīng)用的請求,獲得該App應(yīng)用的服務(wù)端網(wǎng)絡(luò)地址作為回調(diào)地址,并在注冊成功后為該App應(yīng)用分配AppKey和 AppSecret ;并根據(jù)所述資源服務(wù)器開放給該App應(yīng)用的權(quán)限及該App應(yīng)用在該權(quán)限內(nèi)對不同權(quán)項的選擇,確定該App應(yīng)用的Scope參數(shù);所述資源服務(wù)器在接收到用戶瀏覽器端或平臺內(nèi)其他應(yīng)用程序?qū)λ鯝pp應(yīng)用的下載請求時,如果該App應(yīng)用是客戶端應(yīng)用,則將該App應(yīng)用的Client_ID和Scope參數(shù)隨該App應(yīng)用的客戶端程序一同下載,其中所述Client_ID為該App應(yīng)用在注冊時被分配的 AppKey。此外,還可以包括一續(xù)期流程,具體包括所述資源服務(wù)器提供一續(xù)期接ロ,接受所述App應(yīng)用服務(wù)端的續(xù)期請求,根據(jù)該 App應(yīng)用服務(wù)端傳送的Client_ID、Client_Secret及Session_Key,確定與該App應(yīng)用的 Session_Key對應(yīng)的User_ID,并驗證該Session_Key的永久過期時間戳Expire,如果尚未超過Expire,貝U對該Session_Key的短生命期續(xù)期,并返回User_ID和Expire參數(shù),其中 Client_ID與Client_Secret為該App應(yīng)用在注冊■時被分配的AppKey與AppSecret。上述各流程可單獨應(yīng)用也可組合應(yīng)用,提供一第三方應(yīng)用的整體接入流程,如圖I 所示,可組合應(yīng)用包括如下步驟步驟101 :所述資源服務(wù)器在接收到App應(yīng)用的注冊申請時,根據(jù)該App應(yīng)用的請求,獲得該App應(yīng)用的服務(wù)端網(wǎng)絡(luò)地址作為回調(diào)地址,并在注冊成功后分配給該App應(yīng)用ー 個AppKey和ー個AppSecret參數(shù);并根據(jù)所述資源服務(wù)器開放給該App應(yīng)用的權(quán)限及該 App應(yīng)用在該權(quán)限內(nèi)對不同權(quán)項的選擇,確定該App應(yīng)用的Scope參數(shù),所述Scope參數(shù)代表對所述資源服務(wù)器內(nèi)的應(yīng)用程序接ロ API的作用域;步驟102 :所述資源服務(wù)器在接收到用戶瀏覽器端或平臺內(nèi)其他應(yīng)用程序?qū)λ?App應(yīng)用的下載請求時,如果該App應(yīng)用是客戶端應(yīng)用,則將該App應(yīng)用的Client_ID和 Scope參數(shù)隨該App應(yīng)用的客戶端程序一同下載,其中所述Client_ID參數(shù)為該App應(yīng)用在注冊■時被分配的AppKey參數(shù);步驟103 :所述資源服務(wù)器中的App應(yīng)用在接收到用戶瀏覽器端對所述App應(yīng)用的登錄請求吋,根據(jù)發(fā)起該登錄請求的用戶端在該資源服務(wù)器注冊的User_ID參數(shù),如果判斷到該用戶端尚未對該App應(yīng)用授權(quán),則跳轉(zhuǎn)到預(yù)設(shè)的該資源服務(wù)器的授權(quán)接ロ地址, 并接收該用戶端上傳的所述Client_ID和Scope參數(shù),向用戶展示授權(quán)頁,接受用戶的授權(quán);步驟104 :所述資源服務(wù)器在該用戶端對該App應(yīng)用授權(quán)后,生成ー個與所述 Client_ID及User_ID參數(shù)相對應(yīng)的Session_Key參數(shù),并向該用戶端返回該App應(yīng)用的回調(diào)地址、SessionJfey和User_ID參數(shù),使該用戶端瀏覽器接收到所述參數(shù)后訪問該回調(diào)地址指向的該App應(yīng)用的服務(wù)端網(wǎng)絡(luò)地址,并向該網(wǎng)絡(luò)地址傳遞所述Session_Key和User_ ID參數(shù),其中所述SessionJfey作為訪問API的令牌,具有一短生命期及一永久過期時間戳 Expire ;步驟105 :所述資源服務(wù)器在接收到該App應(yīng)用對應(yīng)用程序接ロ API的調(diào)用請求時,根據(jù)該App應(yīng)用當(dāng)前的Session_Key的短生命期及一永久過期時間戳,驗證該Session_Key是否有效,如果有效則允許該App應(yīng)用對屬于其Scope作用域內(nèi)的API的調(diào)用;步驟106 :所述資源服務(wù)器提供一續(xù)期接ロ,接受所述App應(yīng)用服務(wù)端的續(xù)期請求,根據(jù)該App應(yīng)用服務(wù)端傳送的Client_ID、Client_Secret及Session_Key參數(shù),確定與該App應(yīng)用的Session_Key對應(yīng)的User_ID參數(shù),并驗證該Session_Key的永久過期時間戳Expire,如果尚未超過Expire,則對該Session_Key的短生命期續(xù)期,并返回User_ID 和Expire參數(shù),其中Client_ID與Client_Secret參數(shù)為該App應(yīng)用在注冊■時被分配的 AppKey 與 AppSecret 參數(shù)。其中,所述App應(yīng)用服務(wù)端可以定期向所述資源服務(wù)器的續(xù)期接ロ發(fā)送續(xù)期請求,并根據(jù)所述續(xù)期接ロ返回的User_ID和Expire參數(shù),確定該User_ID對應(yīng)的Session_ Key的Expire是否到期,如果到期則停止所述續(xù)期請求的發(fā)送。所述驗證該Session_Key是否有效的步驟,可以包括在短生命期內(nèi),該Session_ Key—直有效;超過短生命期,Session_Key暫時失效;超過永久過期時間戳,則該Session_ Key永久失效;在永久過期時間戳內(nèi),Session_Key的短生命期經(jīng)該App應(yīng)用服務(wù)端的續(xù)期請求而被延長。所述Session_Key的短生命期可以經(jīng)該App應(yīng)用服務(wù)端的續(xù)期請求而被延長ー個短生命期。所述資源服務(wù)器在接收到用戶瀏覽器端或平臺內(nèi)其他應(yīng)用程序?qū)λ鯝pp應(yīng)用的下載請求時,如果該App應(yīng)用是web應(yīng)用,則下載該App應(yīng)用的網(wǎng)址入ロ,并將其Client_ ID和Scope參數(shù)存儲于該App應(yīng)用的服務(wù)器端。其中,有關(guān)的流程可分別具體描述如下。I、授權(quán)流程請求用戶瀏覽器請求授權(quán)接ロ地址,Client_ID, scope參數(shù)。請求參數(shù)
權(quán)利要求
1.ー種對第三方資源的訪問控制方法,用于資源服務(wù)器、App應(yīng)用與用戶端之間的認(rèn)證過程,其特征在于,包括接收用戶瀏覽器端對所述App應(yīng)用的登錄請求,若該用戶端尚未對該App應(yīng)用授權(quán),根據(jù)預(yù)設(shè)的數(shù)據(jù)庫服務(wù)器的授權(quán)接ロ地址,向用戶展示授權(quán)頁,根據(jù)登錄的第一授權(quán)訪問信息向用戶提供授權(quán)訪問;根據(jù)第二授權(quán)訪問信息將所述授權(quán)訪問轉(zhuǎn)向App應(yīng)用服務(wù)器。
2.如權(quán)利要求I所述的方法,其特征在于,根據(jù)登錄的第一授權(quán)訪問信息向用戶提供授權(quán)訪問;包括所述資源服務(wù)器中的App應(yīng)用在接收到用戶瀏覽器端對所述App應(yīng)用的登錄請求吋, 根據(jù)發(fā)起該登錄請求的用戶端在該資源服務(wù)器注冊的User_ID,如果判斷到該用戶端尚未對該App應(yīng)用授權(quán),則跳轉(zhuǎn)到預(yù)設(shè)的該資源服務(wù)器的授權(quán)接ロ地址,并接收該用戶端上傳的所述第一授權(quán)訪問信息中的Client_ID和Scope參數(shù),向用戶展示授權(quán)頁,接受用戶的授權(quán),其中所述Scope參數(shù)代表對所述資源服務(wù)器內(nèi)的應(yīng)用程序接ロ API的作用域。
3.如權(quán)利要求I所述的方法,其特征在于,根據(jù)第二授權(quán)訪問信息將所述授權(quán)訪問轉(zhuǎn)向App應(yīng)用服務(wù)器,包括所述資源服務(wù)器在該用戶端對該App應(yīng)用授權(quán)后,生成與所述Client_ID及User_ID 相對應(yīng)的Session_Key,并向該用戶端返回所述第二授權(quán)訪問信息中的該App應(yīng)用的回調(diào)地址、SessionJfey和User_ID,使該用戶端瀏覽器接收到所述參數(shù)后訪問該回調(diào)地址指向的該App應(yīng)用的服務(wù)端網(wǎng)絡(luò)地址,并向該網(wǎng)絡(luò)地址傳遞所述Session_Key和User_ID,其中所述Session_Key作為訪問API的令牌,具有一短生命期及一永久過期時間戳Expire。
4.如權(quán)利要求I所述的方法,其特征在干,進(jìn)ー步包括所述資源服務(wù)器在接收到該App應(yīng)用對應(yīng)用程序接ロ API的調(diào)用請求吋,根據(jù)該App 應(yīng)用當(dāng)前的Session_Key的短生命期及一永久過期時間戳,驗證該Session_Key是否有效, 如果有效則允許該App應(yīng)用對屬于其Scope參數(shù)作用域內(nèi)的API的調(diào)用。
5.如權(quán)利要求I所述的方法,其特征在于,在所述接受用戶授權(quán)之前,進(jìn)ー步包括所述資源服務(wù)器在接收到App應(yīng)用的注冊申請時,根據(jù)該App應(yīng)用的請求,獲得該 App應(yīng)用的服務(wù)端網(wǎng)絡(luò)地址作為回調(diào)地址,并在注冊成功后為該App應(yīng)用分配AppKey和 AppSecret;并根據(jù)所述資源服務(wù)器開放給該App應(yīng)用的權(quán)限及該App應(yīng)用在該權(quán)限內(nèi)對不同權(quán)項的選擇,確定該App應(yīng)用的Scope參數(shù);所述資源服務(wù)器在接收到用戶瀏覽器端或平臺內(nèi)其他應(yīng)用程序?qū)λ鯝pp應(yīng)用的下載請求時,如果該App應(yīng)用是客戶端應(yīng)用,則將該App應(yīng)用的Client_ID和Scope參數(shù)隨該App應(yīng)用的客戶端程序一同下載,其中所述Client_ID為該App應(yīng)用在注冊時被分配的 AppKey0
6.如權(quán)利要求I所述的方法,其特征在干,進(jìn)ー步包括所述資源服務(wù)器提供一續(xù)期接ロ,接受所述App應(yīng)用服務(wù)端的續(xù)期請求,根據(jù)該App 應(yīng)用服務(wù)端傳送的Client_ID、Client_Secret及Session_Key,確定與該App應(yīng)用的 Session_Key對應(yīng)的User_ID,并驗證該Session_Key的永久過期時間戳Expire,如果尚未超過Expire,則對該Session_Key的短生命期續(xù)期,并返回User_ID和Expire參數(shù),其中 Client_ID與Client_Secret為該App應(yīng)用在注冊■時被分配的AppKey與AppSecret。
7.如權(quán)利要求6所述的方法,其特征在干,進(jìn)ー步包括所述App應(yīng)用服務(wù)端定期向所述資源服務(wù)器的續(xù)期接ロ發(fā)送續(xù)期請求,并根據(jù)所述續(xù)期接ロ返回的User_ID和Expire, 確定該User_ID對應(yīng)的Session_Key的Expire是否到期,如果到期則停止所述續(xù)期請求的發(fā)送。
8.如權(quán)利要求4所述的方法,其特征在于,所述驗證該Session_Key是否有效的步驟, 包括在短生命期內(nèi),該Session_Key —直有效;超過短生命期,Session_Key暫時失效;超過永久過期時間戳,則該Session_Key永久失效;在永久過期時間戳內(nèi),Session_Key的短生命期經(jīng)該App應(yīng)用服務(wù)端的續(xù)期請求而被延長。
9.如權(quán)利要求8所述的方法,其特征在于,所述Session_Key的短生命期經(jīng)該App應(yīng)用服務(wù)端的續(xù)期請求而被延長ー個短生命期。
10.如權(quán)利要求5所述的方法,其特征在于,所述資源服務(wù)器在接收到用戶瀏覽器端或平臺內(nèi)其他應(yīng)用程序?qū)λ鯝pp應(yīng)用的下載請求時,如果該App應(yīng)用是web應(yīng)用,則下載該 App應(yīng)用的網(wǎng)址入口,并將其Client_ID和Scope參數(shù)存儲于該App應(yīng)用的服務(wù)器端。
11.ー種對第三方資源的訪問控制系統(tǒng),用于資源服務(wù)器、App應(yīng)用與用戶端之間的認(rèn)證,包括授權(quán)模塊,接收用戶瀏覽器端對所述App應(yīng)用的登錄請求,若該用戶端尚未對該App應(yīng)用授權(quán),根據(jù)預(yù)設(shè)的數(shù)據(jù)庫服務(wù)器的授權(quán)接ロ地址,向用戶展示授權(quán)頁,根據(jù)登錄的第一授權(quán)訪問信息向用戶提供授權(quán)訪問;令牌生成模塊,根據(jù)第二授權(quán)訪問信息將所述授權(quán)訪問轉(zhuǎn)向App應(yīng)用服務(wù)器。
12.如權(quán)利要求11所述的系統(tǒng),其特征在干,所述授權(quán)模塊,根據(jù)登錄的第一授權(quán)訪問信息向用戶提供授權(quán)訪問時,進(jìn)ー步用于在所述資源服務(wù)器中的App應(yīng)用在接收到用戶瀏覽器端對所述App應(yīng)用的登錄請求時,根據(jù)發(fā)起該登錄請求的用戶端在該資源服務(wù)器注冊的User_ID,如果判斷到該用戶端尚未對該 App應(yīng)用授權(quán),則跳轉(zhuǎn)到預(yù)設(shè)的該資源服務(wù)器的授權(quán)接ロ地址,并接收該用戶端上傳的所述第一授權(quán)訪問信息中的Client_ID和Scope參數(shù),向用戶展示授權(quán)頁,接受用戶的授權(quán),其中所述Scope參數(shù)代表對所述資源服務(wù)器內(nèi)的應(yīng)用程序接ロ API的作用域。
13.如權(quán)利要求12所述的系統(tǒng),其特征在干,所述令牌生成模塊,根據(jù)第二授權(quán)訪問信息將所述授權(quán)訪問轉(zhuǎn)向App應(yīng)用服務(wù)器吋, 進(jìn)ー步用于在所述資源服務(wù)器在該用戶端對該App應(yīng)用授權(quán)后,生成與所述Client_ID及 User_ID相對應(yīng)的Session_Key ,并向該用戶端返回所述第二授權(quán)訪問信息中的該App應(yīng)用的回調(diào)地址、SessionJfey和User_ID,使該用戶端瀏覽器接收到所述參數(shù)后訪問該回調(diào)地址指向的該App應(yīng)用的服務(wù)端網(wǎng)絡(luò)地址,并向該網(wǎng)絡(luò)地址傳遞所述Session_Key和User_ ID,其中所述SessionJfey作為訪問API的令牌,具有一短生命期及一永久過期時間戳 Expire。
14.如權(quán)利要求13所述的系統(tǒng),其特征在干,進(jìn)ー步包括調(diào)用驗證模塊,用于所述資源服務(wù)器在接收到該App應(yīng)用對應(yīng)用程序接ロ API的調(diào)用請求時,根據(jù)該App應(yīng)用當(dāng)前的Session_Key的短生命期及一永久過期時間戳,驗證該 SessionJfey是否有效,如果有效則允許該App應(yīng)用對屬于其Scope參數(shù)作用域內(nèi)的API的調(diào)用。
15.如權(quán)利要求13所述的系統(tǒng),其特征在干,進(jìn)ー步包括注冊模塊,用于在所述資源服務(wù)器在接收到App應(yīng)用的注冊申請時,根據(jù)該App應(yīng)用的請求,獲得該App應(yīng)用的服務(wù)端網(wǎng)絡(luò)地址作為回調(diào)地址,并在注冊成功后為該App應(yīng)用分配 AppKey和AppSecret ;并根據(jù)所述資源服務(wù)器開放給該App應(yīng)用的權(quán)限及該App應(yīng)用在該權(quán)限內(nèi)對不同權(quán)項的選擇,確定該App應(yīng)用的Scope參數(shù);下載模塊,用于所述資源服務(wù)器在接收到用戶瀏覽器端或平臺內(nèi)其他應(yīng)用程序?qū)λ?App應(yīng)用的下載請求時,如果該App應(yīng)用是客戶端應(yīng)用,則將該App應(yīng)用的Client_ID和 Scope參數(shù)隨該App應(yīng)用的客戶端程序一同下載,其中所述Client_ID為該App應(yīng)用在注塒時被分配的AppKey。
16.如權(quán)利要求13所述的系統(tǒng),其特征在干,進(jìn)ー步包括續(xù)期模塊,用于在所述資源服務(wù)器提供一續(xù)期接ロ,接受所述App應(yīng)用服務(wù)端的續(xù)期請求,根據(jù)該App應(yīng)用服務(wù)端傳送的Client_ID、Client_Secret及Session_Key,確定與該App應(yīng)用的Session_Key對應(yīng)的User_ID,并驗證該Session_Key的永久過期時間戳 Expire,如果尚未超過Expire,則對該Session_Key的短生命期續(xù)期,并返回User_ID和 Expire參數(shù),其中Client_ID與Client_Secret為該App應(yīng)用在注冊■時被分配的AppKey與 Appbecret0
17.如權(quán)利要求16所述的系統(tǒng),其特征在于,所述App應(yīng)用服務(wù)端定期向所述資源服務(wù)器的續(xù)期接ロ發(fā)送續(xù)期請求,并根據(jù)所述續(xù)期接ロ返回的User_ID和Expire,確定該User_ ID對應(yīng)的Session_Key的Expire是否到期,如果到期則停止所述續(xù)期請求的發(fā)送。
18.如權(quán)利要求14所述的系統(tǒng),其特征在于,在短生命期內(nèi),該Session_Key—直有效; 超過短生命期,Session_Key暫時失效;超過永久過期時間戳,則該Session_Key永久失效; 在永久過期時間戳內(nèi),Session_Key的短生命期經(jīng)該App應(yīng)用服務(wù)端的續(xù)期請求而被延長。
19.如權(quán)利要求18所述的系統(tǒng),其特征在于,所述Session_Key的短生命期經(jīng)該App應(yīng)用服務(wù)端的續(xù)期請求而被延長ー個短生命期。
20.如權(quán)利要求15所述的系統(tǒng),其特征在于,所述下載模塊,在所述資源服務(wù)器在接收到用戶瀏覽器端或平臺內(nèi)其他應(yīng)用程序?qū)λ鯝pp應(yīng)用的下載請求吋,如果該App應(yīng)用是 web應(yīng)用,則下載該App應(yīng)用的網(wǎng)址入ロ,并將其Client_ID和Scope參數(shù)存儲于該App應(yīng)用的服務(wù)器端。
全文摘要
本發(fā)明公開了一種對第三方資源的訪問控制方法及系統(tǒng),用于資源服務(wù)器、App應(yīng)用與用戶端之間的認(rèn)證過程,所述方法包括接收用戶瀏覽器端對所述App應(yīng)用的登錄請求,若該用戶端尚未對該App應(yīng)用授權(quán),根據(jù)預(yù)設(shè)的數(shù)據(jù)庫服務(wù)器的授權(quán)接口地址,向用戶展示授權(quán)頁,根據(jù)登錄的第一授權(quán)訪問信息向用戶提供授權(quán)訪問;根據(jù)第二授權(quán)訪問信息將所述授權(quán)訪問轉(zhuǎn)向App應(yīng)用服務(wù)器。本發(fā)明降低了第三方應(yīng)用接入資源服務(wù)器的難度。
文檔編號H04L29/06GK102611709SQ20121009370
公開日2012年7月25日 申請日期2012年3月31日 優(yōu)先權(quán)日2012年3月31日
發(fā)明者東瑋, 呂彥鵬, 袁家美, 韓三普 申請人:奇智軟件(北京)有限公司