【问题标题】:Is there a way to secure a web service without modifying the methods of the service?有没有办法在不修改服务方法的情况下保护 Web 服务?
【发布时间】:2011-03-24 08:25:11
【问题描述】:

我们有一些现有的网络服务需要某种基本的安全措施,以防止未经授权的第三方对服务进行调用。

如果可能,最好完全避免更改服务。就像在服务方法中添加额外的参数来为每次调用传递一个令牌一样。

一个想法(如果可能的话)是有一个 IIS 模块,它拦截对服务的所有调用并检查标头中的令牌。当令牌正确时,它允许请求通过或以其他方式取消它。这样第三方只需要在我们给他们他们的密钥后传递一个额外的 http 标头字段,我们根本不需要更改服务。

这引发了以下问题:

甚至可以使用托管 IIS 模块来执行此操作吗? (或必要时不受管理)。如果是这样,在使用 WCF 或 Visual Studio 中的 Web 引用连接到 Web 服务时传递额外的标头字段有多难。

如果有其他选项,如果它们符合我的要求,我想听听。谢谢。

【问题讨论】:

    标签: .net web-services iis


    【解决方案1】:

    您可以使用基本/摘要/Windows 身份验证。您可以在 IIS 中进行设置。使用起来相当琐碎。微软有一个run-through post on this here。这在 Visual Studio 中很容易设置。

    有关使用此方法保护 Web 服务的更多深入信息和step-by-step instructions in this 15 seconds article。

    这些都不需要您更改网络服务本身。但这些只提供基本的安全性。正如另一位用户所建议的,使用 SSL 可以提供更高级别的安全性,但需要 Web 服务在其自己的(子)域或应用程序中运行。

    如果您最终确实考虑更改您的网络服务并为其添加身份验证,请考虑阅读this CodeProject article。

    【讨论】:

      【解决方案2】:

      通过 SSL 进行客户端身份验证可能会解决您的问题。无需修改您的 Web 服务,但客户端需要 SSL 证书才能使用它。见http://msdn.microsoft.com/en-us/library/aa292114%28v=vs.71%29.aspx

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-04-17
        • 2011-12-26
        • 2012-08-09
        • 2018-06-24
        • 1970-01-01
        • 1970-01-01
        • 2010-10-01
        • 1970-01-01
        相关资源
        最近更新 更多