我们在 Windows 服务中有一个带有 netTCPBinding 的 WCF 服务,该服务连接到 ContentManager 服务器以上传文档并添加一些元数据,检索 documentID 并将其传递给 .Net 应用程序,使用 Windows 身份验证对客户端进行身份验证。我们编写了一个 WCF 客户端库,以供其他业务线应用程序用作代理,这些应用程序只想通过引用此 dll 来上传文档。只要客户端应用程序位于 Intranet 域内,所有这些都可以正常工作。
现在需要通过通过手机访问的 Web 应用程序使用此服务,移动应用程序访问旧版 asmx Web 服务,该服务引用代理以连接到 WCF 服务,该服务反过来与另一个后端 wcf 服务通信并上传到内容管理器,asmx webservice托管在DMZ当前域之外的服务器中,公司域和DMZ之间没有信任,我们在两台服务器上都打开了必要的端口,但由于客户端凭据类型是windows,它会抛出“远程服务器不满足相互认证要求。” 这是预期的。现在我们想使用 nettcpbinding 显然是出于性能考虑,因为文档是通过手机从远程位置扫描和发送的,而且几乎没有时间重写这不是一个选项。
我的问题是
- 对于我上面提到的场景,使用证书对客户进行身份验证是正确的方法吗?
- 我应该如何处理安全性,现在几乎所有操作都使用声明性模拟,如果我必须更改安全性,我该如何在不影响使用该服务的其他应用程序的情况下做到这一点。
我以前没有处理过证书,因此有关该场景的指导也将有很大帮助。