我们有一个部署了 Web 应用程序的 Web 服务器(带有 ASP.NET 的 IIS)。Web 应用程序的用户可以使用它来上传文件。Web 应用程序需要使用 Windows 共享将文件保存到另一台服务器。病毒扫描引擎然后访问 Windows 共享以扫描上传的文件中的病毒。Windows 共享位于病毒扫描机器上。
问题:Web 服务器和病毒扫描机器都不在同一个域中。事实上,它们根本不属于任何域。因此,很难设置共享以便 Web 服务器可以对其进行写入。
在网络服务器和病毒扫描机上的共享之间建立信任关系以便网络服务器可以写入病毒扫描机上的共享的最佳方法是什么?
(PS Web 应用程序作为 NETWORK SERVICE 运行 - 这也可以更改。)
这是您可以做到的一种方法:
编辑:
我从未使用过 sparks 在他的回答中提到的“模拟”功能。我认为这无论如何都不会做你想做的事,因为独立机器无法模拟来自另一台独立机器(或模拟机器不是其成员的域)的帐户)。
如果您希望 Web 服务器机器对病毒扫描机器进行身份验证访问,您需要病毒扫描机器上的一个帐户,该帐户对共享和共享所在的文件系统具有适当的权限。
应用程序在执行写入操作时需要使用正确的凭据连接到共享。
鉴于 Web 服务器将无法使用来自病毒扫描机器的凭据运行 IIS 进程,您可能需要修改应用程序以支持您所描述的经过身份验证的访问。我建议使用除普通旧 SMB 以外的其他东西用于 .NET 应用程序,因为 API 支持显式指定凭据有点缺乏。FTP 或 SSH 可能很合适。
或者,根据您的安全要求,您可以只允许匿名只写访问病毒扫描共享并让 Web 服务器在未经身份验证的情况下与其通信,从而摆脱困境。您可以使用防火墙规则或其他机制来限制此处的公开允许匿名访问。