在追尋Web服務(wù)安全方面,有兩個主要的方法。W3C采用加密和XML方法來確保來自Web服務(wù)的數(shù)據(jù)不會被攔截。OASIS(WS-I也將其前期工作交給OASIS)采用基于安全口令的方法來保證只有通過認證的用戶才能夠訪問Web服務(wù)。上個月我們著重看了一下W3C對于安全的方法。本月我們將重點關(guān)注OASISWeb服務(wù)安全的安全口令方法。
OASIS標(biāo)準(zhǔn)通常被當(dāng)做WS-*標(biāo)準(zhǔn)。WS代表Web服務(wù),星號被理解為具體標(biāo)準(zhǔn)尋找中的任何一方面。例如,安全標(biāo)準(zhǔn)都以由WS-Security標(biāo)準(zhǔn)出發(fā)的原則為基礎(chǔ),通常縮寫為WSS。
WS-Security提出一套SOAP擴展標(biāo)準(zhǔn)集,旨在允許安全的SOAP消息交換。該標(biāo)準(zhǔn)符合多種安全口令格式、信任域、安全簽名格式和加密技術(shù)。該標(biāo)準(zhǔn)提供三個主要的構(gòu)建,從而構(gòu)建成OASIS基于口令安全的基礎(chǔ),即消息完整性、消息保密性和將安全口令并入消息的能力。OASIS網(wǎng)站提供一些重要的安全口令標(biāo)準(zhǔn)文件的鏈接,包括Kerberos和SAML。
OASIS的其他標(biāo)準(zhǔn)都以最高的WS-Security標(biāo)準(zhǔn)為基礎(chǔ),構(gòu)建出Web服務(wù)安全堆棧。WSS是地基。在這上面創(chuàng)建WS-Trust、WS-SecureConversation和WS-SecurityPolicy。最頂層的是SAML。
WS-Trust是第一個創(chuàng)建完整的WSS,它對WS-Security規(guī)范提供了一些擴展,專門處理有關(guān)安全口令的發(fā)布、整新和驗證,確保各方的互操作處在一個可信任的安全數(shù)據(jù)交換環(huán)境中。
通過創(chuàng)建和維護信任規(guī)則以及安全口令創(chuàng)建和交換規(guī)則,Web服務(wù)會更加安全。但是系統(tǒng)中仍有漏洞。WS-SecureConversation被引入,利用安全內(nèi)容概念協(xié)助填補WS-Security和WS-Trust之間的縫隙。根據(jù)WS-SecureConversation 1.3 OASIS標(biāo)準(zhǔn),“安全內(nèi)容是指引用確立的認證狀態(tài)和協(xié)商密鑰追加安全相關(guān)的性能的一種抽象概念。”
WS-SecurityPolicy標(biāo)準(zhǔn)連接WSS和相關(guān)的標(biāo)準(zhǔn)到WS-Policy框架,這也是WS-*如何服從于Web服務(wù)表達限制和需求的體現(xiàn)。WS-SecurityPolicy為所有其余WS-*安全標(biāo)準(zhǔn)的使用定義了策略斷言,確保提供必要信息來決策Web服務(wù)交互性,保障各種Web服務(wù)安全協(xié)議之間的模塊性。
在所有WS-*安全標(biāo)準(zhǔn)頂層,OASIS主張SAML,安全斷言標(biāo)記語言。SAML關(guān)注多種域中的單點登錄(SSO),提供基于屬性的認證,也為Web服務(wù)提供了更好的安全性。為了確保多種域中的單點登錄,SAML方法命令服務(wù)提供者以來神人提供者。委托人和用戶用身份提供者登記來管理其安全身份。第三方身份提供者系統(tǒng)在cookies上更具優(yōu)勢,要求一對一的Web應(yīng)用關(guān)系。
通過從Web服務(wù)提供者解耦身份管理任務(wù),SAML確保終端用戶可以登陸,獲取多種服務(wù)訪問,因為,每一種服務(wù)將重新檢閱身份提供者。這種解耦也允許基于屬性的認證,身份提供者可以維護用戶屬性信息,如用戶在組織中的職位。這些屬性隨后由Web應(yīng)用用來進行認證決策。SAMl同時和SOAP消息一起為Web服務(wù)提供安全。因此,SAML在WS-Security框架中充當(dāng)安全口令提供者。