當我們談及 XML Web Service 時,人們最關心的問題就是其安全性。 XML Web Service 安全嗎? 要解決 XML Web Service 的安全性問題,我們需要考慮以下問題: 要達到什么樣的目的?- 僅允許授權用戶訪問 XML Web Service;禁止他人未經授權擅自查看消息等。 保護連接安全 讓我們先來回顧一下保護現有基礎結構的各種選擇,了解它們的功能。 保護基礎結構的安全 詳細了解潛在的環境危險(例如病毒、黑客和自然災害)。 如果您確切知道哪些計算機需要訪問您的 XML Web Service,則可以使用防火墻規則將訪問限制在已知 IP 地址的計算機范圍內。如果需要限制對專用網絡(例如公司的 LAN/WAN)中的計算機的訪問,并且不用擔心將消息內容保留為秘密(加密),那么這種技術非常有用。防火墻(例如 Microsoft Internet Security and Acceleration [ISA] Server)可以提供先進的基于策略的規則,這些規則可以根據客戶端的原始位置或標識,對不同的客戶端提供不同的限制。當不同的客戶端訪問相同 XML Web Service 上的不同功能(方法)時,這種技術很有用。 安全套接字層可用于在非托管網絡(例如 Internet)上建立安全連接。SSL 可以對客戶端和服務器之間發送的消息進行加密和解密。通過加密數據,您可以防止消息在傳送過程中被讀取。SSL 先對客戶端的消息進行加密,然后將其傳送到服務器。服務器接收到消息后,SSL 將對其進行解密并驗證消息是否來自正確的發送者(此過程稱為身份驗證)。服務器或者客戶端和服務器可能具有證書,這些證書用作身份驗證過程的一部分在連接加密的頂層提供身份驗證功能。雖然 SSL 是創建安全通信的一種非常有效的方法,但應當考慮其性能成本。Microsoft XML Web Service 既支持客戶端中的集成 SSL,也支持服務器中的集成 SSL。 虛擬專用網絡是專用網絡的擴展,它可以連接共享網絡或公共網絡(如 Internet)。VPN 使您可以在兩臺安全連接的計算機之間發送數據。VPN 與 SSL 相似,但 VPN 是一個長期的點對點連接。這使 VPN 可以高效安全地應用于 XML Web Service,但要求建立長期的連接并保持運行才能達到這種效果。 身份驗證和授權 授權:完成對當事者標識的身份驗證后,便可以進行授權了。服務器通過檢查有關當事者的某些訪問控制信息(例如訪問控制列表 [ACL])來確定訪問權限。客戶端可能具有不同的訪問級別。例如,某些客戶端可以完全訪問 XML Web Service;而其他客戶端則只能訪問某些操作。某些客戶端可以完全訪問所有數據,某些客戶端只能訪問數據的子集,而某些客戶端只能進行只讀訪問。 在 XML Web Service 中實現身份驗證的一個簡單而直接的方法是,利用信息交換所使用的協議的身份驗證功能。對于大多數 XML Web Service 來說,這意味著利用 HTTP 的身份驗證功能。將 Microsoft Internet Information Server (IIS) 和 ISA 服務器與 Windows 2000 服務器配合使用,能為 HTTP 提供多種身份驗證機制的集成支持。 基本身份驗證 - 使用客戶端的非安全或半安全標識,因為用戶名和密碼是以 base64 編碼文本發送的,而該文本易于解碼。如果憑據能與有效的用戶帳戶匹配,IIS 將授予客戶端訪問 XML Web Service 的權限。 在 XML Web Service 中進行身份驗證的其他方法包括:使用第三方服務(例如 Microsoft? .NET Passport 中的服務),使用 Microsoft ASP.NET 的會話功能,或者創建自定義身份驗證方法。 下一步:互操作性 為滿足這些需要并增強 XML Web Service 的互操作性,Microsoft 及其合作伙伴正在制定一套安全規范。該規范建立于 SOAP 規范的擴展性機制之上,提供集成至 XML Web Service 結構中的增強型安全保護功能。 這套安全規范的核心是 XML Web Service 安全語言 (WS-Security),它為 SOAP 消息提供了三種增強功能:憑據傳送、消息集成和消息保密。這些功能自身不能提供完整的安全保護解決方案;但 WS-Security 是一個構建塊,它可以與基礎結構和其他 XML Web Service 協議結合使用,以滿足各種應用程序的安全保護要求。Microsoft Global XML Web Service 體系結構是 WS-Security 和相關規范的主要內容,它為 XML Web Service 基礎結構的發展提供框架。 |
溫馨提示:喜歡本站的話,請收藏一下本站!