【问题标题】:WCF service hosted on IIS and client website on IISIIS 上托管的 WCF 服务和 IIS 上的客户端网站
【发布时间】:2010-01-28 21:18:50
【问题描述】:

这是所需的设置:

  • 带有 wsHttpBinding 的服务位于防火墙后面的机器 1 上的 IIS 6 上。
  • 客户端是 DMZ 上机器 2 上 IIS 6 上的前端网站。

我们目前能够使用 Windows 身份验证对客户端进行身份验证,但使用模拟

<identity impersonate="true" userName="OurCompany\Me" password="Blahblahblah" />

因为网站会使用“ASPNET”作为用户名,而该用户名不在域中。

出于安全问题,我们现在想放弃这种方法;我们不想在 DMZ 上公开此类信息。

  1. 有什么方法可以在不使用的情况下正确进行身份验证 冒充客户端 配置?

  2. 如果我们改变了,我们使用 证书认证,会不会 影响服务操作 需要模仿(需要 模拟文件访问 例如网络)?

谢谢。

【问题讨论】:

    标签: asp.net wcf iis dmz impersonation


    【解决方案1】:

    这个问题现在已经解决了,我认为分享解决方案会很有建设性。

    就我最初的问题而言 - 它是否能够在不在配置或前端代码中明确设置的情况下进行模拟。如上所述,App Pool 方法确实有效,但前提是客户端和服务器都在同一个域中。

    由于位于 DMZ 中的网站客户端根本无法访问本地网络,这意味着我们无法模拟任何网络用户(这是我最初的问题中的一个缺陷,说模拟有效 - 实际上是不工作)。

    所以唯一的办法就是使用证书。由于这是内部通信,因此我使用 makecert 在每个服务器/客户端生成了一个测试证书。使用对等信任证书身份验证,我能够使客户端和服务器之间的通信正常工作。这将确保 DMZ 区域中不显示任何 Windows/网络用户帐户信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-04
      • 2012-07-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多