統一安全服務體系結構的基本想法就是將系統的安全體系結構的復雜性遷移到所謂的統一安全服務層,因而使得系統的其他部分無須承擔任何的安全職責。
在統一安全體系結構中,由一個單獨的服務器來實現統一安全服務,在此服務器上可以找到所有的安全算法,該服務器是對所定義域進行鑒別的唯一場所。因此,統一安全的鑒別/注冊方法還有另外一個優點:即便一個用戶在一個特定域中同許多不同的安全元素相互作用,它只需要進行一次登錄。統一安全服務其本身可能就是一個Web service,這樣可以使得系統中其它子系統可以很方便的進行安全功能的集成。
被鑒別方首先調用統一安全服務來請求得到一個能夠在特定域中標識其自身的身份ID。為了能夠獲得這個身份ID,被鑒別的一方首先必須提供正確的鑒別資格信息。鑒別資格信息具有多種不同的形式:例如,可以是簡單的用戶名/口令或者證書,但是也可以采用別的方法。統一安全服務使用底層潛在的安全體系結構對用戶的資格信息進行驗證,然后才賦予用戶一個身份ID。
具體過程如下:
1:被鑒別方向統一安全服務發出登陸請求
2:統一安全服務返回被鑒別方身份ID
3:被鑒別方將應用請求與身份ID發往應用服務器
4:應用服務器將身份ID發往統一安全服務進行認證以及判權
5:統一安全服務返回認證以及判權結果
6:應用服務器根據返回的信息做出特定回應。
三、基于WS-Security實現傳輸信息安全
電子商務環境中,除了對交易者的身份信息需要認證和判權外,還對傳輸的內容的絕密性、完整性、不可否認性有很高的要求。由于web service 傳輸的是基于Soap協議的XML文本消息,為保證傳輸信息的絕密性、完整性、不可否認性,可以利用Web service security擴展機制來實現。
WS-Security 主要是一個用于基于 XML 的安全性元數據容器的規范。業界已經對網絡傳輸信息安全提出了許多解決方案。例如 Kerberos 和 X.509 用于身份驗證;X.509 還使用現有的 PKI 進行密鑰管理;XML 加密和 XML 簽名描述了 XML 消息內容的加密和簽名方法;XML 標準描述了為簽名和加密而準備 XML 的方法。WS-Security通過在現有規范中添加了一個架構,用于將這些機制嵌入到 SOAP 消息中。實現了一種與傳輸無關的安全擴展方式。
WS-Security 定義了一個用于攜帶安全性相關數據的 SOAP 標頭元素。如果使用 XML 簽名,此標頭可以包含由 XML 簽名定義的信息,其中包括消息的簽名方法、使用的密鑰以及得出的簽名值。同樣,如果消息中的某個元素被加密,則 WS-Security 標頭中還可以包含加密信息(例如由 XML 加密定義的加密信息)。WS-Security 并不指定簽名或加密的格式,而是指定如何在 SOAP 消息中嵌入由其他規范定義的安全性信息。
在基于WS-Security 擴展的Web Service中,Soap傳輸的不再是簡單的XML文本消息,而是實現了WS-Security擴展的XML文件,身份證書作為XML header中的一個屬性被用戶私鑰加密,傳輸的XML BODY內容也進行了數字簽名。應用端對客戶傳輸來的信息根據客戶用戶解密進行驗證,這樣就保證了信息來源的準確以及信息完整性、保密性。下面就是一個使用了WS-Security擴展的SOAP消息,里面使用了用戶令牌與數字簽名。