7

我们正在寻求保护一堆 ASP.Net 2.0 .asmx Web 服务。将托管 Web 服务的已经是经过身份验证的表单。
是否可以使用表单身份验证来保护 Web 服务?实现这一目标的利弊和其他可能的方法是什么。我们当然不想在每个 Web 方法调用中传递用户名/密码或令牌。

4

4 回答 4

5

表单身份验证的特点是它是为人们设计的,其中 Web 服务被设计为由客户端应用程序使用。虽然可以像这样进行身份验证,但这是错误的思维方式。

所需的安全级别显然取决于您正在使用的数据的敏感性,但我将假设它至少有点敏感(但低于银行交易)。您也许可以使用 SSL 并按照 jle 的建议传递用户名和密码,而我正在输入此内容,或者您​​可能需要一个 api 密钥,就像 flickr 所做的那样。

另一个更安全的选择是只传递一次用户名和密码(并且具有 ssl 的安全性),并让它发出一个在一段时间内有效的令牌。这样做的好处是可以保护密码信息,并避免 ssl 的持续开销。

如前所述,这在很大程度上取决于您要保护的信息的敏感程度。

于 2009-02-17T05:39:56.567 回答
2

WSE 已过时。除非您别无选择,否则不要使用它。

几乎WSE的所有功能都被WCF更好地实现了。WCF 未实现的其余功能本身已过时(例如 DIME)。

于 2009-02-17T18:25:00.063 回答
0

这是可能的,但您需要将用户重定向到登录页面。传递用户名/密码的另一种选择是通过ssl使用 Web 服务。如果您加密连接,则可以使用基本身份验证没有问题。

于 2009-02-17T05:36:04.717 回答
0

您应该能够使用 WSE 使用表单身份验证来保护您的服务 - 尽管我个人从来没有这样做过。

以下是一些使用 WSE 的资源:

要不使用 WSE,您需要像其他一些预发者所暗示的那样实现类似的东西,尽管我不确定它有多可靠:

于 2009-02-17T05:43:38.600 回答