新四季網

用於聚合第三方安全服務的工作流的安全模型的製作方法

2023-04-28 01:02:51

專利名稱:用於聚合第三方安全服務的工作流的安全模型的製作方法
技術領域:
在此描述的各種實施例一般地涉及系統,更具體地說,涉及用於聚合第三方安全服務的工作流的安全模型。
背景技術:
混搭(Mashup)是創建組合了來自不同Web資源的內容、呈現和應用功能的新web應用的方法。這些包括將諸如REST或SOAP服務、饋送(RSS或ATOM)或普通XML或HTML源之類的多種服務和資源「混搭」在一起。目前主要有兩類混搭使用者(consumer)混搭和企業混搭。使用者混搭主要是為了專用,它使用共同接口統一來自多個資源的數據,從而將這些數據組合起來。企業混搭在企業環境中組合來自至少一個資源的不同源。企業混搭通過促進開發上的組裝(assembly) 來降低開發成本並在更短時間內提供新的解決方案,因而具有巨大潛力。

發明內容
本發明的一個示例性實施例是用於訪問數據的方法。所述方法包括接收以工作流語言描述的工作流模型。所述工作流模型被配置為聲明集成來自兩個或更多個外部網絡資源的受保護數據的組合應用(compositeapplication)的安全要求。所述方法還包含在至少一個安全伺服器計算機上執行驗證(authentication)服務。所述驗證服務被配置為執行用戶驗證和授權以代表根據所述工作流語言在至少一個主伺服器計算機上執行的組合應用訪問外部網絡資源上的受保護數據。本發明的進一步示例性實施例包括用於訪問數據的系統。所述系統包括以工作流語言描述的工作流模型。所述工作流模型被配置為聲明集成來自兩個或更多個外部網絡資源的受保護數據的組合應用的安全要求。所述系統還包括在至少一個安全伺服器計算機上執行的驗證服務。所述驗證服務被配置為執行用戶驗證和授權以代表根據所述工作流語言在至少一個主伺服器計算機上執行的組合應用訪問外部網絡資源上的受保護數據。本發明的更進一步的示例性實施例是用於訪問數據的電腦程式產品。所述電腦程式產品包括接收以工作流語言描述的工作流模型。所述工作流模型被配置為聲明集成來自兩個或更多個外部網絡資源的受保護數據的組合應用的安全要求。所述電腦程式產品還包含被配置為將請求發送到在至少一個安全伺服器計算機上執行的驗證服務,來執行用戶驗證和授權以代表根據所述工作流語言的所述組合應用訪問外部網絡資源上的受保護數據的代碼。


本說明書結束部分的權利要求中專門指出並明確聲明被認為是本發明的主題。通過下面結合附圖的詳細描述,本發明的上述和其他目標、特徵和優點將變得顯而易見,在所述附圖中
圖I示出本發明所構想的用於訪問數據的示例性系統。圖2示出本發明所構想的用於訪問數據的方法的示例性流程圖。圖3示出本發明所構想的用於訪問數據的系統和方法的示例性使用場景。圖4是來自圖3中示例性場景的示例性工作流模型列表。圖5是實現圖3所示的本發明示例性實施例的安全解決方案的概覽。圖6是示例性安全擴展元素的來自圖3中示例性場景的示例性工作流模型列表。圖7A是來自圖3的示例性場景的、重定向到安全授權服務(SAS)時的用戶瀏覽器的示例性網頁。
圖7B是來自圖3的示例性場景的、用戶瀏覽器的示例性授權網頁。
具體實施例方式參考本發明的實施例描述本發明。在本發明的通篇描述中,參考圖1-7B。本發明的方面涉及用於聚合第三方安全服務的混搭的安全模型。當在驗證和授權方面具有完全不同的安全要求時,當前的企業混搭工具缺乏以安全方式在混搭中使用和集成不同服務的能力。因此,許多混搭工具只能在混搭代碼中集成沒有安全性的服務和數據源或硬編碼驗證數據。這在企業環境中是一個問題,因為用戶更不願意將其驗證信息提供給第三方(實際上,公司策略甚至可能禁止這麼做),資源通常具有定製的安全要求。此外,聚合的安全服務要求在不同協議上來自不同用戶的不同證書(credential)。資源可能支持諸如HTTP基本驗證、定製的應用鍵、或諸如OpenID和OAuth等更像Web 2. O協議之類的多種驗證協議中的任意一種。本發明的實施例提供對企業混搭的支持,所述企業混搭允許用戶聚合來自網絡上安全和不安全資源的數據,其中每個安全資源可能使用不同的安全協議。圖I示出本發明所構想的用於訪問數據的示例性系統100。需要指出,所示的系統100隻是本發明各種安排的一個示例,不能被理解為將本發明限於任何特定配置。在一個實施例中,系統100包括主伺服器計算機102和安全伺服器計算機110。在主伺服器計算機102上運行組合應用104。以工作流語言描述的工作流模型106被配置為聲明集成來自兩個或更多個外部資源116的受保護數據118的組合應用104的安全要求。因此,工作流是表示/實現和執行混搭的一種方式。可在主伺服器計算機102上運行的組合應用104可以包括工作流模型106。組合應用104可以用包括工作流語言的編譯或解釋語言來編寫。工作流語言可以是包括基於XML的語言(包括Bite或Bite語言的擴展版本)的編譯或解釋語言。有關Bite語言的更多信息,可以參考 FranciscoCurbera、Matthew Duftler> Rania Khalaf 以及 DouglasLovell 的「Bite :Workflow Composition for the Web, International Conference onServiceOriented Computing (ICS0C 2007),,, Springer LNCS,奧地利維也納,2007 年 9 月
17-20。組合應用104的進一步實施例包括安全處理器108。安全處理器108可以是組合應用104中與驗證服務112交互的模塊。安全處理器108可通過多種驗證協議與驗證服務112進行交互,所述驗證協議包括但不限於提供對目標服務上不同安全機制的支持的OAuth、HTTP基本驗證和AppID。在本發明的一個實施例中,組合應用104包含工作流模型106的至少一個工作流實例。工作流可以用工作流語言來編寫。在本發明的一個實施例中,工作流實例在組合應用104與驗證服務112通信時保持其執行狀態。安全伺服器110必須位於受驗證和訪問控制規則保護的可信環境中。在安全伺服器計算機Iio上運行驗證服務112。驗證服務112被配置為執行用戶驗證和授權以代表組合應用104訪問外部資源116上的受保護數據118。外部資源116包括外部計算機上可用的安全或不安全的任何資源。受保護數據118包括諸如RSS或Atom之類的饋送,諸如REST或SOAP之類的服務,HTML或XML源,或者諸如圖像或文檔之類的計算機可訪問文件。在一個實施例中,用戶證書114存儲在驗證服務112中。用戶證書114可以包括密碼、用戶名或存儲標識信息的令牌。主伺服器計算機102通過網絡120與安全伺服器計算機110相連。網絡120可以是本領域中已知的各種網絡類型中的任一類型,包括區域網(LAN)、廣域網(WAN)、有線和/或無線網絡。網絡120可以採用本領域中已知的各種配置,例如包括但不限於TCP/IP、 Wi-Fi 、Bluetooth 微微網(piconet)、令牌環、光纖和微波。Wi-Fi是位於德克薩斯州奧斯汀的Wi-Fi聯盟的註冊商標。Bluetooth是位於華盛頓貝爾維尤的BluetoothSIG公司的註冊商標。圖2示出本發明所構想的用於訪問數據的方法的示例性流程圖200。每個工作流活動如果需要安全性,則可執行操作204-218。也就是說,如果工作流活動上具有安全元素並且它是出站的,則會執行所述操作。所述方法從方框202開始並包括接收聲明集成來自兩個或更多個外部網絡資源的受保護數據的組合應用的安全要求的工作流語言。聲明安全要求可以包括使用工作流語言中的安全擴展元素。在方框204,所述方法包括提供執行用戶驗證和授權的驗證服務以代表根據所述工作流語言在主伺服器計算機上執行的組合應用訪問外部網絡資源上的受保護數據。所述方法進一步包括,在方框205,從組合應用連接到驗證服務。通過使用諸如OAuth協議之類的常見安全協議完成此操作。OAth是一個被充分理解並且逐漸流行的用於基於Web的應用的協議,它實現使用者和提供者間的驗證與授權的無縫處理方式。在這種場景中的使用者是Bite引擎,且提供者是SAS本身。OAuth提供者必須提供三種不同的請求URL : (I)請求令牌URL (相對URL/request token) ; (2)用戶授權 URL (/authorize);以及(3)訪問令牌 URL (/accesstoken)ο典型的OAuth驗證和授權通過以下方式處理首先,使用者通過發送一些OAuth特定參數(例如,標識使用者應用的預協商使用者鍵、時間戳、單次值(nonce)、籤名等)來使用請求令牌URL(I)請求請求令牌。在所有參數正確並且可驗證的情況下,服務提供者發出未授權的請求令牌。當使用者接收到所述請求令牌時,用戶的瀏覽器便可被重定向到服務提供者以獲取驗證和授權。此授權確保位於瀏覽器之後的用戶顯式地確保允許使用者Web應用代表他訪問服務提供者的資源。一旦執行了授權,服務提供者便可將用戶重定向回使用者應用(使用回調URL)。最後,使用者必須用請求令牌在服務提供者處交換訪問令牌。如果用戶在上一步驟成功地執行了驗證和授權,這通常被準許。此訪問令牌是必須隨每個進一步的請求發送到受保護服務的OAuth參數之一(另外還需發送使用者鍵、時間戳、籤名等)。所述方法包括在方框206代表組合應用將請求發送到驗證服務。該請求可以在組合應用需要第三方資源上保持的數據時發出。此外,此數據可以是受保護的。所述請求可以通過使用組合應用中的安全處理器模塊來發出。在方框208,所述方法包括檢索有關所述兩個或更多個外部網絡資源之一的協議信息。協議信息可以通過從外部資源請求協議信息或通過將安全信息硬編碼到安全處理器模塊或驗證服務中來檢索。在方框210,所述方法包括將用戶從組合應用重定向到驗證服務以請求證書。此步驟根據協議而所有變化。如果協議為Http基本驗證或AppID,則SAS顯示一個表單以收集用戶證書和將這些證書安全地存儲在SAS中。如果用於第三方服務的協議是OAuth,則SAS與第三方服務執行OAuth協議並且用戶將被SAS重定向到第三方服務,以便用戶證書僅在第三方服務處被輸入,而永遠不會存儲在SAS中。方框210可以進一步包括通過將用戶瀏覽器重定向到驗證服務的網頁,重定向當前與組合應用交互的用戶。在本發明的一個實施例中,如果用戶當前未連接到組合應用,則 可通過異步消息服務聯繫用戶來完成此重定向。所述異步消息服務例如可以包括電子郵件、即時消息或行動電話文本消息。通過SAS的OAuth接口透明地支持不同第三方服務的安全驗證和授權需要擴展OAuth協議。這允許SAS充當用於各種其他驗證協議的「安全代理」。為此,SAS至少需要目標服務的URL和驗證類型。由於此信息位於Bite流中的活動規範和安全擴展內(例如,圖4,行18-23),因此只需要將其發送到SAS以實現透明的第三方服務驗證。因此,當Bite引擎在SAS處請求請求令牌時,添加若干請求參數。在方框214,所述方法包括由驗證服務獲取用戶證書。通過將用戶重定向到第三方服務以請求證書可以完成此操作。但是,如上所述,如果用於第三方服務的協議是OAuth,則SAS與第三方服務執行OAuth協議,並且用戶將被SAS重定向到第三方服務,以便用戶證書僅在第三方服務處被輸入,而永遠不會存儲在SAS中。在方框216,所述方法提供了從驗證服務連接到兩個或更多個外部網絡資源之一。所述驗證服務可以具有用戶證書並且可以遵循第三方資源使用的一個或多個特定安全協議的機制。此外,在方框218,所述方法包括從驗證服務接收受保護數據。所述驗證服務可以充當數據以及安全的中介(intermediate)。圖3示出本發明所構想的用於訪問數據的系統和方法的示例性使用場景。企業混搭場景用於闡述問題和概念。在此場景中,Acme公司的招聘經理(左側)進行新職位招聘。他使用企業混搭來排程候選人(右下)面試並獲取他們的簡歷。為此,所述混搭首先通過Google日曆調用可用的招聘經理日曆。然後它分叉。下分支回復初始調用,上分支將可用時間發送到Acme的面試排程服務上,用電子郵件通知候選人該服務返回的最後時間段以及用於完成該過程的連結。一旦候選人點擊連結,他便發現一表單,在表單中他填寫個人信息並粘貼簡歷。最後,所述混搭將簡歷放到LotusLive Engage (—種在線協作解決方案)中的「Fi Ies 」文件共享服務內。與多個安全的第三方服務交互需要不同的證書和驗證協議集。例如,Google日曆使用OAuth協議,Acme的排程服務使用HTTP基本驗證,Files服務需要應用鍵和用戶,在該用戶的存儲中將添加文件。Google日曆調用和Files服務調用都需要混搭代表用戶與其進行交互(可能在用戶不再登錄到系統上之後)。圖4是來自圖3中示例性場景的示例性工作流模型列表。企業混搭平臺(BMP)提供用於迅速開發情境業務過程(situational business process)或企業混搭的寄宿(hosted)開發環境。圖形混搭開發基於瀏覽器,利用BPMN式編輯器、表單設計器以及在調色板中提供給設計者的擴展活動目錄。一旦已完全指定混搭,BMP允許混搭的單擊部署,所述混搭是立即可調用的。在後端,在伺服器上生成和執行Bite碼。Bite是基於XML的以REST為中心組合語言,其被設計為便利輕型可擴展工作流的實現。過程模型實現由包含原子操作(活動)和它們之間的連結的平面圖(除了循環)組成的WS-BPEL執行語義子集。循環可以使用專用當型(while)循環活動創建,所述當型循環是唯一允許包含其他活動的構造。圖形執行邏輯被編碼到活動之間的條件轉換連結中。錯誤處理由特殊錯誤連結提供到錯誤處理活動。Bite提供一小組內置活動(1)用於接收和答覆 HTTP 請求(receiveGET|POST、r印IyGET | POST、receive-r印I·yGET | POST)並向外部服務進行HTTP請求(GET、POST、PUT、DELETE)的基本HTTP通信原語,(2)用於等待或調用本地代碼的實用工具活動,(3)諸如外部選擇和循環之類的控制助手。Bite工作流既調用外部服務,也將本身作為服務提供。將HTTP POST請求發送到工作流的基本URL將導致創建被指定了新實例URL的新工作流實例。該實例URL在響應的HTTP Location頭欄位被返回。該實例URL包含用於將後續請求與該工作流關聯的工作流ID0每個工作流實例可以定義與多個入口點對應的多個接收活動。這些活動暴露更多URL,作為實例的嵌套資源的邏輯地址。導向這些URL的POST請求通過使用活動的url屬性中定義的相對URL被分派給工作流模型中的各個接收活動。該機制允許構建交互式工作流,所述交互式工作流具有多個用於與工作流進行交互的入口點。這種行為被諸如Web表單(其被設計為使用企業混搭平臺(BMP)的混搭創建的一部分)之類的各種活動利用。Bite的一個概念是可擴展設計,此設計允許開發人員社區通過創建Bite擴展活動並將這些活動註冊到Bite引擎來以一流的方式提供更多功能。此設計允許使語言及其運行時保持得非常小並允許開發人員實現其他必要活動作為擴展。擴展活動可以使用Java腳本API (例如,Groovy> Ruby、Python等)支持的Java或任何腳本編寫語言創建。圖4示出用於圖3中的招聘樣本的(縮略)Bite碼。每個混搭都具有稱為process的根元素(行I)。通過將HTTP POST請求發送到初始receivePOST的相對URL/hiring創建新工作流實例(行2 )。與POST請求關聯的數據隱式位於變量hr Input中,該變量被輸出到所有從屬活動。在這種情況下,所述變量包含所有POST參數的映射(map)。完成hrlnput活動之後,激活gcal活動(行5-10)。活動之間的轉變由控制元素來表示(行6)。在行12-15,混搭回復來自招聘經理的初始HTTP POST,通知他會收到具有選定面試日期的電子郵件。在行18-23,通過將HTTP POST調用發送到面試排程服務,執行面試排程。然後,執行其他剩餘的步驟,例如,使用sendMail活動發送電子郵件以及使用表單活動準備候選人表單一兩者均實現為Bite擴展活動(為簡單起見,列表中未示出)。最後,shareFile擴展活動(行28-37)將收集的候選人數據上傳到LotusLive。出站HTTP GET 和 POST 調用(gcal 和 schedulelnterview)和 shareFile 活動需要不同的安全證書,所述安全證書是成功執行混搭所需要的。圖5是實現圖3描述的本發明示例性實施例的安全解決方案的概覽。如下面詳細描述的那樣,SAS允許多個用戶與混搭進行交互並允許所述混搭代表每個用戶訪問服務。
為了將安全性提供到企業混搭平臺中,需要解決以下問題(i)用戶在第三方服務處的驗證(即,驗證用戶聲稱的身份),以及(ii)授權,其意義在於用戶必須授權Bite引擎代表用戶執行任務。此外,要區分兩個方面。第一,可以在語言層解決安全性,以將安全性考慮集成到Bite語言中。使語言擴展最小化並且通過以用戶為中心的無縫方式提供用於各種驗證協議的可擴展性支持是有利的。第二,可擴展機制對於實現具有不同驗證協議的可信服務的驗證和授權非常有利。此過程由提供OAuth接口的安全驗證服務(SAS)透明地處理。在圖5中,示出安全解決方案的基本概覽。左側示出包括可執行工作流的Bite引擎(重新組合圖3中的說明性示例)。白色服務構成不需要驗證的服務,而灰色服務需要驗證。中間是必須在公司網絡內的安全可信區域中運行的SAS,因為它在執行工作流期間管理證書。右側示出將在執行期間調用的第三方服務。將SAS放在可信位置上是有用的。一些選項包括放在第三方提供者處,或者在每個服務提供者處放一個SAS。由於重點在於企業混搭,因此可行的是SAS為企業本身提供的服務,這樣,用戶和代理基礎設施之間的信任問題不再是那麼大的問題。 當用戶通過在Web表單中(或從另一應用)使用HTTP POST請求來觸發工作流執行時,便執行混搭,且一旦它到達第一「安全的」第三方服務(圖4中的gcal活動),Bite引擎將使用安全處理器以允許用戶在目標服務上進行驗證。所述處理器通過與SAS交互執行此操作。SAS允許插入多個不同的安全模塊,例如0Auth、HTTP基本驗證和AppID,以提供對目標服務上不同安全機制的支持。執行授權和驗證的過程具有兩種情況同步驗證和異步驗證。同步驗證在這種情況下,用戶已經通過Web應用與工作流進行交互,因此可被簡單地重定向到SAS以在目標服務上執行驗證。在工作流中,這意味著已處理receiveGET|POST而尚未到達相應的r印lyGET|POST活動。例如,這是來自圖4 (行5-10)的gcal活動的情況,此活動位於receivePOST和replyPOST之間。異步驗證在這種情況下,工作流已經通過執行replyGET|P0ST活動返回到用戶。替代地,使用稱為receive_replyGET|POST的活動接收入站請求並立即對其進行回復。因此,用戶不再與工作流進行交互,並且沒有可重定向到SAS的連接。例如,圖4中行18 之後的所有活動(即,schedulelnterview、emailCandidate、colletCandidateData 和storeApplication)。可能的解決方案是使用異步技術聯繫用戶以請求用戶在第三方服務處進行驗證。這可以使用電子郵件和即時消息來實現。Bite引擎和SAS之間的通信使用稍微擴展的OAuth協議版本無縫地實現Web應用(在這裡的情況中,是指Bite引擎和SAS之間)之間的驗證和授權處理。圖6是示例性安全擴展元素的來自圖3中示例性場景的示例性工作流模型列表。為了實現Bite內的安全性,可以將語言擴展為捕捉諸如驗證和授權之類的安全要求。目標可以是使此類語言擴展最小化。對希望執行混搭的用戶的驗證和授權被稱為入站安全性。也就是說,入站安全性是將消息發送到混搭的情況(即,在這種情況下,混搭是安全服務)。入站安全性在運行時級別上執行,由此用戶使用OpenID或類似的協議向外部驗證服務進行驗證,且經過驗證的用戶被注入過程上下文,在此可根據有關接收活動(receiveGET-POST)的用戶限制對其進行檢查。如果允許用戶訪問,則接收活動激活,將消息和用戶信息存儲在適當的變量中,然後結束。否則,向用戶返回錯誤,並且不激活接收活動。請注意,用於與用戶交互的所有活動的用戶信息(如果提供的話)在運行時被存儲在隱式變量[活動名稱]user中。因此,後續活動可以使用該變量返回到特定用戶。為了定義活動的安全特性和要求,提供安全擴展元素並且使所述元素對於諸如GET、POST、PUT、DELETE之類的所有出站通信活動以及對於實現也需要驗證的定製行為的所有擴展活動而言是可選的。圖4的工作流中具有三個安全元素(行9、22和31-36)。在圖6中,呈現安全元素語法。屬性描述可用於安全元素的屬性包括authtype :指定在目標服務上驗證用戶的驗證類型。支持0Auth、HTTP基本驗證和 由各種服務提供者經常以單個或多個GET或POST參數的形式使用的定製的應用ID。安全驗證服務(SAS)透明地支持對這些驗證類型的處理。user :定義代表其執行特定服務的用戶的名稱(作為字符串或表達式)。該user屬性特別相關於支持「代表」語義的擴展活動。例如,圖4中的招聘工作流使用LotusLive上傳和共享文件。該應用通過顯式定義誰上傳文檔(由Bite工作流中的user屬性指示,該用戶名然後在LotusLive的文件共享服務中用作上傳的文檔的所有者)來支持「代表」語義。roles :以逗號分隔字符串的形式定義用戶可以擁有的角色。如果使用某個角色,則可以將角色定義提供給運行時。notification notification定義應如何向用戶通知服務要求驗證。在同步驗證的情況下,可以通過重定向到SAS來請求驗證和授權來使用http。在異步驗證的情況下,工作流必須返回到用戶以請求驗證。可以通過阻止要求安全性的活動,向用戶發送電子郵件(屬性值email)或使用即時消息(屬性值sametime)從而將用戶指向SAS,以及在驗證/授權一旦完成後恢復活動來實現這一點。一種方法使用Lotus Sametime ;其他協議可以容易地添加。notificationReceiver :僅當使用通信類型email或sametime時才需要該屬性,因為此時必須要有聯繫人詳細信息(例如,電子郵箱地址或sametime聯繫人)。在http的情況下,這是不需要的,因為用戶仍在瀏覽器中與工作流進行交互,因此可以被重定向到SAS以執行驗證。scope :scope定義活動的安全證書是否傳播到其他活動以重用。如果屬性值為workflow (工作流),則傳播證書,從而通過對服務重用證書來避免重複登錄,該服務針對同一用戶在工作流中被調用多次。在屬性值為activity (活動)的情況下,不傳播證書。Bite語言的執行語義上的安全元素的影響如下一旦包含安全元素的活動到達工作流,安全元素的屬性值被評估並被存儲在安全上下文中,它本身被存儲在保持工作流實例的執行狀態的過程上下文中。此信息用於在處理器註冊庫中查找相應的安全處理器。安全上下文和消息有效負載被提供給該處理器,該處理器與SAS進行交互以提供所需的驗證和授權。如果沒有可用證書,則所述處理器聯繫用戶以將證書發送到SAS。所述處理器然後執行安全調用並將結果返回到活動實現,所述活動實現轉而將結果存儲在其輸出變量中。如果scope屬性值被設為activity,則所述安全處理器通過其OAuth接口聯繫SAS以繼續所需的安全處理,並在驗證之後銷毀OAuth連接令牌。如果它被設為workflow,則這些OAuth令牌被存儲在過程上下文中,且在針對同一用戶在工作流中再次調用同一服務的情況下可以被重用。重用相同OAuth令牌以連接到SAS允許它確定用戶是否先前驗證和授權Bite以代表他調用給定的第三方服務。儘管異步情況對於工作流語義沒有進一步的影響,但是同步(http)情況卻更多地被涉及,因為如果證書不可用,則需要重用工作流實例的開放連接中的一個聯繫用戶,以將用戶重定向到SAS,然後再返回工作流。Bite允許多個接收活動同時開放(S卩,尚未被回復)。因此,必須識別正確的開放連接。為此,檢查工作流實例中的開放的接收活動以便找到與被處理的安全元素中的值匹配的「User」變量值。匹配的接收活動的「r印lystatus」(回復狀態)被設為「awaiting redirect」(等待重定向)並為其創建鍵,從SAS返回工作流的重定向可與該鍵進行匹配。將回復發送到該receive (接收)的開放連接,該開放連接將用戶重定向到SAS。一旦用戶完成與SAS的工作,客戶端重定向便會將用戶發送回工作流。而且,使用鍵找到匹配的receive活動實例並將其reply status重置為「open」(開放)。如果未在開放的receive中找到任何匹配,貝U檢查「awaiting reply」(等待回復)的receive,因為它們最終會變成「open」並且可在那時使用。如果未在開放或等待重定向 的receive中找到任何匹配,則如在異步驗證情況下那樣聯繫用戶(如果在安全元素定義中提供了聯繫人信息的話)。否則,拋出錯誤。對於「awaiting redirect」的receive的回覆活動在可以發送其響應之前必須等待,直到rece i ve的回覆狀態再次變為「 open 」,並且沒有其他安全重定向針對該receive待處理。安全驗證服務(SAS)負責提供可以透明地處理基於不同安全Web的服務(例如,RESTful)的各種驗證類型的代理。因此,SAS支持不同安全機制並使用OAuth接口暴露自己,OAuth是用於在基於Web的API當中管理驗證和授權的流行協議。規範將其定義如下「OAuth協議允許網站或應用(使用者)通過API從web服務(服務提供者)訪問受保護資源,而無需用戶向使用者披露他們的服務提供者證書」。作為用於與SAS通信的協議,OAuth具有兩個優點=OAuth是一個被充分理解並且日益流行的用於基於Web的應用的協議,且它實現了使用者和提供者之間的驗證與授權的無縫處理方式。在這裡的場景中,使用者是Bite引擎,提供者是SAS本身。OAuth提供者必須提供三種不同的請求URL : (I)請求令牌URL (相對URL/request token) ;(2)用戶授權URL (/authorize);以及(3)訪問令牌URL (/access token)。典型的OAuth驗證和授權通過以下方式處理首先,使用者通過發送一些OAuth特定的參數(例如,識別使用者應用的預協商使用者鍵、時間戳、單次值、籤名等)來使用請求令牌URL (I)請求請求令牌。在所有參數正確並且可驗證的情況下,服務提供者發出未授權的請求令牌。當使用者接收到所述請求令牌時,用戶的瀏覽器便可被重定向到服務提供者以獲取驗證和授權。此授權確保位於瀏覽器之後的用戶顯式地確保允許使用者Web應用代表他訪問服務提供者的資源。一旦執行了授權,服務提供者便可將用戶重定向回使用者應用(通過使用回調URL)。最後,使用者必須用請求令牌在服務提供者處交換訪問令牌。如果用戶在上一步成功地執行了驗證和授權,則通常這一步是可保證的。此訪問令牌是OAuth參數之一,其可隨每個進一步的請求發送到受保護服務(另外還需發送使用者ID、時間戳、籤名等)。通過SAS的OAuth接口透明地支持不同第三方服務的安全驗證和授權需要擴展OAuth協議。這允許SAS充當多種其他驗證協議的「安全代理」。為此,SAS至少需要目標服務的URL和驗證類型。由於此信息位於Bite流中的活動規範和安全擴展內(例如,圖4,行
18-23),因此只需要將其發送到SAS以實現透明的第三方服務驗證。因此,如下面描述的,當Bite引擎在SAS處請求請求令牌時,添加若干請求參數。HTTP基本驗證在實際中廣泛使用,儘管在不使用SSL的情況下它並不非常安全。可以在Bite中通過將authtype設為http basic (參見圖4,行22)來指定該驗證。在運行時,Bite引擎通過發送以下擴展的OAuth請求來請求請求令牌,以聯繫SAS http://sas. watson. ibm. com/request_token oauth_consumer_key=bites_app&oauth_timestamp=. . . &oauth_signature=. . . &oauth_.&x~oauth_serviceurl=http://internal, acme, com/interview/schedule&x-oauth_authtype=http_basic參數&x-oauth_serviceurl 和 x_oauth_authtype 指不來自圖 4 中schedulelnterview活動的安全第三方服務的目標URL及其驗證類型(該擴展以x_作為前綴,因為這也是用於HTTP頭擴展的通用模式)。在同步驗證的情況下,用戶被重定向到SASWeb接口,否則(在異步情況下),在notificationReceiver屬性中指定的用戶ID接收用於驗證的連結(基本上等同於在同步情況下Bite重定向)。·這兩個擴展屬性由SAS用於在iframe中對目標URL進行出站調用。它提示用戶提供目標服務的證書。如果驗證成功,則SAS的代理機制攔截目標服務的HTTP授權頭。簡單的代理servlet (/proxy)用於在SAS上透明地實現代理(proxying)。在SAS上對目標服務的響應進行排隊,否則將調用兩次服務一次用於驗證,一次用於原始服務調用。當執行第一個「真正的」服務調用時,SAS將在驗證過程期間返回排隊的響應。對定製應用ID的支持需要添加稱為x_oauth_appid_mapping的另一 OAuth擴展參數,此參數編碼有關如何在SAS上動態呈現的Web表單中從用戶查詢應用ID以及如何將該數據發送到目標服務(例如,在HTTP頭中或作為GET或POST參數)的詳細信息。因此,Bite工作流中的安全擴展元素定義了映射元素(圖4,行31-36)。更具體地說,該映射說明目標服務具有兩個用於成功驗證的參數,par和key,這兩個參數需要添加為HTTP POST參數(因為該擴展活動在內部使用POST)。此外,每個元素定義一個標籤屬性,該屬性用作動態呈現的驗證表單中的HTML輸入元素的標籤。在執行此類基於應用ID的服務時,Bite引擎將Bite XML映射序列化為使用上述OAuth擴展傳輸到SAS的基於簡單文本的表單中。然後顯示動態呈現的驗證表單以提示提供應用ID。SAS還透明地支持對OAuth的支持。在這種情況下,SAS僅在Bite和目標服務提供者之間添加另一重定向層,而不存儲任何信息。可以實現定製的安全處理器以直接使用基於OAuth的服務(因為Bite已經是對於SAS的OAuth使用者)。但是,在使用基於OAuth的服務時經過SAS具有針對Bite引擎透明地處理多種安全機制的優點。Bite 和 SAS 已經在 Java 1.6 中實現。Bite 可以在 servlet 容器或 WebSpheresMash伺服器上運行。SAS實現基於為不同端點(請求令牌、訪問令牌等)提供多種servlet的Google的Java OAuth實現。這些servlet已被擴展為透明地支持上述安全協議。Bite引擎通過在從帶有安全元素(SASSecurityHandler)的活動調用服務時使用特定安全處理器,而實現OAuth客戶端。所有其他調用使用不涉及SAS的NullSecurityHandler。圖7A來自圖3的示例性場景的、重定向到SAS時的用戶瀏覽器的示例性網頁。圖7B是來自圖3的示例性場景的、用戶瀏覽器的示例性授權網頁。圖7A和7B示出用於針對圖4中的shareFile活動(行28_37)進行驗證和授權的SAS的Web接口,此活動使用定製的應用ID作為「安全」機制。圖7A示出基於Bite中的規範的動態呈現的驗證表單。當用戶的瀏覽器重定向到SAS時,用戶將看到所示的網頁。通過點擊連結,會彈出驗證框,且用戶輸入證書。提交證書之後,用戶必須顯式授權Bite代表其調用服務(圖7B)。當用戶授權Bite時,工作流繼續執行並且用戶被重定向回到工作流應用(在同步情況下),否則拋出一個錯誤。對於HTTP基本驗證,可以獲得相同的用戶體驗,但是,對話框不會動態地呈現,而是瀏覽器特定的。所提出的基於SAS的方法有效地同時支持第三方服務的驗證和授權,而無需向使用者應用(例如,這裡所討論的Bite)公開證書。
如本領域的技術人員將理解的,本發明的各方面可以被實現為系統、方法或電腦程式產品。因此,本發明的各方面可以採取完全硬體實施例、完全軟體實施例(包括固件、駐留軟體、微代碼等)或組合了軟體和硬體方面的實施例的形式,所有這些實施例在此通常被稱為「電路」 「模塊」或「系統」。此外,本發明的各方面可以採取在一個或多個計算機可讀介質(所述介質中包括有計算機可讀程序代碼)上體現的電腦程式產品的形式。可以採用一個或多個計算機可讀介質的任意組合。計算機可讀介質可以是計算機可讀信號介質或者計算機可讀存儲介質。計算機可讀存儲介質例如可以是但不限於電、磁、光、電磁、紅外線、或半導體的系統、裝置或器件,或者上述的任意合適的組合。計算機可讀存儲介質的更具體的例子(非窮舉的列表)包括具有一條或多條導線的電連接、可攜式計算機磁碟、硬碟、隨機存取存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲器(EPR0M或快閃記憶體)、光纖、可攜式緊湊磁碟只讀存儲器(CD-ROM)、光存儲器件、磁存儲器件,或者上述的任意合適的組合。在本文檔的上下文中,計算機可讀存儲介質可以是任何包含或存儲程序的有形介質,該程序可以被指令執行系統、裝置或器件使用或者與所述指令執行系統、裝置或器件結合使用。計算機可讀信號介質可以包括例如在基帶中或者作為載波一部分傳播的數據信號,其中承載了計算機可讀程序代碼。這種傳播信號可以採用任何多樣的形式,包括但不限於電磁信號、光信號或上述的任意合適的組合。計算機可讀信號介質還可以是計算機可讀存儲介質以外任何能夠發送、傳播或者傳輸由指令執行系統、裝置或器件使用或者與所述指令執行系統、裝置或器件結合使用的程序的計算機可讀介質。計算機可讀介質上承載的程序代碼可以使用任何適當的介質傳輸,其中包括但不限於無線、電線、光纜、RF等,或者上述的任意合適的組合。可以使用一種或多種程序設計語言的任意組合來編寫用於執行本發明各方面的操作的電腦程式代碼,所述程序設計語言包括面向對象的程序設計語言一諸如Java、Smalltalk、C++,還包括常規過程式程序設計語言一諸如「C」語言或類似的程序設計語言。程序代碼可以完全地在用戶計算機上執行,部分地在用戶計算機上執行,作為一個獨立的軟體包執行,部分在用戶計算機上部分在遠程計算機上執行,或者完全在遠程計算機或伺服器上執行。在涉及遠程計算機的情形中,遠程計算機可以通過任意種類的網絡一包括區域網(LAN)或廣域網(WAN)—連接到用戶計算機,或者,可以連接到外部計算機(例如利用網際網路服務提供商來通過網際網路連接)。下面將參照本發明實施例的方法、裝置(系統)和電腦程式產品的流程圖和/或框圖描述本發明的各方面。應當理解,流程圖和/或框圖的每個方框以及流程圖和/或框圖中各方框的組合,都可以由電腦程式指令實現。這些電腦程式指令可以提供給通用計算機、專用計算機或其它可編程數據處理裝置的處理器,從而生產出一種機器,這些電腦程式指令通過計算機或其它可編程數據處理裝置執行,產生了實現流程圖和/或框圖中的方框中規定的功能/操作的裝置。也可以把這些電腦程式指令存儲在能使得計算機、其它可編程數據處理裝置或其他設備以特定方式工作的計算機可讀介質中,這樣,存儲在計算機可讀介質中的指令就產生出一個包括實現流程圖和/或框圖中的方框中規定的功能/操作的指令的製造品。也可以把電腦程式指令加載到計算機、其它可編程數據處理裝置、或其它設備上,使得在計算機、其它可編程數據處理裝置或其它設備上執行一系列操作步驟,以產生計 算機實現的過程,從而使得在計算機或其它可編程裝置上執行的指令能夠提供實現流程圖和/或框圖中的方框中規定的功能/操作的過程。附圖中的流程圖和框圖顯示了根據本發明的多個實施例的系統、方法和電腦程式產品的可能實現的體系架構、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個或多個用於實現規定的邏輯功能的可執行指令。也應當注意,在有些作為替換的實現中,方框中所標註的功能也可以以不同於附圖中所標註的順序發生。例如,兩個連續的方框實際上可以基本並行地執行,它們有時也可以按相反的順序執行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執行規定的功能或操作的基於專用硬體的系統來實現,或者可以用專用硬體與計算機指令的組合來實現。儘管描述了本發明的優選實施例,但是將理解,本領域的技術人員無論現在和將來,都可以做出落在下面權利要求的範圍內的各種提升和改進。因此,所述權利要求應該被解釋成為前面描述的本發明維持適當的保護。
權利要求
1.一種用於訪問數據的方法,所述方法包括 接收以工作流語言描述並被配置為聲明集成來自兩個或更多個外部網絡資源的受保護數據的組合應用的安全要求的工作流模型,所述組合應用根據所述工作流模型在至少一個主伺服器計算機上執行;以及 在至少一個安全伺服器計算機上執行驗證服務,所述驗證服務被配置為執行用戶驗證和授權以代表所述組合應用訪問外部網絡資源上的受保護數據。
2.根據權利要求I的用於訪問數據的方法,其中所述伺服器計算機由用戶信任的實體控制。
3.根據權利要求I的用於訪問數據的方法,其中所述工作流語言為可擴展工作流語言。
4.根據權利要求I的用於訪問數據的方法,進一步包括檢索有關兩個或更多個外部網絡資源之一的協議信息。
5.根據權利要求I的用於訪問數據的方法,進一步包括從所述組合應用連接到所述驗證服務。
6.根據權利要求I的用於訪問數據的方法,進一步包括從所述驗證服務連接到兩個或更多個外部網絡資源之一。
7.根據權利要求I的用於訪問數據的方法,進一步包括 通過所述驗證服務獲取用戶證書;以及 使用所述用戶證書執行用戶驗證和授權以訪問外部網絡資源上的受保護數據。
8.一種用於訪問數據的系統,所述系統包括 以工作流語言描述並被配置為聲明集成來自兩個或更多個外部網絡資源的受保護數據的組合應用的安全要求的工作流模型,所述組合應用根據所述工作流語言在至少一個主伺服器計算機上執行;以及 在至少一個安全伺服器計算機上執行的驗證服務,所述驗證服務被配置為執行用戶驗證和授權以代表所述組合應用訪問外部網絡資源上的受保護數據。
9.根據權利要求8的用於訪問數據的系統,其中所述用戶證書存儲在所述驗證服務上。
10.根據權利要求8的用於訪問數據的系統,其中所述組合應用進一步包括 至少一個與所述驗證服務通信的安全處理器,所述安全處理器被配置為使用安全協議與所述驗證服務進行通信;以及所述工作流模型的工作流實例。
11.根據權利要求10的用於訪問數據的系統,其中所述安全協議為OAuth。
12.根據權利要求10的用於訪問數據的系統,其中所述安全協議為HTTP基本驗證。
13.根據權利要求10的用於訪問數據的系統,其中所述工作流實例在所述組合應用與所述驗證服務通信時保持其執行狀態。
14.根據權利要求10的用於訪問數據的系統,其中通過所述驗證服務獲取的一組用戶證書存儲在所述安全處理器中以便在所述工作流實例期間使用。
15.一種電腦程式產品,包括 上面包含計算機可讀程序代碼的計算機可讀存儲介質,所述計算機可讀程序代碼被配置為 接收以工作流語言描述並被配置為聲明集成來自兩個或更多個外部網絡資源的受保護數據的組合應用的安全要求的工作流模型;以及 將請求發送到在至少一個安全伺服器計算機上執行的驗證服務,來執行用戶驗證和授權以代表根據所述工作流語言的所述組合應用訪問外部網絡資源上的受保護數據。
16.根據權利要求15的電腦程式產品,其中所述到驗證服務的請求將用戶從所述組合應用重定向到所述驗證服務以請求證書。
17.根據權利要求15的電腦程式產品,其中所述計算機可讀程序代碼進一步被配置為通過異步消息服務聯繫用戶。
18.根據權利要求17的電腦程式產品,其中所述異步消息服務為電子郵件。
19.根據權利要求17的電腦程式產品,其中所述異步消息服務為即時消息服務。
20.根據權利要求15的電腦程式產品,其中所述計算機可讀程序代碼進一步被配置為從所述驗證服務接收受保護數據。
全文摘要
一種用於集成第三方安全服務的工作流的安全模型的方法、系統和電腦程式產品。在一個實施例中,提供以工作流語言描述的工作流模型並將其配置為聲明集成來自兩個或更多個外部網絡資源的受保護數據的組合應用的安全要求。所述方法還集成提供在至少一個安全伺服器計算機上執行的驗證服務。所述驗證服務被配置為執行用戶驗證和授權以代表根據所述工作流語言在至少一個主伺服器計算機上執行的組合應用訪問外部網絡資源上的受保護數據。
文檔編號H04L7/04GK102893552SQ201180024361
公開日2013年1月23日 申請日期2011年3月9日 優先權日2010年6月25日
發明者P·奧斯特爾, S·沙裡, F·庫爾貝拉, M·迪弗特勒爾, R·哈拉夫, F·羅森伯格 申請人:國際商業機器公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀