2009-02-17 77 views
7

我們正在尋求確保一堆ASP.Net 2.0 .asmx Web服務。將承載Web服務的內容已經通過了表單認證。
是否可以使用表單身份驗證來保護Web服務? 什麼是利弊和其他可能的方式來實現這一點。我們當然不希望在每個Web方法調用中傳遞用戶名/密碼或令牌。使用Forms Authentication可以保護Web服務嗎?

回答

5

表單身份驗證的事情是它爲人們設計的,其中Web服務被設計爲由客戶端應用程序使用。雖然可以像這樣進行認證,但這是錯誤的思維方式。

所需的安全級別顯然取決於您正在使用的數據的敏感性,但我會假設它至少有點敏感(但不及銀行交易)。你也許可以使用SSL並按照jle的建議傳遞用戶名和密碼,而我正在輸入這個密碼,或者你可能需要一個api密鑰,就像flickr一樣。

另一個更安全的選擇是隻傳遞一次用戶名和密碼(以及ssl的安全性),並給出有效期爲一段時間的令牌。這具有保護密碼信息的好處,並避免了ssl的不斷開銷。

正如前面提到的那樣,它高度依賴於您要保護的信息的敏感程度。

0

這是可能的,但您需要將用戶重定向到登錄頁面。另一個傳遞用戶名/密碼的選項是使用ssl上的Web服務。如果您加密連接,則可以使用基本身份驗證沒有問題。

0

你應該可以使用WSE來確保你的服務使用表單認證 - 雖然我個人從來沒有這樣做過。

下面是使用WSE一些資源:

要不要使用WSE你需要實現這樣的事情,因爲一些其他presponders已經提到,但我不確定它會有多可靠:

2

WSE已過時。除非你沒有選擇,否則不要使用它。

幾乎WSE的所有功能都由WCF更好地實現。剩下的功能,那些沒有被WCF實現的功能本身已經過時了(例如DIME)。