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 上的客户端网站的主要内容,如果未能解决你的问题,请参考以下文章
在 IIS 上托管的 ASP.NET Core WebApp 上提供持久配置
无法将 Azure VM 上托管的 WCF 服务引用添加到 VS2015 项目