【问题标题】:Is it possible to secure a web service with Forms Authentication?是否可以使用表单身份验证来保护 Web 服务?
【发布时间】:2009-02-17 05:28:31
【问题描述】:

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

【问题讨论】:

    标签: asp.net web-services forms-authentication


    【解决方案1】:

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

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

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

        这是可能的,但您需要将用户重定向到登录页面。传递用户名/密码的另一个选项是通过 ssl 使用 Web 服务。如果你对连接进行加密,基本认证可以使用没有问题。

        【讨论】:

          【解决方案4】:

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

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

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多