IIS 上托管的 WCF 服务和 IIS 上的客户端网站

Posted

技术标签:

【中文标题】IIS 上托管的 WCF 服务和 IIS 上的客户端网站【英文标题】:WCF service hosted on IIS and client website on 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】:

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

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

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

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

【讨论】:

以上是关于IIS 上托管的 WCF 服务和 IIS 上的客户端网站的主要内容,如果未能解决你的问题,请参考以下文章

WCF REST - 在 IIS 6 上托管的问题

在 IIS 上托管的 ASP.NET Core WebApp 上提供持久配置

无法将 Azure VM 上托管的 WCF 服务引用添加到 VS2015 项目

在 IIS 上托管 WCF 后出现“请求错误”

从 Windows 应用程序访问托管在 IIS 上的 WCF 服务时出现问题

从托管在 Linux 服务器上的 Java 客户端使用 WCF