2008-10-02 43 views
21

我們在生產中使用SOAP Headers(包含普通客戶端憑證)進行身份驗證的SOAP Web服務。 WS用於與.NET/Java/PHP/Python/C++客戶端兼容的Web應用程序或桌面應用程序的異構環境中。Web服務身份驗證 - 最佳實踐?

我們正在考慮針對這些WS的v2,我想知道什麼被認爲是用於WS SOAP身份驗證的最佳實踐? (相當安全,但易於在各種平臺上處理)。

回答

15

在各種平臺上處理它的最簡單方法是對傳輸層使用HTTP基本認證和HTTPS。如果您的需求超出了簡單的用戶名/密碼,但WS-Security將會很好,但是平臺之間的支持會有所不同。每一個體面的SOAP實現都支持HTTP認證。

4

如果你必須自己推出並且不能使用HTTPS,我會建議WS-Security的基於散列的UsernameToken部分。只要你的庫具有散列函數,它就相當安全並且相當容易實現。

如果你正在做web服務,我不會依賴HTTP進行身份驗證。

WS-Security整體來說太大了。

+1

爲什麼不依賴現有的HTTP身份驗證,只有當您不能使用https時才這樣做? – Xailor 2011-03-01 19:20:22

2

我過去解決這個問題的方法是使用標準的WS- *功能。

代替使用認證功能,我們設置了消息頭完整性功能。這要求對話雙方都可以訪問公鑰/私鑰對,並檢測標題中用戶名字段的任何篡改。因此,您可以確定發送消息並設置用戶標識的人有權訪問私鑰。

這提供了合理的完整性級別,如果密鑰管理得當。