【问题标题】:Setting up a secure Web Service设置安全的 Web 服务
【发布时间】:2011-06-20 16:29:59
【问题描述】:

我需要设置一个网络服务。服务器在 DMZ 中,所以我考虑将 Web 服务放在 IIS (asmx) 中,因为只有端口 80 可用于通信。但它提供的信息应该是安全的。当谈到 .NET/IIS 可以提供什么时,我有哪些选择?

或者也许我应该放弃 asxm web 服务并切换到其他东西。但是再一次,我只有 80 端口可用。

谢谢, 帕维尔

【问题讨论】:

  • 我相信你可以使用 WCF 做到这一点,但没有办法用旧的 ASMX 服务做到这一点。
  • 谢谢。因此,即使我在端口 80 上运行 IIS,我也能够使用 WCF 并将绑定配置到 HTTP 端口 80?
  • You can run WCF inside IIS。请记住,网络服务are exposed as endpoints 仅仅意味着公开一个可以找到网络服务的地址。

标签: web-services iis asmx wcf-security security


【解决方案1】:

您应该检查 WCF

在保护 Web 服务方面,您必须了解主要操作路径:

  • 通过 HTTPS 进行通信,并以纯文本形式保留 Web 服务消息(没问题,因为数据通过 HTTPS 并且您看不到内部):传输级安全性;
  • 通过 HTTP 进行通信,但要保护 Web 服务的消息(WS-Security 适合此角色):消息级别的安全性。

WS-* 规范不是一件容易理解的事情(特别是 WS-Security,它依赖于其他规范,如 WS-Policy、WS-Addressing、XML 签名、XML 加密等)。但是,既然您说您只有端口 80 可用于通信,我认为您别无选择(甚至不要考虑实现自己的安全机制:D)。

因此,如果您必须使用 WS-Security,请选择 WCF。你有a bunch of communication mechanism you can choose from,WCF 为你承担了很多繁重的工作,抽象出 SOAP 和 WS-* 的“裸机”。

【讨论】:

    【解决方案2】:

    在 IIS 中,如果您希望只允许特定 IP 地址访问 Web 服务,请执行以下操作:

    1. 在 IIS 中,右键单击扩展名为 asmx 的文件。点击“切换到功能视图”
    2. 单击“IP 地址和域限制”图标。
    3. 点击“编辑功能设置”,选择全部拒绝,添加允许条目。

    4. 输入您希望服务访问的 IP。

    【讨论】:

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