用于控制資源訪問(wèn)的方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明的實(shí)施例總體上涉及認(rèn)證與授權(quán)的領(lǐng)域,更具體地,涉及用于控制資源訪問(wèn)的方法和裝置。
【背景技術(shù)】
[0002]針對(duì)資源訪問(wèn)的第三方認(rèn)證和授權(quán)是已知的。具體而言,當(dāng)用戶試圖使用一個(gè)客戶端應(yīng)用訪問(wèn)和使用特定的資源時(shí),可以允許用戶不將他/她的個(gè)人信息(例如,口令)提供給客戶端應(yīng)用,而是由專門的第三方負(fù)責(zé)認(rèn)證和授權(quán)。特別地,認(rèn)證和授權(quán)方與資源的提供方可以彼此獨(dú)立。
[0003]作為示例,OAuth是一種已知的支持第三方認(rèn)證和授權(quán)的架構(gòu)。在OAuth架構(gòu)下,當(dāng)用戶請(qǐng)求訪問(wèn)特定資源時(shí),由專門的授權(quán)服務(wù)器通過(guò)對(duì)用戶和客戶端應(yīng)用進(jìn)行身份認(rèn)證,來(lái)確定是否授權(quán)對(duì)所請(qǐng)求資源的訪問(wèn)。授權(quán)服務(wù)器獨(dú)立于提供資源的資源服務(wù)器。如果資源訪問(wèn)被授權(quán),則授權(quán)服務(wù)器可以向客戶端應(yīng)用提供相應(yīng)的訪問(wèn)令牌(access token)??蛻舳藨?yīng)用將訪問(wèn)令牌提供給資源服務(wù)器,以指示對(duì)資源的訪問(wèn)請(qǐng)求已被授權(quán)。資源服務(wù)器繼而向授權(quán)服務(wù)器驗(yàn)證訪問(wèn)令牌的有效性,并且在確認(rèn)訪問(wèn)令牌有效的情況下提供所請(qǐng)求的資源。
[0004]然而,在現(xiàn)有的第三方認(rèn)證和授權(quán)方案中,授權(quán)服務(wù)器對(duì)于資源訪問(wèn)的控制粒度不夠精細(xì),并且可控制的方面也是有限的。換言之,授權(quán)服務(wù)器通常只能允許或者拒絕對(duì)特定資源的訪問(wèn),無(wú)法對(duì)訪問(wèn)過(guò)程實(shí)現(xiàn)其他控制。這可能導(dǎo)致對(duì)資源的不當(dāng)使用、隱私泄露等各種問(wèn)題。
[0005]而且,在已知的方案中,認(rèn)證和授權(quán)方與資源的提供方之間是緊耦合的。換言之,二者必須嚴(yán)格按照事先確定的協(xié)議或規(guī)則配合操作,完成對(duì)用戶身份的認(rèn)證、客戶端應(yīng)用的認(rèn)證以及訪問(wèn)令牌的驗(yàn)證。這種緊耦合的機(jī)制導(dǎo)致認(rèn)證和授權(quán)的靈活性不足。例如,授權(quán)服務(wù)器無(wú)法針對(duì)不同的資源和/或不同的資源所有者而執(zhí)行具有針對(duì)性的認(rèn)證和授權(quán)過(guò)程。
[0006]綜合所述,本領(lǐng)域中需要一種更為有效地控制資源訪問(wèn)的解決方案。
【發(fā)明內(nèi)容】
[0007]為了解決上述以及其他潛在問(wèn)題,本發(fā)明提出了一種用于控制資源訪問(wèn)的技術(shù)方案。
[0008]在本發(fā)明的一個(gè)方面,提供一種用于控制資源訪問(wèn)的方法。所述方法包括:響應(yīng)于針對(duì)資源的訪問(wèn)的請(qǐng)求,利用第一設(shè)備確定是否授權(quán)對(duì)所述資源的所述訪問(wèn),所述資源由獨(dú)立于所述第一設(shè)備的第二設(shè)備提供;以及利用關(guān)于所述訪問(wèn)的訪問(wèn)約束來(lái)定制所述訪問(wèn)令牌,以用于控制對(duì)所述資源的所述訪問(wèn),所述訪問(wèn)令牌響應(yīng)于確定授權(quán)對(duì)所述資源的所述訪問(wèn)而被生成。
[0009]在本發(fā)明的另一方面,提供一種用于控制資源訪問(wèn)的裝置。所述裝置包括:認(rèn)證單元,被配置為響應(yīng)于針對(duì)資源的訪問(wèn)的請(qǐng)求,利用第一設(shè)備確定是否授權(quán)對(duì)所述資源的所述訪問(wèn),所述資源由獨(dú)立于所述第一設(shè)備的第二設(shè)備提供;以及令牌定制單元,被配置為利用關(guān)于所述訪問(wèn)的訪問(wèn)約束來(lái)定制所述訪問(wèn)令牌,以用于控制對(duì)所述資源的所述訪問(wèn),所述訪問(wèn)令牌響應(yīng)于確定授權(quán)對(duì)所述資源的所述訪問(wèn)而被生成。
[0010]通過(guò)下文描述將會(huì)理解,根據(jù)本發(fā)明的實(shí)施例,訪問(wèn)令牌不僅可被用來(lái)指示允許或者拒絕資源訪問(wèn)請(qǐng)求,而且還可以利用一個(gè)或多個(gè)訪問(wèn)約束而被定制。如下文所述,這樣的訪問(wèn)約束可以基于用戶和/或資源的特性等各種因素生成,并且可以被事先或者動(dòng)態(tài)地提供給認(rèn)證和授權(quán)方。以此方式,可以借助于訪問(wèn)令牌而實(shí)現(xiàn)對(duì)資源訪問(wèn)的更精細(xì)粒度和更多維度的控制。而且,在某些實(shí)施例中,還可以實(shí)現(xiàn)對(duì)用戶和/或客戶端應(yīng)用的定制認(rèn)證。這種自適應(yīng)的定制認(rèn)證有利于進(jìn)一步增強(qiáng)認(rèn)證和授權(quán)的靈活性。本發(fā)明的其他特征和優(yōu)點(diǎn)將通過(guò)下文描述而變得容易理解。
【附圖說(shuō)明】
[0011]通過(guò)結(jié)合附圖對(duì)本發(fā)明示例性實(shí)施方式進(jìn)行更詳細(xì)的描述,本發(fā)明的上述以及其它目的、特征和優(yōu)勢(shì)將變得更加明顯其中:
[0012]圖1示出了適于用來(lái)實(shí)現(xiàn)本發(fā)明實(shí)施例的示例性計(jì)算機(jī)系統(tǒng)/服務(wù)器的示意性框圖;
[0013]圖2示出了本發(fā)明的實(shí)施例可實(shí)現(xiàn)于其中的示例性系統(tǒng)的示意性框圖;
[0014]圖3示出了根據(jù)本發(fā)明實(shí)施例的用于控制資源訪問(wèn)的方法的示意性流程圖;
[0015]圖4示出了根據(jù)本發(fā)明實(shí)施例的用于供用戶指定訪問(wèn)要求的用戶界面的示意圖;
[0016]圖5示出了根據(jù)本發(fā)明實(shí)施例的用于使用訪問(wèn)令牌的方法的示意性流程圖;
[0017]圖6示出了根據(jù)本發(fā)明實(shí)施例的用于控制資源訪問(wèn)的方法在OAuth架構(gòu)中的實(shí)現(xiàn)的不意圖;以及
[0018]圖7示出了根據(jù)本發(fā)明實(shí)施例的用于控制資源訪問(wèn)的裝置的示意性框圖。
[0019]在附圖中,相同或相似的標(biāo)號(hào)被用來(lái)表示相同或相似的元素。
【具體實(shí)施方式】
[0020]下面將參照附圖更詳細(xì)地描述本公開的優(yōu)選實(shí)施方式。雖然附圖中顯示了本公開的優(yōu)選實(shí)施方式,然而應(yīng)該理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施方式所限制。相反,提供這些實(shí)施方式是為了使本公開更加透徹和完整,并且能夠?qū)⒈竟_的范圍完整地傳達(dá)給本領(lǐng)域的技術(shù)人員。
[0021]圖1示出了適于用來(lái)實(shí)現(xiàn)本發(fā)明實(shí)施方式的示例性計(jì)算機(jī)系統(tǒng)/服務(wù)器12的方框圖。圖1顯示的計(jì)算機(jī)系統(tǒng)/服務(wù)器12僅僅是一個(gè)示例,不應(yīng)對(duì)本發(fā)明實(shí)施例的功能和使用范圍帶來(lái)任何限制。
[0022]如圖1所示,計(jì)算機(jī)系統(tǒng)/服務(wù)器12以通用計(jì)算設(shè)備的形式表現(xiàn)。計(jì)算機(jī)系統(tǒng)/服務(wù)器12的組件可以包括但不限于:一個(gè)或者多個(gè)處理器或者處理單元16,系統(tǒng)存儲(chǔ)器28,連接不同系統(tǒng)組件(包括系統(tǒng)存儲(chǔ)器28和處理單元16)的總線18。
[0023]總線18表示幾類總線結(jié)構(gòu)中的一種或多種,包括存儲(chǔ)器總線或者存儲(chǔ)器控制器,外圍總線,圖形加速端口,處理器或者使用多種總線結(jié)構(gòu)中的任意總線結(jié)構(gòu)的局域總線。舉例來(lái)說(shuō),這些體系結(jié)構(gòu)包括但不限于工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA)總線,微通道體系結(jié)構(gòu)(MAC)總線,增強(qiáng)型ISA總線、視頻電子標(biāo)準(zhǔn)協(xié)會(huì)(VESA)局域總線以及外圍組件互連(PCI)總線。
[0024]計(jì)算機(jī)系統(tǒng)/服務(wù)器12典型地包括多種計(jì)算機(jī)系統(tǒng)可讀介質(zhì)。這些介質(zhì)可以是任何能夠被計(jì)算機(jī)系統(tǒng)/服務(wù)器12訪問(wèn)的可用介質(zhì),包括易失性和非易失性介質(zhì),可移動(dòng)的和不可移動(dòng)的介質(zhì)。
[0025]系統(tǒng)存儲(chǔ)器28可以包括易失性存儲(chǔ)器形式的計(jì)算機(jī)系統(tǒng)可讀介質(zhì),例如隨機(jī)存取存儲(chǔ)器(RAM) 30和/或高速緩存存儲(chǔ)器32。計(jì)算機(jī)系統(tǒng)/服務(wù)器12可以進(jìn)一步包括其它可移動(dòng)/不可移動(dòng)的、易失性/非易失性計(jì)算機(jī)系統(tǒng)存儲(chǔ)介質(zhì)。僅作為舉例,存儲(chǔ)系統(tǒng)34可以用于讀寫不可移動(dòng)的、非易失性磁介質(zhì)(圖1未顯示,通常稱為“硬盤驅(qū)動(dòng)器”)。盡管圖1中未示出,可以提供用于對(duì)可移動(dòng)非易失性磁盤(例如“軟盤”)讀寫的磁盤驅(qū)動(dòng)器,以及對(duì)可移動(dòng)非易失性光盤(例如⑶-ROM,DVD-ROM或者其它光介質(zhì))讀寫的光盤驅(qū)動(dòng)器。在這些情況下,每個(gè)驅(qū)動(dòng)器可以通過(guò)一個(gè)或者多個(gè)數(shù)據(jù)介質(zhì)接口與總線18相連。存儲(chǔ)器28可以包括至少一個(gè)程序產(chǎn)品,該程序產(chǎn)品具有一組(例如至少一個(gè))程序模塊,這些程序模塊被配置以執(zhí)行本發(fā)明各實(shí)施例的功能。
[0026]具有一組(至少一個(gè))程序模塊42的程序/實(shí)用工具40,可以存儲(chǔ)在例如存儲(chǔ)器28中,這樣的程序模塊42包括——但不限于——操作系統(tǒng)、一個(gè)或者多個(gè)應(yīng)用程序、其它程序模塊以及程序數(shù)據(jù),這些示例中的每一個(gè)或某種組合中可能包括網(wǎng)絡(luò)環(huán)境的實(shí)現(xiàn)。程序模塊42通常執(zhí)行本發(fā)明所描述的實(shí)施例中的功能和/或方法。
[0027]計(jì)算機(jī)系統(tǒng)/服務(wù)器12也可以與一個(gè)或多個(gè)外部設(shè)備14 (例如鍵盤、指向設(shè)備、顯示器24等)通信,還可與一個(gè)或者多個(gè)使得用戶能與該計(jì)算機(jī)系統(tǒng)/服務(wù)器12交互的設(shè)備通信,和/或與使得該計(jì)算機(jī)系統(tǒng)/服務(wù)器12能與一個(gè)或多個(gè)其它計(jì)算設(shè)備進(jìn)行通信的任何設(shè)備(例如網(wǎng)卡,調(diào)制解調(diào)器等等)通信。這種通信可以通過(guò)輸入/輸出(I/O)接口 22進(jìn)行。并且,計(jì)算機(jī)系統(tǒng)/服務(wù)器12還可以通過(guò)網(wǎng)絡(luò)適配器20與一個(gè)或者多個(gè)網(wǎng)絡(luò)(例如局域網(wǎng)(LAN),廣域網(wǎng)(WAN)和/或公共網(wǎng)絡(luò),例如因特網(wǎng))通信。如圖所示,網(wǎng)絡(luò)適配器20通過(guò)總線18與計(jì)算機(jī)系統(tǒng)/服務(wù)器12的其它模塊通信。應(yīng)當(dāng)明白,盡管圖中未示出,可以結(jié)合計(jì)算機(jī)系統(tǒng)/服務(wù)器12使用其它硬件和/或軟件模塊,包括但不限于:微代碼、設(shè)備驅(qū)動(dòng)器、冗余處理單元、外部磁盤驅(qū)動(dòng)陣列、RAID系統(tǒng)、磁帶驅(qū)動(dòng)器以及數(shù)據(jù)備份存儲(chǔ)系統(tǒng)等。
[0028]下面將詳細(xì)描述本