專利名稱:Web服務安全處理方法及系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及互聯(lián)網技術,尤其涉及一種Web服務安全處理方法及系統(tǒng)。
背景技術:
Web可用于提 供網上信息瀏覽服務,用戶通過Web服務可以方便地獲取豐富的信息。為使Web服務提供的信息不被黑客或信息竊賊輕易獲取,Web服務運行容器需要對Web服務提供的信息進行安全處理?,F(xiàn)有技術中,對Web服務提供的信息進行的安全處理,一般是在Web服務的應用層針對具體的Web頁面或報文類型采取加密、數(shù)字簽名或公鑰基礎設施(Public KeyInfrastructure,簡稱PKI)等安全處理。當請求報文訪問Web服務運行容器時,Web服務運行容器直接調用已安全處理的具體Web頁面并返回響應報文或者調用Web服務后對特定報文類型的請求報文進行安全處理后返回響應報文。這些Web服務安全處理能夠滿足特定報文類型或某種Web頁面定制的相對簡單的安全要求。然而,實際中Web服務面對各種各樣的報文和Web頁面,其對安全處理的需求是隨機的,因此上述的Web服務安全處理方法難以滿足各種報文和Web頁面的安全處理需求。
發(fā)明內容
本發(fā)明的目的是提供一種Web服務安全處理方法及系統(tǒng),用以使Web服務運行容器方便地對具有不同安全處理要求的Web服務操作進行處理,減少人為參與。為實現(xiàn)上述目的,本發(fā)明提供了一種Web服務安全處理方法,包括接收Web服務請求報文,所述請求報文中包含Web服務信息;調用與所述Web服務信息對應的Web服務包;根據(jù)所述Web服務包中采用WSDL文檔描述的安全處理需求信息對所述Web服務請求報文進行安全處理和/或根據(jù)所述Web服務包中采用WSDL文檔描述的訪問控制策略信息對所述Web服務請求報文的客戶端進行訪問控制。本發(fā)明還提供一種Web服務安全處理系統(tǒng),包括收發(fā)模塊,用于接收Web服務請求報文,所述請求報文中包含Web服務信息;調用模塊,用于調用與所述Web服務信息對應的Web服務包;處理模塊,用于根據(jù)所述Web服務包中采用WSDL文檔描述的安全處理需求信息對所述Web服務請求報文進行安全處理,和/或根據(jù)所述Web服務包中采用WSDL文檔描述的訪問控制策略信息對所述Web服務請求報文的客戶端進行訪問控制。由上述技術方案可知,本發(fā)明通過在Web服務包中的WSDL文檔中添加少量安全信息,無需對Web服務包進行復雜改變,即可實現(xiàn)對Web安全服務的引入擴展,因此Web服務安全處理方法可以滿足各種報文和Web頁面的安全處理需求,同時降低了人為參與操作。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖I為本發(fā)明Web服務安全處理方法實施例一的流程圖;圖2為本發(fā)明Web服務安全處理方法實施例二的流程圖;圖3為圖2中步驟24中安全處理的具體流程圖;圖4為圖3進一步細化的流程圖;圖5為圖2實施例中對SOAP報文進行加密的模塊結構圖; 圖6為圖2實施例中對SOAP報文進行解密的模塊結構圖;圖7為圖2實施例中對SOAP報文進行數(shù)字簽名的模塊結構圖;圖8為圖2實施例中對SOAP報文進行簽名驗證的數(shù)據(jù)流結構圖;圖9為圖2中步驟24中訪問控制的具體流程圖;圖10為圖2中步驟24中單點登錄訪問控制的模塊結構圖;圖11為本發(fā)明Web服務安全處理系統(tǒng)實施例一的流程圖;圖12為本發(fā)明Web服務安全處理系統(tǒng)實施例二的流程圖。
具體實施例方式為使本發(fā)明實施例的目的、技術方案和優(yōu)點更加清楚,下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。圖I為本發(fā)明Web服務安全處理方法實施例一的流程圖,如圖I所示,本實施例的方法包括步驟11、接收Web服務請求報文,所述請求報文中包含Web服務信息。本實施例中的Web服務請求報文可以為簡單對象訪問協(xié)議(Simple ObjectAccess Protocol,以下簡稱S0AP)報文,也可以為其他類型的請求報文,以下以SOAP報文為例進行說明。Web服務信息可以為請求Web服務進行相應操作的參數(shù)信息,如進行查詢、運算或其他操作的參數(shù)。步驟12、調用與所述Web服務信息對應的Web服務包。當Web服務運行容器接收到Web服務請求報文時,獲取該請求報文中的Web服務信息,根據(jù)該Web服務信息運行容器可以調用相應的Web服務包。步驟13、根據(jù)所述Web服務包中采用WSDL文檔描述的安全處理需求信息對所述Web服務請求報文進行安全處理和/或根據(jù)所述Web服務包中采用WSDL文檔描述的訪問控制策略信息對所述Web服務請求報文的進行訪問控制。Web 服務包中包括有 WSDL (Web Services Description Language,簡稱WSDL)文檔,WSDL是Web Service的描述語言,用于描述Web Service的服務,接口綁定等,為用戶提供詳細的接口說明。本實施例中,WSDL文檔可以包括對Web服務請求報文進行安全處理的安全處理需求信息,如加密、解密、數(shù)字簽名和簽名驗證等;也可以包括對Web服務請求報文的客戶端進行訪問控制的訪問控制策略信息,如單點登錄和訪問控制等。當運行容器調用Web服務包時,通過解析WSDL文檔可以獲知需要對Web服務請求報文進行的操作。具體使用中,可以根據(jù)安全處理需求在WSDL文檔中添加或刪除相應的信息?,F(xiàn)有技術中,當需要對不同類型報文進行安全處理時,需要分別對不同類型的報文進行配置相應功能的Web安全服務,因此就需要更多的人為參與。而在本實施例提供的安全處理框架下,可依據(jù)安全需求進行安全處理的擴展,即通過在Web服務包中的WSDL文檔中添加少量相應的安全信息,在運行容器中部署該Web安全服務后就可使Web服務運行容器方便地調用安全服務,達到對Web服務進行綜合的安全策略處理,減少現(xiàn)有技術中各安全子功能服務間數(shù)據(jù)處理的人為參與,從而提高Web服務效率。本實施例通過在Web服務包中的WSDL文檔中添加少量安全信息,無需對Web服務包進行復雜改變,即可實現(xiàn)對Web安全服務的引入擴展,因此Web服務安全處理方法可以滿足各種報文和Web頁面的安全處理需求,同時降低了人為參與操作。在上述實施例一的步驟13之前還可以包括對WSDL文檔進行預處理的過程在步驟13之后還可以包括對返回的響應報文進行安全處理的過程。 圖2為本發(fā)明Web服務安全處理方法實施例二的流程圖,如圖2所示,本實施例的方法包括步驟21、在Web服務包的WSDL文檔中添加安全處理需求信息。本步驟為安全服務的預處理過程,實際應用中可以根據(jù)安全處理需求在WSDL文檔中添加相應的安全處理需求信息,從而當后續(xù)運行容器調用該Web服務包時可以進行相應的安全操作;也可以在WSDL文檔中添加訪問控制策略信息,以便于后續(xù)運行容器調用該Web服務包時可以進行相應的訪問控制操作。步驟22、接收Web服務請求報文,所述請求報文中包含Web服務信息。步驟23、調用與所述Web服務信息對應的Web服務包。步驟24、根據(jù)所述Web服務包中采用WSDL文檔描述的安全處理需求信息對所述Web服務請求報文進行安全處理和/或根據(jù)所述Web服務包中采用WSDL文檔描述的訪問控制策略信息對所述Web服務請求報文的進行訪問控制。本步驟中,Web運行容器根據(jù)解析Web服務包中的WSDL文檔描述的操作信息進行下一步操作,圖3為圖2中步驟24中安全處理的具體流程圖,如圖3所示,安全處理操作包括步驟401、解析所述Web服務包中的WSDL文檔,獲取所述安全處理需求信息。步驟402、采用與所述安全處理需求信息對應的安全處理模塊對所述Web服務請求報文進行安全處理。本實施例中,安全處理需求信息可以包括安全標簽以及與所述安全標簽對應的安全處理方式。安全標簽可以包括加密標簽、解密標簽、數(shù)字簽名標簽、簽名驗證標簽或單點登錄訪問控制標簽等。其分別對應對報文進行加密處理、解密處理、數(shù)字簽名處理、簽名驗證處理或單點登錄訪問控制處理等。圖4為圖3進一步細化的流程圖,如圖4所示,步驟401和步驟402具體包括步驟4011、解析所述安全處理需求信息,獲取安全標簽以及與所述安全標簽對應的安全處理方式。安全處理方式可以包括加密、解密、數(shù)字簽名和簽名驗證。當調用Web服務包后,根據(jù)解析獲得的WSDL文檔中的安全標簽以及與所述安全標簽對應的安全處理方式可以獲知對Web服務請求報文進行哪種安全處理方式。步驟4012、提取所述安全處理方式對應的安全處理模塊。每種安全處理方式對應相應的安全處理模塊,通過安全處理方式映射到具體的安全處理模塊,安全處理模塊可以對Web服務請求報文進行具體的安全處理操作。安全處理模塊可以包括具體的加密單元、解密單元、數(shù)字簽名單元和簽名驗證單元等。在安全處理模塊中可以預存儲該安全處理模塊采用的安全處理算法以及對Web服務請求報文進行安全處理的位置信息。以便于解析獲取安全處理需求信息時,根據(jù)提取的與所述安全處理需求信息對應的安全處理模塊,依照該安全處理模塊采用的安全處理算法對所述Web服務請求報文的相應位置進行安全處理。步驟4013采用所述安全處理模塊對所述Web服務請求報文進行安全處理。
圖5為圖2實施例中對SOAP報文進行加密的模塊結構圖,如圖5所示,若解析圖2中的安全處理是對SOAP報文進行加密,其處理過程中可以采用圖5中的相應模塊進行。具體為發(fā)送方構造好明文SOAP報文,當運行容器獲取該報文時,將該報文發(fā)送給加密單元,加密單元根據(jù)運行容器解析獲取的WSDL文檔信息加載相應的安全策略進行安全處理。具體為安全策略管理器56將WSDL文件58中的安全策略加載為安全策略模型57,保持在內存當中。加密處理器50根據(jù)安全策略模型57進行初始化,讀取安全策略并設置內部的各項屬性值。加密處理器50接收外部程序提供的SOAP報文,此時SOAP報文還處于明文狀態(tài),需要進行明文至暗文的轉變。在加密單元中,密鑰管理器51隨機生成一個對稱密鑰。由于SOAP報文中可能具有大數(shù)據(jù)量的情況,使用數(shù)據(jù)加密器52對原始數(shù)據(jù)采用對稱加密進行加密,同時對對稱密鑰本身進行非對稱加密,在傳遞SOAP報文中將該對稱密鑰隨SOAP報文一起發(fā)送給接收方。在對報文加密的過程中,加密算法由安全策略管理器56載入算法管理器53。在非對稱加密的過程中,使用密鑰加密器54調用非對稱密鑰,非對稱密鑰有多種形式,包括證書、密鑰文件或者表示密鑰的序列化后的數(shù)碼等。完成上述加密操作后,調用數(shù)據(jù)管理器55,由數(shù)據(jù)管理器55對SOAP報文進行相關操作,主要是對從明文到暗文的替換和標志安全機制的SOAP頭部的添加等,形成新的完整SOAP報文。圖6為圖2實施例中對SOAP報文進行解密的模塊結構圖,如圖6所示,若解析圖2中的安全處理是對SOAP報文進行解密,其處理過程中可以采用圖6中的相應模塊進行,解密是加密的逆過程,由解密單元執(zhí)行,具體操作如下解密處理器60通過安全策略管理器65,加載WSDL文件68中的安全策略,形成安全策略模型67,根據(jù)安全模型對解密處理器60進行初始化;解密處理器60調用密鑰解密器61,通過非對稱解密,獲得通過SOAP報文傳遞的對稱密鑰信息。非對稱解密的過程中,使用的是本身的私鑰,私鑰的形式包括密鑰倉庫(KeyStore)或者密鑰文件等。由于對稱密鑰是通過SOAP這種文本格式的報文傳輸?shù)?,因此傳輸?shù)氖俏谋拘问降膶ΨQ密鑰值。在解密過程中,需要將該文本反序列化為程序中的密鑰對象。數(shù)據(jù)解密器62使用該對稱密鑰,對SOAP頭和SOAP體中的數(shù)據(jù)利用對稱算法進行解密,獲得明文數(shù)據(jù)。數(shù)據(jù)管理器63將解密后的數(shù)據(jù)重新組裝成完整的明文SOAP報文。該解密過程中,加密算法由安全策略管理器65載入算法管理器64。圖7為圖2實施例中對SOAP報文進行數(shù)字簽名的模塊結構圖,如圖7所示,若解析圖2中的安全處理是對SOAP報文進行數(shù)字簽名,其處理過程中可以采用圖7中的相應模塊進行,數(shù)字簽名是如何保證數(shù)據(jù)完整性和發(fā)送方的身份,由數(shù)字簽名單元執(zhí)行,具體操作如下數(shù)字簽名處理器70調用安全策略管理器75,通過安全策略模型77封裝WSDL文件78中的安全策略信息,并對簽名處理器70進行初始化。簽名處理器70通過數(shù)據(jù)管理器71,提取出需要簽名的內容,默認簽名內容為SOAP體中的數(shù)據(jù),然后調用數(shù)據(jù)摘要器72。數(shù)據(jù)摘要器72通過算法管理器73的接口,使用相應簽名算法進行摘要,將摘要后的數(shù)據(jù)返回給數(shù)據(jù)摘要器72。數(shù)據(jù)摘要器72將摘要后的數(shù)據(jù)傳遞給數(shù)據(jù)加密器79,數(shù)據(jù)加密器79使用發(fā)送方本身的私鑰以非對稱加密算法進行數(shù)字簽名,簽名過程中同樣使用算法管理器73。生成簽名值后,將暗文數(shù)據(jù)傳遞給消息管理器80,消息管理器80對SOAP報文進行更新,形成包含簽名機制的SOAP報文,提交給簽名處理器70。數(shù)字簽名要求發(fā)送方用自己的私用密鑰對摘要加密,這就形成了發(fā)送方的數(shù)字簽名。和數(shù)據(jù)加密中的非對稱加密一樣,發(fā)送方要生成一對非對稱公鑰和私鑰,將公鑰發(fā)布在公開位置,保留私鑰并用私鑰對數(shù)據(jù)的摘要簽名,以此證明該數(shù)據(jù)發(fā)送者的身份。圖8為圖2實施例中對SOAP報文進行簽名驗證的數(shù)據(jù)流結構圖,如圖8所示,若解析圖2中的安全處理是本實施例若是對SOAP報文進行簽名驗證,其處理過程中可以采用 圖8中的相應模塊進行,簽名驗證是為了檢驗數(shù)據(jù)的完整性,并驗證用戶身份的真實性,同時將身份信息轉入下一步訪問控制作為輸入參數(shù)。簽名驗證由簽名驗證單元執(zhí)行,簽名驗證的過程主要包含兩部分引用驗證和簽名驗證。引用驗證通過數(shù)據(jù)摘要的方式解決SOAP報文的數(shù)據(jù)完整性問題。其具體過程為在接收方獲得SOAP報文后,第一步應進行解密,因為SOAP報文在網絡中是以暗文的形式傳輸,接收方無法直接獲得與數(shù)字簽名有關的數(shù)據(jù)信息。因此利用從SOAP報文頭部指名的接收方私鑰信息對數(shù)據(jù)信息解密,實現(xiàn)從暗文到明文的轉變過程。解密后,接收方開始進行對SOAP報文中簽名信息的驗證過程。首先,從SOAP消息中提取原始數(shù)據(jù)81,按照摘要算法進行摘要,生成的數(shù)據(jù)摘要87,將該數(shù)據(jù)摘要87和SOAP報文頭部的摘要值數(shù)據(jù)摘要83比較。如果兩個值相等,則說明原始數(shù)據(jù)在傳輸過程中沒有改變,以此來驗證報文的完整性。簽名驗證對SOAP報文發(fā)送方的身份進行認證,同時還可以支持對不可否認性的確定。其具體過程為簽名驗證處理器使用SOAP報文中規(guī)定的密鑰作為簽名驗證的非對稱密鑰,也可以通過其它特定方式在簽名驗證處理器中由程序獲取密鑰。該密鑰是發(fā)送方的公鑰,可以以數(shù)字證書或文件等形式存在。簽名驗證處理器根據(jù)非對稱算法來對數(shù)字簽名值進行非對稱解密,并與通過上一步的數(shù)據(jù)摘要值進行比較判斷。如果結果相等,則通過簽名驗證,以此來驗證報文的真實性并驗證身份。圖9為圖2中步驟24中訪問控制的具體流程圖,如圖9所示,步驟24中Web運行容器根據(jù)解析Web服務包中的WSDL文檔描述的操作信息進行的下一步操作若為訪問控制,則步驟24具體為步驟403、提取所述Web服務請求報文中的SAML標簽信息。SAML (Security Assertion Markup Language,簡稱SAML)為安全斷言標記語言,SAML定義安全系統(tǒng)之間的共享授權信息,例如用戶密碼和安全檢查等。本實施例中的訪問控制服務要求客戶端發(fā)送的SOAP報文頭部攜帶SAML標簽,為消息身份驗證斷言,在運行容器調用相應的服務時,進行斷言的判斷及處理。根據(jù)該身份驗證斷言,尋找相關XACML策略,并根據(jù)Web服務地址以及操作名,正確進行判斷是否允許特定用戶訪問特定資源或操作。XACML是一種用于決定請求/響應的通用訪問控制策略語言和執(zhí)行授權策略的框架,它在傳統(tǒng)的分布式環(huán)境中被用于訪問控制策略的執(zhí)行,XACML通常設計成與SAML協(xié)同工作。步驟404、根據(jù)所述WSDL文檔描述的訪問控制策略信息對所述SAML標簽信息進行判斷。步驟405、根據(jù)判斷結果對所述Web服務請求報文的客戶端進行訪問控制。訪問控制服務在容器部署后,在客戶端發(fā)送SOAP請求報文到Web服務運行容器,運行容器接到該報文后進行訪問控制解析,如果訪問控制請求通過則按照該服務的要求進行相應操作;如果不通過,則返回拒絕報文。圖10為圖2中步驟24中單點登錄訪問控制的模塊結構圖,當運行容器需要對SOAP報文的客戶端進行訪問控制時,可采用圖10所示的相關模塊進行處理。具體來說,運 行容器可以通過SAML處理器90對接收到的SOAP報文進行解析,通過對報文中的關鍵字進行解析,獲取SOAP報文屬于三種訪問控制斷言92中的哪一種身份驗證斷言、屬性斷言還是授權認證斷言,在判斷接收到的斷言報文屬性后采取不同的訪問控制策略進行處理。運行容器對訪問容器的客戶端進行身份、權限的管理,以達到訪問控制的目的,本實施例中采用了基于XACML策略94的準入控制,對相關web服務調用進行訪問控制。XACML可以根據(jù)主體、資源、環(huán)境的屬性以及所采取的行為進行控制。返回的結果有四種允許、拒絕、無法決定和不適用。具體處理過程為=SAML處理器負責對請求SOAP報文信息進行分析處理,并通過策略進行訪問控制判斷是否允許其訪問操作,其中,運行容器解析Web服務包中的WSDL文件99,載入安全策略模型98,并初始化相應的參數(shù)。同時,將請求報文發(fā)送給SAML處理器,經過分析判斷控制斷言屬于哪一種,策略決策點96根據(jù)算法管理器93提供的算法利用策略規(guī)則判斷客戶端的訪問請求是否滿足要求,以便決定是允許還是拒絕,并將決策結果返回給策略執(zhí)行點97,策略規(guī)則由安全策略管理器95載入算法管理器93。步驟25、若所述安全處理需求信息中包括Web服務響應報文的安全處理要求信息,則根據(jù)所述響應報文的安全處理需求信息對所述響應報文進行安全處理。本步驟中,運行容器通過解析WSDL文檔,獲取安全處理需求信息,若安全處理需求信息中包括Web服務響應報文的安全處理要求信息,則根據(jù)該信息對響應報文進行安全處理。本實施例通過在Web服務包的WSDL文檔中添加安全處理需求信息可以使Web安全服務根據(jù)需要進一步擴展,從而增加了安全服務的靈活性;通過在WSDL文檔的安全處理需求信息中包括Web服務響應報文的安全處理要求信息可以對容器返回的響應報文進行安全處理。圖11為本發(fā)明Web服務安全處理系統(tǒng)實施例一的流程圖,如圖11所示,本實施例的系統(tǒng)包括收發(fā)模塊200、調用模塊201和處理模塊202,調用模塊201分別與收發(fā)模塊200和處理模塊202連接,處理模塊202還與收發(fā)模塊200連接。其中,收發(fā)模塊200,用于接收Web服務請求報文,所述請求報文中包含Web服務信息;調用模塊201,用于調用與所述Web服務信息對應的Web服務包;處理模塊202,用于根據(jù)所述Web服務包中采用WSDL文檔描述的安全處理需求信息對所述Web服務請求報文進行安全處理,和/或根據(jù)所述Web服務包中采用WSDL文檔描述的訪問控制策略信息對所述Web服務請求報文的客戶端進行訪問控制。本實施例可以執(zhí)行上述圖I所示方法實施例一的技術方案,其技術原理及達到的技術效果類似,不再贅述。圖12為本發(fā)明Web服務安全處理系統(tǒng)實施例二的流程圖,如圖12所示,本實施例是對上述圖11實施例一的進一步細化,其中,處理模塊202包括安全消息子模塊301、單點登錄子模塊303和策略決策子模塊302,策略決策子模塊302分別與安全消息子模塊301和所述單點登錄子模塊303連接,安全消息子模塊301和單點登錄子模塊303分別與調用模塊201連接。請求報文通過傳輸層和消息層300后到達收發(fā)模塊200,安全消息子模塊301,用于根據(jù)所述策略決策子模塊302確定的安全處理方式對所述Web服務信息進行安全處理,所述安全處理方式包括加密、解密、數(shù)字簽名或簽名驗證;安全消息子模塊301包括解密單元3011、加密單元3013、簽名驗證單元3012、和數(shù)字簽名單元3014,分別用于完成解密、加密、簽名驗證和數(shù)字簽名的操作。單點登錄子模塊303,用于對發(fā)送Web服務請求報文的客戶端進行身份驗證,根據(jù)所述身份驗證的結果對客戶端進行訪問控制;單點登錄子模塊303包括SAML令牌管理器,用于對客戶端進行授權訪問控制。策略決策子模塊302,用 于根據(jù)所述WSDL文檔描述的安全處理需求信息確定對所述Web服務請求報文采取的安全處理方式,和/或根據(jù)接收到的Web服務請求報文中攜帶的SAML標簽信息和所述WSDL文檔描述的訪問控制策略信息對所述Web服務請求報文的客戶端進行訪問控制。策略信息點3023負責給策略決策點96提供授權決策所需要的用戶屬性、環(huán)境屬性和資源屬性等。圖中的策略管理器3021可以為安全處理中的策略管理器,如加密、解密、數(shù)字簽名和簽名驗證中的策略管理器,也可以為單點登錄訪問控制中的策略管理器。策略文件為WSDL文件集,分別對應不同的安全處理需求。本實施例可以執(zhí)行上述圖2所示方法實施例二的技術方案,其技術原理及達到的技術效果類似,不再贅述。本領域普通技術人員可以理解實現(xiàn)上述方法實施例的全部或部分步驟可以通過程序指令相關的硬件來完成,前述的程序可以存儲于一計算機可讀取存儲介質中,該程序在執(zhí)行時,執(zhí)行包括上述方法實施例的步驟;而前述的存儲介質包括R0M、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質。最后應說明的是以上實施例僅用以說明本發(fā)明的技術方案而非對其進行限制,盡管參照較佳實施例對本發(fā)明進行了詳細的說明,本領域的普通技術人員應當理解其依然可以對本發(fā)明的技術方案進行修改或者等同替換,而這些修改或者等同替換亦不能使修改后的技術方案脫離本發(fā)明技術方案的精神和范圍。
權利要求
1.一種Web服務安全處理方法,其特征在于,包括 接收Web服務請求報文,所述請求報文中包含Web服務信息; 調用與所述Web服務信息對應的Web服務包; 根據(jù)所述Web服務包中采用WSDL文檔描述的安全處理需求信息對所述Web服務請求報文進行安全處理和/或根據(jù)所述Web服務包中采用WSDL文檔描述的訪問控制策略信息對所述Web服務請求報文的客戶端進行訪問控制。
2.根據(jù)權利要求I所述的方法,其特征在于,所述根據(jù)所述Web服務包中采用WSDL文檔描述的安全處理需求信息對所述Web服務請求報文進行安全處理,包括 解析所述Web服務包中的WSDL文檔,獲取所述安全處理需求信息; 采用與所述安全處理需求信息對應的安全處理模塊對所述Web服務請求報文進行安全處理。
3.根據(jù)權利要求2所述的方法,其特征在于,所述安全處理需求信息包括安全標簽以及與所述安全標簽對應的安全處理方式, 采用與所述安全處理需求信息對應的安全處理模塊對所述Web服務請求報文進行安全處理,包括 解析所述安全處理需求信息,獲取安全標簽以及與所述安全標簽對應的安全處理方式; 提取所述安全處理方式對應的安全處理模塊; 采用所述安全處理模塊對所述Web服務請求報文進行安全處理。
4.根據(jù)權利要求3所述的方法,其特征在于,所述安全標簽包括加密標簽、解密標簽、數(shù)字簽名標簽、簽名驗證標簽或單點登錄訪問控制標簽。
5.根據(jù)權利要求2所述的方法,其特征在于,采用與所述安全處理需求信息對應的安全處理模塊對所述Web服務請求報文進行安全處理之前,還包括 存儲所述安全處理模塊采用的安全處理算法以及對所述Web服務請求報文進行安全處理的位置信息; 采用與所述安全處理需求信息對應的安全處理模塊對所述Web服務請求報文進行安全處理,包括 提取與所述安全處理需求信息對應的安全處理模塊; 依照所述安全處理模塊采用的安全處理算法對所述Web服務請求報文的相應位置進行安全處理。
6.根據(jù)權利要求I 5中任一項所述的方法,其特征在于,根據(jù)所述Web服務包中采用WSDL文檔描述的安全處理需求信息對所述Web服務請求報文進行安全處理之后,還包括 若所述安全處理需求信息中包括Web服務響應報文的安全處理要求信息,則根據(jù)所述響應報文的安全處理需求信息對所述響應報文進行安全處理。
7.根據(jù)權利要求I 5所述的方法,其特征在于,根據(jù)所述Web服務包中采用WSDL文檔描述的安全處理需求信息對所述Web服務請求報文進行安全處理之前,還包括 在Web服務包的WSDL文檔中添加安全處理需求信息。
8.根據(jù)權利要求I所述的方法,其特征在于,根據(jù)所述Web服務包中采用WSDL文檔描述的訪問控制策略信息對所述Web服務請求報文的客戶端進行訪問控制,具體包括提取所述Web服務請求報文中的SAML標簽信息; 根據(jù)所述WSDL文檔描述的訪問控制策略信息對所述SAML標簽信息進行判斷; 根據(jù)判斷結果對所述Web服務請求報文的客戶端進行訪問控制。
9.一種Web服務安全處理系統(tǒng),其特征在于,包括 收發(fā)模塊,用于接收Web服務請求報文,所述請求報文中包含Web服務信息; 調用模塊,用于調用與所述Web服務信息對應的Web服務包; 處理模塊,用于根據(jù)所述Web服務包中采用WSDL文檔描述的安全處理需求信息對所述Web服務請求報文進行安全處理,和/或根據(jù)所述Web服務包中采用WSDL文檔描述的訪問控制策略信息對所述Web服務請求報文的客戶端進行訪問控制。
10.根據(jù)權利要求9所述的系統(tǒng),其特征在于,所述處理模塊包括安全消息子模塊、單點登錄子模塊和策略決策子模塊,所述策略決策子模塊分別與所述安全消息子模塊和所述單點登錄子模塊連接,所述安全消息子模塊和所述單點登錄子模塊分別與所述調用模塊連接, 所述安全消息子模塊,用于根據(jù)所述策略決策子模塊確定的安全處理方式對所述Web服務信息進行安全處理,所述安全處理方式包括加密、解密、數(shù)字簽名或簽名驗證; 所述單點登錄子模塊,用于對發(fā)送Web服務請求報文的客戶端進行身份驗證,根據(jù)所述身份驗證的結果對客戶端進行訪問控制; 所述策略決策子模塊,用于根據(jù)所述WSDL文檔描述的安全處理需求信息確定對所述Web服務請求報文采取的安全處理方式,和/或根據(jù)接收到的Web服務請求報文中攜帶的SAML標簽信息和所述WSDL文檔描述的訪問控制策略信息對所述Web服務請求報文的客戶端進行訪問控制。
全文摘要
本發(fā)明公開了一種Web服務安全處理方法及系統(tǒng)。其中Web服務安全處理方法包括接收Web服務請求報文,所述請求報文中包含Web服務信息;調用與所述Web服務信息對應的Web服務包;根據(jù)所述Web服務包中采用WSDL文檔描述的安全處理需求信息對所述Web服務請求報文進行安全處理和/或根據(jù)所述Web服務包中采用WSDL文檔描述的訪問控制策略信息對所述Web服務請求報文的客戶端進行訪問控制。本發(fā)明使Web服務運行容器方便地對具有不同安全處理要求的Web服務進行綜合的安全策略處理,減少不同安全子功能服務間數(shù)據(jù)處理的人為參與。
文檔編號H04L29/06GK102790712SQ20111012817
公開日2012年11月21日 申請日期2011年5月17日 優(yōu)先權日2011年5月17日
發(fā)明者劉旭東, 曾浩, 李建欣, 李竹青, 楊帆 申請人:北京航空航天大學