亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

基于http的認證的制作方法

文檔序號:7911339閱讀:223來源:國知局
專利名稱:基于http的認證的制作方法
技術領域
本發(fā)明一般涉及網(wǎng)絡技術,更具體而言,涉及使用HTTP來認證聯(lián)網(wǎng)環(huán)境中的請求。
背景技術
計算機網(wǎng)絡遭受各種安全違背。當用戶或計算機系統(tǒng)為了訪問它不被授權訪問的資源,或以別的方式避免被正確地與請求相關聯(lián)而虛假地標識其本身時,產生一種這樣的類型的違背。為有助于請求認證,發(fā)往提供資源或服務的某一方(下文稱為“依賴方”)的對服務的請求以這樣的一種方式來包括請求方的身份,以使得依賴方可以驗證該身份的真實性。請求認證是驗證請求的發(fā)送方的身份的過程。認證提供每一方的標識都是準確的某種級別的安全性。請求方的身份形成由依賴方作出的訪問控制決策的基礎。一種類型的請求認證包括使用用戶名和口令。一種更強的類型的認證涉及使用安全令牌。某些類型的安全令牌是由受信任的身份提供方所發(fā)出的。擁有安全令牌用于提供對于擁有方的身份證明。某些安全令牌嵌入了加密密鑰,以便實現(xiàn)更強的安全性。在一種類型的交互中,請求方從身份提供方獲取安全令牌。然后,請求方將安全令牌與服務請求一起呈現(xiàn)給提供資源或服務的某一方。資源提供方與身份提供方具有信任關系,該身份提供方充當安全令牌的真實性的保證。代表性狀態(tài)傳輸(REST)是一種用于諸如萬維網(wǎng)之類的分布式系統(tǒng)的軟件體系結構的樣式。REST —般是指通過HTTP傳輸域特定的數(shù)據(jù)而無需諸如SOAP之類的額外的消息傳遞層的接口。HTTP提供包括符合“賦有REST性質的”體系結構的諸如GET(獲得)、 POST (傳遞),UPDATE (更新)和DELETE (刪除)之類的方法的接口。REST體系結構的一個方面是對無狀態(tài)服務器的支持,其中,每一個消息都包括理解消息所需的信息,使得服務器不必記住消息之間的通信狀態(tài)。這有助于諸如服務器場中的服務器的縮放。在http://www. ietf. org/rfc/rfc2617. txt 處可用的 RFC 2617,描述了其中可以在HTTP頭部字段中傳遞用戶名和口令的BASIC (基本)認證方案。RFC將此方案描述為“不被視為安全的用戶認證方法,因為用戶名和口令以未加密的形式通過網(wǎng)絡傳遞?!?RFC還描述了 “摘要訪問認證”方案,其中,使用用戶名、口令、現(xiàn)時值、HTTP方法,以及被請求的URI 的散列。RFC聲明,摘要方案“……受許多已知限制的困擾”。

發(fā)明內容
提供本發(fā)明內容以便以簡化的形式介紹將在以下具體實施方式
中進一步描述的一些概念。本概述并不旨在標識所要求保護主題的關鍵特征或必要特征,也不旨在用于限制所要求保護主題的范圍。簡單來說,系統(tǒng)、方法以及組件操作以提供允許應用認證HTTP請求的HTTP消息認證框架。該框架利用HTTP棧實現(xiàn),向應用提供了一種實現(xiàn)各種請求認證方案的機制。一示例實施例包括帶有一組HTTP頭部以及相關聯(lián)的語義的協(xié)議。描述了生成和處理HTTP消息的方法,以及請求方和依賴方之間的交互的各種變體。在一示例實施例中,請求方從服務器接收包括具有認證說明的一個或多個HTTP 頭部的服務器消息。作為響應,請求方可以生成符合認證說明的請求消息。在一個實施例中,請求消息包括消息正文、安全令牌(ST)、指定安全令牌的位置的HTTP頭部。請求消息可包括HTTP頭部,該HTTP頭部包括消息的摘要。安全令牌可以被置于一個或多個HTTP頭部中或消息正文中。如果安全令牌被置于多個HTTP頭部中,則它可以跨多個頭部被分段。如果安全令牌被置于消息正文中,則它可以是整個正文,HTML表單字段或在XML元素中。在一個實施例中,摘要包括消息正文和至少一個HTTP頭部或其某些部分的加密表示。在一個實施例中,請求方基于安全令牌的大小來確定安全令牌的位置。如果它太長而難以容納在一個HTTP頭部中,則它可以跨多個頭部被分段。如果太長而難以容納在多個HTTP頭部中,則它可以被置于消息正文中。在一個實施例中,接收請求消息的服務器可以基于令牌位置頭部說明來提取安全令牌。安全令牌可以在一個HTTP頭部中,跨多個HTTP頭部被分段,或在消息正文中。在一個實施例中,服務器向請求方發(fā)送簽名說明,而請求方將符合簽名說明的數(shù)字簽名包括在安全頭部中。在一個實施例中,服務器用包括上下文令牌的消息對請求方作出響應。在隨后的請求中,請求方可在HTTP頭部中包括上下文令牌,代替包括安全令牌。為了實現(xiàn)前述及相關目的,在這里結合以下描述及附圖來描述系統(tǒng)的某些說明性方面。然而,這些方面僅指示了可采用本發(fā)明的原理的各種方法中的少數(shù)幾種,且本發(fā)明旨在包括所有這樣的方面及其等效方面。通過結合附圖考慮本發(fā)明的以下詳細描述,本發(fā)明的其它優(yōu)點以及新穎的特征將變得顯而易見。


參考以下附圖來描述本發(fā)明的非限制性且非窮盡性實施方式。在各附圖中,除非另外指明,否則在全部附圖中相同的附圖標記指代相同的部分。為了幫助理解本發(fā)明,將參考以下與附圖相關聯(lián)地閱讀的具體實施方式
,附圖中圖1是其中可以實施各實施例的示例環(huán)境的框圖;圖2是示出了可以用于實現(xiàn)依賴方的計算系統(tǒng)的示例實施例的框圖;圖3示出了其中可以實施各實施例的示例環(huán)境;圖4是示出了使用HTTP頭部來認證請求方的過程的示例實施例的流程圖;圖5是更詳細地示出了圖4的一些動作的流程圖;圖6是示出了根據(jù)一示例實施例的將安全令牌插入到HTTP消息中的過程的流程圖;圖7是示出了根據(jù)一示例實施例的從HTTP消息中提取安全令牌的過程的流程圖; 以及圖8是示出了一示例實施例中的生成HTTP消息的過程的流程圖。
具體實施方式
下文中將參考附圖來更全面地描述本發(fā)明的各示例實施方式,附圖構成實施方式的一部分且在其中作為示例示出了可在其中實踐本發(fā)明的各特定示例實施方式。然而,本發(fā)明可被實現(xiàn)為許多不同的形式并且不應被解釋為被限于此處描述的各實施方式;相反, 提供這些實施方式以使得本公開變得透徹和完整,并且將本發(fā)明的范圍完全傳達給本領域技術人員。特別地,本發(fā)明可被實現(xiàn)為方法或設備。因此,本發(fā)明可采用完全硬件實施方式、 完全軟件實施方式或者結合軟件和硬件方面實施方式的形式。因此,以下詳細描述并非是局限性的。貫穿說明書和權利要求書,下列術語采用此處顯式相關聯(lián)的含義,除非該上下文在其他地方另有清楚指示。如此處所使用的,短語“在一個實施方式中”盡管它可以但不一定指前一實施方式。此外,如此處所使用的,短語“在另一個實施方式中”盡管它可以但不一定指一不同的實施方式。因此,可以容易地組合本發(fā)明的各實施方式而不背離本發(fā)明的范圍或精神。類似地,如此處所使用的,短語“在一個實現(xiàn)中”盡管它可以但不一定指相同的實現(xiàn),并且可以組合各種實現(xiàn)的技術。另外,如此處所使用的,術語“或”是包括性“或”運算符,并且等價于術語“和/ 或”,除非上下文清楚地另外指明。術語“基于”并非窮盡性的并且允許基于未描述的其他因素,除非上下文清楚地另外指明。另外,在本說明書全文中,“一”、“一種”和“所述”的含義包括復數(shù)引用?!霸?.....中”的含義包括“在......中”和“在......上”。如此處所使用的,術語“認證”指的是確認事實或聲明在可以接受的肯定度內是真實的。認證用戶或用戶的身份適用于確認所聲明的用戶的身份是充分且準確的。認證來自用戶的請求可包括確認包括與請求一起包括的身份信息是準確的,請求是所標識的用戶始發(fā)的或其授權的,請求沒有被不適當?shù)匦薷?,或者請求中的其他信息是準確的。認證具有相關聯(lián)的肯定度,從而允許存在信息已經被認證但可能不準確的情況。此處所描述的組件可以從其上具有數(shù)據(jù)結構的各種計算機可讀介質來執(zhí)行。組件可通過本地或遠程過程諸如按照具有一或多個數(shù)據(jù)分組(例如,來自一個通過信號與本地系統(tǒng)、分布式系統(tǒng)中的另一組件交互或跨諸如因特網(wǎng)的網(wǎng)絡與其它系統(tǒng)交互的組件的數(shù)據(jù))的信號來通信。例如,根據(jù)本發(fā)明的各實施方式,軟件組件可被存儲在計算機可讀存儲介質上,包括但不限于專用集成電路(ASIC)、緊致盤(⑶)、數(shù)字多功能盤(DVD)、隨機存取存儲器(RAM)、只讀存儲器(ROM)、軟盤、硬盤、電可擦除可編程只讀存儲器(EEPROM)、閃存或記憶棒。如此處所用的術語“計算機可讀介質”既包括存儲介質又包括通信介質。通信介質一般用諸如載波或其他傳輸機制等已調制數(shù)據(jù)信號來體現(xiàn)計算機可讀指令、數(shù)據(jù)結構、 程序模塊或其他數(shù)據(jù),并且包括任何信息傳遞介質。作為示例而非限制,通信介質包括諸如有線網(wǎng)絡和直接線連接等有線介質,以及諸如聲學、無線電、紅外線和其他無線介質等無線介質。圖1是其中可以實施各實施例的環(huán)境100的框圖。圖1提供了對示例環(huán)境的基本理解,盡管可以使用許多配置,且許多細節(jié)未在圖1中示出。如圖1所示,示例環(huán)境100包括請求方102。請求方102可以是向遠程服務提供商請求資源或服務的客戶機計算設備、進程或任何組件。在示例實施例中,請求方102包括HTTP棧104。HTTP棧可以根據(jù)HTTP標準并以及此處所描述的至少一些機制來接收、處理、生成或發(fā)送超文本協(xié)議(HTTP)消息。
示例環(huán)境100包括依賴方106。依賴方106可以是計算設備、服務器或包括多個服務器的服務器場。圖2示出了依賴方106的示例實現(xiàn)。在所示示例實施例中,依賴方包括HTTP棧108。HTTP棧108執(zhí)行如對于HTTP棧 104所描述的動作,盡管HTTP棧108和HTTP堆棧104的實現(xiàn)可以不同,并且由各自所提供的功能也會不同。在一個實施例中,請求方102向依賴方106發(fā)送一個或多個請求。請求可包括某一類型的標識信息。請求可以是對資源或服務的請求。如此處所使用的,對服務的請求被視為對資源的請求。依賴方106可以處理該請求,并確定該請求是否包括充分地認證請求方102的請求或用戶的信息。信息可以采用特定的格式,并被稱為安全憑證。如果安全憑證沒有被包括或不充分,則依賴方106可以拒絕該請求并指示請求方102提供充分的安全憑證。此處更詳細地討論此過程。示例環(huán)境100包括身份提供方110。身份提供方可以是向請求方102發(fā)出安全憑證的網(wǎng)絡實體。安全憑證可以表示關于可以被依賴方106信任的請求方102的聲明。由此, 身份提供方110被視為是被依賴方106信任的一方。在一個實施例中,安全憑證包括安全令牌(ST),而身份提供方110包括提供安全令牌的安全令牌服務(STS)。一種類型的安全令牌包括表示關于諸如請求方102的用戶之類的實體的一個或多個聲明的集合的數(shù)據(jù)。聲明可以被視為與聲明方相關聯(lián)的信息是準確的斷言。這可包括, 例如,名稱、標識符、鍵、組成員、特權、能力等等。這種類型的安全令牌此處被稱為“直接安全令牌”。第二種類型的安全令牌包括對直接安全令牌的引用,該引用標識或允許對直接安全令牌的訪問。這種類型的對直接安全令牌的引用此處被稱為間接安全令牌。統(tǒng)一資源標識符(URI)是間接安全令牌的示例,如果它引用直接安全令牌的話。如此處所使用的,術語 “安全令牌”可以指直接安全令牌或間接安全令牌,除非上下文明確地指示一種特定類型。請求方102可以通過網(wǎng)絡120與依賴方106或身份提供方110進行通信。網(wǎng)絡120 可包括局域網(wǎng)、廣域網(wǎng)或其組合。在一個實施例中,網(wǎng)絡120包括因特網(wǎng),因特網(wǎng)是網(wǎng)絡的網(wǎng)絡。網(wǎng)絡120可包括有線通信機制、無線通信機制或其組合。請求方102、依賴方106或身份提供方110彼此之間或與其他計算設備之間的通信可以使用各種有線或無線通信協(xié)議中的一個或多個,如 IP、TCP/IP、UDP、HTTP、SSL、TLS, FTP、SMTP、WAP、藍牙或 WLAN。圖1只是合適的環(huán)境的示例,并不旨在就本發(fā)明的使用范圍或功能提出任何限制。由此,在不偏離本發(fā)明的范圍或精神的情況下,可以使用各種系統(tǒng)配置。例如,依賴方 106或身份提供方110的功能中的任何一個功能可以被合并到一個或多個計算設備中,以各種方式在多個計算設備之間分布或復制。類似地,可以以各種方式在一個或多個計算設備之間配置請求方102的功能。在一個實施例中,可以將依賴方106和身份提供方110的功能組合在一個或多個計算設備中。在一個實施例中,由一個或多個計算設備來實現(xiàn)請求方102、依賴方106以及身份提供方110中的每一個。計算設備可以是專用或通用計算設備。簡而言之,可以使用的計算設備的一個實施例包括一個或多個處理單元、存儲器、顯示器、鍵盤以及定點設備以及通信接口。一個或多個處理單元可包括一個或多個多核處理器。示例計算設備包括大型機、 服務器、刀片式服務器、個人計算機、便攜式計算機、通信設備、消費電子產品等等。計算設
8備可包括通用或專用的操作系統(tǒng)。由華盛頓州雷德蒙市微軟公司出品的Windows 操作系統(tǒng)系列是可以在開發(fā)系統(tǒng)的計算設備上執(zhí)行的操作系統(tǒng)的示例。圖2是示出了可以被用來實現(xiàn)依賴方106或其一些部分的計算系統(tǒng)200的示例實施例的框圖。在各實施例中,可以利用以各種方式配置的一個或多個服務器或其他計算設備來實現(xiàn)系統(tǒng)200。如圖所示,計算系統(tǒng)200包括執(zhí)行動作以執(zhí)行各種計算機程序的指令的一個或多個處理器202。在一種配置中,處理器202可包括一個或多個中央處理單元、一個或多個處理器核、ASIC或其他硬件處理組件和相關的程序邏輯。在所示出的實施例中,計算系統(tǒng)200 包括可以包括易失性或非易失性存儲器的存儲器204。計算系統(tǒng)200也可以包括執(zhí)行跨網(wǎng)絡將消息或信號發(fā)送到遠程設備或接收消息或信號的動作的網(wǎng)絡通信單元。在所示出的實施例中,計算系統(tǒng)200包括存儲在存儲器204內的HTTP棧206和一個或多個應用210。HTTP棧206可以是HTTP棧108(圖1)。在一個實施例中,HTTP棧206 包括執(zhí)行認證接收到的請求的動作的認證模塊208。在某些實施例中,HTTP棧206不包括認證模塊208。在一個實施例中,計算系統(tǒng)200包括應用210。應用210可以執(zhí)行各種服務,提供對一個或多個資源的訪問,或響應于請求而執(zhí)行其他動作。應用210的示例包括Web服務器、FTP服務器以及郵件服務器。應用210可包括應用認證模塊212。應用認證模塊212執(zhí)行認證接收到的請求的動作,盡管不一定與認證模塊208相同的動作。圖3示出了其中可以實施各實施例的示例環(huán)境300。環(huán)境300可以結合圖1的環(huán)境100或其變體而存在。如圖所示,環(huán)境300包括請求方102、依賴方106以及身份提供方 110。請求方102與依賴方106和身份提供方110中的每一個進行直接或間接通信。通信可以是直接的或通過諸如網(wǎng)絡120(圖1)之類的網(wǎng)絡。圖3中的箭頭表示在所示出的組件之間交換的消息。此外,在一個實施例中,消息的參考編號對應于附圖中從頂部到底部的方向的時間順序,盡管在各實施例中,順序不同。在一個實施例中,所示出的消息中的每一個都是HTTP消息,在下文中更詳細地描述其內容。結合圖4來討論圖3的消息。圖4是示出了使用HTTP頭部來認證請求方的過程 400的示例實施例的流程圖。過程400的一些動作由請求方102執(zhí)行(圖1),并在圖4的左列中在標題“請求方”下被表示。過程400的其他動作由依賴方106執(zhí)行,并在圖4的右列中在標題“依賴方”下被表示。過程400的一些動作涉及發(fā)送或接收圖3中所示出的消息。下面的討論引用了圖3的消息。過程400的所示出的部分可以在框402被發(fā)起,在這里,請求方102向依賴方106 發(fā)送請求消息(請求消息310)。在一個實施例中,請求消息310是對資源的請求,通過認證過程保護了對該資源的訪問。該過程可以從框402流向框404,在這里,依賴方106接收請求消息310。過程400可以從框404流向判斷框406,在這里,就請求是否被充分地認證作出確定。在一個實施例中,這包括確定請求是否包括有效并且充分的安全憑證。對充分性的確定可以基于依賴方106的配置。在一個實施例中,框406的確定包括確定請求是否包括安全令牌并遵循已配置的方案。確定還可基于被請求的資源的價值,請求方的位置或配置,一天中的時間,或其他因素。此處討論框406的動作的進一步的細節(jié)。
如果在判斷框406確定請求被充分地認證,則過程可以流向框408,在這里,依賴方106可以向請求方102發(fā)送響應消息320。在一些配置中,響應消息320可以指示成功的響應。它可包括資源,資源可用的指示,已經提供或將提供的服務的指示,有助于獲取資源的數(shù)據(jù),或根據(jù)請求的另一個響應。在一些配置中,響應消息320可以指示由于除認證以外的理由而被拒絕的請求。例如,請求可以被正常認證,但是,用戶可能不被授權訪問資源。 資源可以由于其他理由而不可用。過程可以從框408流向程序出口或返回到進行調用的程序。如果在判斷框406確定沒有與請求消息一起包括充分的安全憑證,則過程400可以流向框410,在這里,可以生成HTTP錯誤響應消息,并將其從依賴方106發(fā)送到請求方 102。在一個實施例中,HTTP錯誤響應消息是HTTP “未經授權”消息312。這可以是包括 "ffffff-Authenticate (WWW-真實),,響應頭部的HTTP 401錯誤消息。消息可包括指示所要求的安全憑證的說明的數(shù)據(jù),或當發(fā)送一個或多個安全憑證時要遵循的協(xié)議。協(xié)議被稱為 “方案”,在使用一個或多個HTTP頭部的方案的特定情況下,它被稱為“HTTP方案”。過程400可以從框410流向框412,在這里,請求方102接收“未經授權”消息312。 盡管在某些環(huán)境中請求方102可以擁有充分的安全憑證或能夠生成它們,在所示出的環(huán)境中,響應于接收到“未經授權”消息312,過程流向框414,在這里,請求方102可以試圖獲取充分的安全憑證,符合由依賴方106在“未經授權”消息312中所標識的方案。在一個實施例中,在框414,請求方102可以向諸如身份提供方110之類的受信任的身份提供方請求安全令牌。請求可以采用發(fā)送到身份提供方110的請求ST消息314的形式。請求ST消息 314可包括安全憑證或可以被用來認證請求方102的用戶的其他數(shù)據(jù)。在某些環(huán)境中,響應于接收到請求ST消息314,身份提供方110可以確定請求方 102沒有提供充分的標識數(shù)據(jù),或者以別的方式不被授權接收安全令牌。此動作沒有在圖4 中示出。示例過程400示出了其中身份提供方110向請求方102返回被請求的安全令牌的環(huán)境。如圖所示,過程400流向框416,在這里,請求方102接收包括安全令牌325的ST響應消息316。在某些實施例中,安全令牌包括一個或多個加密密鑰。承載密鑰的安全令牌的示例包括帶有會話密鑰的Kerberos v5權證和帶有密鑰持有人對象確認的SAML vl. 1或 v2. 0令牌。在一個實施例中,請求ST消息314和ST響應消息316符合此處所描述的至少一些消息協(xié)議。例如,請求方可以向ST請求消息314插入如此處所描述的令牌位置頭部和令牌頭部。消息還可以包括摘要頭部和數(shù)字簽名。此處提供這樣的消息的示例。響應于在框416接收到安全令牌,過程可以流向框418,在這里,請求方102可以生成請求消息318并將其發(fā)送到依賴方106。請求消息318可包括類似于請求消息310的請求的請求。然而,請求消息318可包括從身份提供方110接收到的安全令牌325。在一個實施例中,請求消息318類似于帶有額外的HTTP頭部的提供認證數(shù)據(jù)的請求消息310。該過程可以從框418流向框404,在這里,依賴方106接收請求消息318。在框404,響應于接收到請求消息318,依賴方106可以處理該消息,以確定請求是否包括充分的標識憑證并符合已配置的認證方案,如參考請求消息310所討論的。如果標識憑證被視為是不充分的,則過程可以流向框410,在這里,回復方可以發(fā)送另一個未經授權的消息312。如果在判斷框406確定安全憑證是充分的,則過程可以流向框408,在這里,
10如上文所討論的,發(fā)送響應。圖3示出了消息的示例序列,其中,第一請求消息是不充分的, 而第二請求消息是充分的。示例消息序列示出了下面的消息序列。請求消息310。未經授權的消息312。請求ST消息314。ST響應消息316。請求消息318 (帶有安全令牌)。響應消息320。在一個實施例中,環(huán)境可以得到如下的消息序列。請求ST消息314。ST響應消息316。請求消息318 (帶有安全令牌)。響應消息320。在上面的示例序列中,請求方102可以在框414發(fā)送請求ST消息314 ;在框416, 請求方102可以接收安全ST響應消息316 ;在響應中,在框418,請求方102可以生成和發(fā)送請求消息318。然后,依賴方106可以在框408發(fā)送響應消息320。此序列可以,例如,在下列環(huán)境中產生其中請求方102響應于前面的請求先前已經接收到未經授權的消息312 或以別的方式被配置成獲取適當?shù)陌踩钆撇⑵湓谡埱笙⒅信c適當方案一起發(fā)送??梢援a生過程400的變體,包括按其他順序發(fā)送所示出的消息,或其一部分。圖5是示出了圖4的判斷框406的示例實現(xiàn)的流程圖。判斷框406的一些動作可以由依賴方106(圖1)的HTTP棧206(圖2)來執(zhí)行,并在圖5的左列中在標題“HTTP?!?下被表示。判斷框406的其他動作可以由應用210的認證模塊212來執(zhí)行,并在右列中在標題“應用”下被表示。出于上下文,圖5用虛線包括圖4的框404、410以及408 ;盡管在所示出的實施例中它們沒有被包括在判斷框406的動作中。圖5中所示出的判斷框406的動作此處被稱為過程500。如圖5所示,處理可以從框404流向框504,在這里,可以從HTTP消息的HTTP頭部中提取認證方案的說明。請求消息318是這樣的HTTP消息的一個示例。在一個實施例中, 說明可以是在依賴方106中配置的任何方案名稱。過程500可以從框504流向判斷框506,在這里,就HTTP棧206是否配置有對應于所指定的認證方案的處理程序作出確定。此處所描述的框架允許過程500在依賴方中利用對應于所指定的認證方案的HTTP棧處理程序或利用不是如此配置的HTTP棧來執(zhí)行。如果在判斷框506確定HTTP棧206被配置有對應的處理程序,則該過程可以流向框508,在這里,可以從接收到的消息中提取安全令牌。如此處所描述的,此處所描述的框架允許安全令牌被置于一個或多個HTTP頭部中或請求消息的正文中???06的動作包括確定安全令牌的位置,提取安全令牌,以及如果安全令牌有一個以上的段,則組裝這些段。圖 7更詳細地示出框508的一些動作。過程可以從框508流向框510,在這里,可以執(zhí)行對安全令牌的驗證。在一個實施例中,框510的動作包括驗證安全令牌正常地與它在其中被接收到的請求相關聯(lián)。在一個實施例中,消息可包括請求消息的摘要,或其一部分。這可包括消息正文、安全令牌,以及HTTP頭部的選定部分。摘要可包括消息的指定的部分的散列???10的動作可包括驗證摘要準確地表示消息正文以及HTTP頭部的選定部分。驗證安全令牌可包括生成摘要并驗證它匹配與安全令牌一起包括的摘要。在一個實施例中,框510的動作包括驗證涵蓋了至少摘要的數(shù)字簽名。簽名可以使用嵌入在安全令牌中的加密密鑰。這用于將安全令牌與消息強相關聯(lián)。對安全令牌的驗證可包括驗證安全令牌是由諸如圖1的身份提供方110之類的受信任的身份提供方所發(fā)出的???10的動作可包括基于依賴方的配置來驗證由安全令牌表示的任何聲明是充分的,或包括如配置的對安全令牌數(shù)據(jù)的額外的驗證。這可包括可被配置的幾乎任何類型的驗證。該過程可以流向判斷框512,在這里,就安全令牌以及相關聯(lián)的數(shù)據(jù)是否被正確地驗證作出確定。如果驗證失敗,則過程可以流向過程400的框410,并如此處所描述的繼續(xù)。 如果驗證成功,則過程可以流向框514,在這里,向應用210傳遞請求消息或其一些部分。應用210可以以各種方式處理消息,包括過程400的框408的動作,在這里,它如此處所描述的繼續(xù)。在一個實施例中,HTTP??梢圆槐慌渲贸筛鶕?jù)指定的認證方案來提取和驗證安全令牌。在判斷框506,如果確定HTTP棧沒有被配置有用于指定的認證方案的處理程序,則過程可以流向框526,在這里,向應用210傳遞請求消息,或其一些部分。這給應用程序210 提供了一種用于執(zhí)行對接收到的消息的認證的機制。該過程可以從框516流向框518,在這里,可以從接收到的消息中提取安全令牌。 在一個實施例中,應用210可以被配置成執(zhí)行相對于對請求消息的認證的HTTP棧206的至少一些動作。具體而言,框518和520以及判斷框522的動作可分別包括對應的框508、510 以及512的動作,如此處所描述的。由此,過程可以從框518流向框520到框522,然后,到框410或框408,如上文對于對應的框所描述的。在一個實施例中,在判斷框522處的失敗的認證可以導致注入HTTP錯誤,如此處所描述的。此處所描述的至少一些機制允許依賴方106具有關于接收到的請求消息的各種配置。在一種配置中,HTTP棧206的認證模塊208可以被配置成對接收到的請求的執(zhí)行認證。在一種配置中,認證模塊208可以不如此配置,并向應用210傳遞消息,在這里,應用認證模塊212執(zhí)行認證。在一種配置中,認證模塊208可以執(zhí)行認證動作的一部分,而認證模塊212可以執(zhí)行另一部分。由此,應用210可以被安裝在各種計算系統(tǒng)200上,并可以用于各種HTTP棧配置。圖6是示出了一示例實施例中的將安全令牌插入到HTTP消息中的過程600的流程圖。過程600示出了如上文所討論的框418的至少一些動作。過程600的所示出的部分可以在框602被發(fā)起,在這里,可以確定安全令牌的一個或多個位置。在一種實現(xiàn)中,安全令牌可以被配置成被置于一個或多個HTTP頭部中或消息正文中的三個位置中的一個位置中。在判斷框604,過程可以分叉到四個框中的一個框中,以處理相應的位置選項。一個這樣的位置是在一個或多個HTTP頭部中。如果確定這就是位置所在,則過程可以流向判斷框 606,在這里,就是否要分段安全令牌作出確定。在一個實施例中,基于安全令牌的大小來作出此確定。如果在判斷框606中確定可以將安全令牌插入到一個頭部中,則過程可以流向框608,在這里,安全令牌被插入到一個HTTP頭部中。過程可以流向框620。在一個實施例中,在框620,利用安全令牌位置的說明來生成HTTP令牌位置頭部。然后,過程可以流向完成框622,并退出或返回到諸如框418之類的進行調用的程序。如果在判斷框606確定將執(zhí)行分段,則該過程可以流向框610,在這里,執(zhí)行對安全令牌的分段,生成多個HTTP令牌頭部,并將安全令牌的一段插入到每一個頭部中。然后,該過程可以流向框620,在這里,可以生成令牌位置頭部。在框620,如果安全令牌被分段,則令牌位置頭部可以指定段的數(shù)量和每一個段的大小。過程可以流向完成框622。在判斷框604,可以確定HTTP消息的整個正文將包含安全令牌。如果這被確定,則過程可以流向框612,在這里,將安全令牌插入到正文中。然后,該過程可以在框620繼續(xù), 在這里,可以生成令牌位置頭部。在判斷框604,可以確定安全令牌將被置于接收到的消息的HTML表單字段中。如果這被確定,則過程可以流向框614,在這里,可以生成指定的表單字段,并將安全令牌插入到其中。然后,該過程可以在框620繼續(xù),在這里,可以生成令牌位置頭部。 在判斷框604,可以確定安全令牌將被置于消息正文內的指定的XML元素中。如果這被確定,則過程可以流向框616,在這里,可以生成指定的XML元素,并將安全令牌插入到其中。然后,該過程可以在框620繼續(xù),在這里,可以生成令牌位置頭部。圖7是示出了一示例實施例中的從HTTP消息中提取安全令牌的過程700的流程圖。過程700示出了如上文所討論的框508和518的至少一些動作。過程700的所示出的部分可以在框702被發(fā)起,在這里,可以確定安全令牌的一個或多個位置。這可包括指定令牌的位置的令牌位置頭部,如果它是分段的,還包括段的數(shù)量。在一種實現(xiàn)中,可以在四個位置中的任何一個位置配置安全令牌。在判斷框704,過程可以分叉到四個框中的一個框中,以處理相應的位置選項。一個這樣的位置是在一個或多個HTTP頭部中。如果確定這就是位置所在,則過程可以流向框706,在這里,從每一個頭部中提取安全令牌的一段。如果在一個以上的對應的頭部中有一個以上的段,則將它們組裝以形成安全令牌。然后,過程可以在圖5的框510或520繼續(xù)。在判斷框704,可以確定HTTP消息的整個正文將包含安全令牌。如果這被確定,則過程可以流向框708,在這里,從正文中提取安全令牌。然后,過程可以在框510或520繼續(xù)。在判斷框704,可以確定安全令牌被置于接收到的消息的指定的HTML表單字段中。如果這被確定,則過程可以流向框710,在這里,從指定的表單字段中提取安全令牌。然后,過程可以在框510或520繼續(xù)。在判斷框704,可以確定安全令牌被置于消息正文內的指定的XML元素中。如果這被確定,則過程可以流向框712,在這里,從XML元素中提取安全令牌。在一個實施例中,通過使用在令牌位置頭部字段中指定的查詢來執(zhí)行提取XML元素。然后,過程可以在框510 或520繼續(xù)。過程600和700允許用于安全令牌的位置的若干個選項。例如,如果基于指定的 HTTP頭部大小限制,安全令牌太長而難以放入單個HTTP頭部,則它可以被置于多個HTTP頭部中。如果基于對總的頭部大小的HTTP約束,安全令牌太長而難以放入多個HTTP頭部中, 則它可以被置于消息正文中。過程進一步容納不同的協(xié)議的消息正文,包括HTML或XML。 例如,請求可以采用HTTP POST消息的形式。
示例消息本節(jié)描述了可以被用來實現(xiàn)環(huán)境300中所描述的消息或其他消息的消息內容的示例。這些描述將被理解為一組示例。在各實施例中,可以整體地或以其子集的形式使用這些示例來形成認證方案或協(xié)議。在各種實施例中,關鍵字或參數(shù)可以不同,并仍被用來執(zhí)行此處所描述的至少一些機制。在一個實施例中,不使用這些示例中的任何一個。在一個實施例中,如此處所描述的消息被用來形成一個協(xié)議,該協(xié)議是對RFC 沈17的認證協(xié)議的擴展。這里使用了名稱“WSSEC”作為此協(xié)議的標記(moniker)。此處所描述的協(xié)議有助于用于認證HTTP請求的各種方案。它還定義了一組新HTTP擴展頭部以及它們的語義,供與WSSEC協(xié)議一起使用,以使得該協(xié)議可以在棧中的HTTP層或在HTTP層上方的應用中實現(xiàn)。如此處所討論的,此處所描述的各種動作可以由應用210的應用認證模塊212(圖 2)或HTTP棧206的認證模塊208來執(zhí)行。在一個實施例中,消息和消息頭部被設計成通過應用210或HTTP棧206容納實現(xiàn),以使得應用可以在其中HTTP棧不識別或處理至少一些頭部或參數(shù)的環(huán)境中實現(xiàn)至少一些機制。例如,某些Web服務器被配置成剝去標準的HTTP 認證頭部,如果它們不識別指定的認證方案的話。在這樣的環(huán)境中,此處所定義的自定義頭部仍對應用可用以執(zhí)行認證協(xié)議。在某些環(huán)境中,HTTP??梢员慌渲贸勺R別和處理此處所描述的認證方案,使應用程序不必執(zhí)行這些任務。由此,請求方可以以同樣的方式與各種依賴方進行交互,不管依賴方是否具有識別或實現(xiàn)此處所描述的頭部的HTTP棧。類似地,依賴方可以與各種請求方進行交互,不考慮每一個請求方的HTTP棧是否實現(xiàn)此處所描述的HTTP頭部。另外,可以將應用部署在其中HTTP棧不處理認證方案的環(huán)境中。如果HTTP棧被更新以處理認證方案,則應用可以繼續(xù)起作用,允許HTTP棧執(zhí)行認證動作。表1示出了可以在所描述的消息中的每一個中使用的HTTP頭部。在每一個消息中,可以包括未描述的額外的HTTP頭部。表 權利要求
1.一種包括用于處理在請求方(10 和服務器(106)之間交換的消息的計算機程序指令的計算機可讀存儲介質004),所述程序指令可由處理器(20 執(zhí)行以執(zhí)行包括下列各項的動作a)向所述請求方發(fā)送(410)包括一個或多個HTTP頭部的服務器消息(312),所述一個或多個HTTP頭部包括一個或多個認證說明;b)從所述請求方接收(504)包括消息正文和多個HTTP頭部的請求消息(318),所述多個HTTP頭部包括i)標識安全令牌(325)的位置的安全令牌位置說明(70 ;以及ii)包括所述消息正文的至少一部分和所述多個HTTP頭部的至少一部分的加密表示的摘要(510,520);c)如果所述安全令牌位置說明指示所述安全令牌在所述多個HTTP頭部中,則從所述多個HTTP頭部中提取(706)所述安全令牌;d)如果所述安全令牌位置說明指示所述安全令牌在所述消息正文中,則從所述消息正文中提取(708)所述安全令牌;e)從所述多個HTTP頭部中提取(510,520)所述摘要;f)驗證(510,520)所述摘要準確地表示所述消息正文和所述HTTP頭部的至少一部分;以及g)基于所述安全令牌,生成G08)響應消息。
2.如權利要求1所述的計算機可讀存儲介質,其特征在于,所述動作還包括a)如果所述安全令牌位置說明指示所述安全令牌跨所述多個HTTP頭部中的至少兩個被分段,則提取所述安全令牌的每一個段并組裝各段;以及b)如果所述安全令牌位置說明指示所述安全令牌正好在所述多個HTTP頭部中的一個 HTTP令牌頭部中,則從所述HTTP令牌頭部中提取所述安全令牌。
3.如權利要求1所述的計算機可讀存儲介質,其特征在于,所述動作還包括a)向所述認證說明插入安全令牌格式的說明;以及b)驗證所述安全令牌采用指定的安全令牌格式且所述安全令牌是由受信任的身份提供方所發(fā)出的。
4.如權利要求1所述的計算機可讀存儲介質,其特征在于,所述服務器消息是HTTP錯誤消息,所述動作還包括在所述一個或多個認證說明中插入對所述服務器通過處理一組 HTTP認證頭部中的每一個接收到的HTTP認證頭部來認證接收到的消息的指示,所述一組 HTTP認證頭部包括a)指定所述安全令牌的位置的HTTP令牌位置頭部,所述位置指示所述安全令牌在一個HTTP頭部中,在多個HTTP頭部中,或在所述消息正文中;b)包括所述安全令牌的至少一段的一個或多個HTTP安全令牌頭部;c)包括所述消息正文的至少一部分和所述多個HTTP頭部的至少一部分的加密表示的摘要令牌;以及d)包括表示所述接收到的消息的至少一部分的數(shù)字簽名的安全令牌。
5.如權利要求1所述的計算機可讀存儲介質,其特征在于,在將每一個消息傳遞到應用之前,所述計算機程序指令被HTTP棧用來認證每一個消息。
6.如權利要求1所述的計算機可讀存儲介質,其特征在于,在從服務器側HTTP棧接收到每一個消息之后,所述計算機程序指令被應用用來認證每一個消息。
7.如權利要求1所述的計算機可讀存儲介質,其特征在于,所述一個或多個認證說明包括數(shù)字簽名說明,所述動作還包括驗證從所述請求方接收到的所述多個HTTP頭部包括符合所述數(shù)字簽名說明的數(shù)字簽名。
8.如權利要求1所述的計算機可讀存儲介質,其特征在于,所述動作還包括a)向所述響應消息插入上下文令牌;b)從所述請求方接收第二請求消息,所述第二請求消息不包括安全令牌;c)驗證所述第二請求消息包括所述上下文令牌;以及d)基于驗證所述第二請求消息包括所述上下文令牌,生成第二響應消息。
9.一種用于處理在請求方(102)和服務器(106)之間交換的消息的基于計算機的系統(tǒng) (100),包括被配置成執(zhí)行包括下列各項的動作的消息處理器a)響應于服務器消息包括一個或多個HTTP頭部,所述一個或多個HTTP頭部包括認證說明,生成符合所述認證說明的請求消息;b)向所述請求消息(318)插入(802)符合所述認證說明中的安全令牌說明的安全令牌 (325);c)向所述請求消息插入(804)指定所述安全令牌的位置的HTTP令牌位置頭部;d)向所述請求消息插入(810)包括摘要的HTTP摘要頭部,所述摘要包括至少一個 HTTP頭部的加密表示;以及e)向所述請求消息插入(806)包括所述請求消息的至少一部分的數(shù)字簽名的安全頭部。
10.如權利要求9所述的基于計算機的系統(tǒng),其特征在于,所述動作還包括,基于所述安全令牌的大小,確定所述安全令牌的位置,確定所述位置包括確定所述安全令牌是要被置于一個或多個HTTP頭部中還是被置于消息正文中。
11.如權利要求9所述的基于計算機的系統(tǒng),其特征在于,所述請求消息是HTTPPOST 消息,所述動作還包括將所述安全令牌插入到所述消息正文中的HTML表單字段中。
12.如權利要求9所述的基于計算機的系統(tǒng),其特征在于,所述動作還包括,基于所述安全令牌的大小,確定所述安全令牌的位置,確定所述位置包括確定所述安全令牌是正好在一個HTTP頭部中,還是在多個HTTP頭部中,或是在消息正文中。
13.如權利要求9所述的基于計算機的系統(tǒng),其特征在于,還包括第二消息處理器,所述第二消息處理器接收所述請求消息,基于所述HTTP令牌位置頭部,從消息正文中有選擇地提取所述安全令牌,基于所述HTTP令牌位置頭部,從正好一個HTTP頭部中有選擇地提取所述安全令牌,以及基于所述HTTP令牌位置頭部,從多個HTTP頭部中有選擇地提取所述安全令牌的多個段。
14.如權利要求9所述的基于計算機的系統(tǒng),其特征在于,生成所述請求消息包括通過使用HTTP頭部名稱來生成所述一個或多個HTTP頭部,所述HTTP頭部名稱允許所述服務器的HTTP棧通過提取和驗證所述安全令牌來認證所述消息,而如果所述服務器的HTTP棧沒有被配置成提取和驗證所述安全令牌,則允許所述服務器的應用通過提取并驗證所述安全令牌來認證所述消息。
15.如權利要求9所述的基于計算機的系統(tǒng),其特征在于,所述動作還包括將所述安全令牌插入到消息正文中,所述HTTP令牌位置頭部指定整個消息正文包含所述安全令牌。
全文摘要
一種用于認證HTTP消息的系統(tǒng)和方法。依賴方可以通過向請求方發(fā)送帶有認證說明的HTTP消息,對來自請求方的請求作出響應。請求方用遵循由依賴方所指定的方案的新請求作出響應。一種框架允許將安全令牌置于HTTP頭部中或消息正文中,存在諸如將令牌分段之類的各種選項可用。一個選項允許用密碼將安全令牌綁定到消息的正文。一種認證框架提供了通過HTTP?;蛲ㄟ^應用的實現(xiàn)。
文檔編號H04L9/32GK102422593SQ201080021484
公開日2012年4月18日 申請日期2010年5月11日 優(yōu)先權日2009年5月14日
發(fā)明者A·K·納恩達, H·威爾遜 申請人:微軟公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1