我有一个 Windows 桌面应用程序(用 .NET 编写),已安装在 Windows Server 计算机上。由于它是一个桌面应用程序(不是 Web 应用程序),因此需要通过 RDP 访问服务器并直接与其交互来使用它。
现在我们有必要让特定用户使用该应用程序,但出于法律原因,我们不希望该用户能够访问应用程序文件(我的意思是应用程序的.exe 和.ddl 文件,基本上我们不希望用户能够复制该应用程序)。
这可能吗?
(在您询问之前:是的,我们目前正在将桌面应用程序转换为 Web 应用程序以解决此问题,但这将需要几个月的时间,同时我们需要暂时向几个特定用户提供对桌面版本的访问权限)
答案1
对于位于同一本地网络上的计算机,RemoteApp 是一项 Windows 技术,它允许发布应用程序,使其在 Windows Server 上运行,但看起来就像在用户桌面上运行一样,几乎就像本地应用程序一样。我过去曾使用过它,效果很好。
需要采取一些安全预防措施:
- 该应用程序实际上将在指定用户帐户下的服务器上运行
- 如果应用程序启动命令提示符,它将在指定的用户帐户下的服务器上运行,Windows 资源管理器也是如此
- 如果应用程序启动打开或保存文件对话框,则服务器上的帐户权限应阻止它离开其分配的磁盘文件夹。
有关其工作原理的更多信息,请参阅文章
如何在 Windows Server 2016 中逐步部署 RemoteApp。
答案2
应用程序以该用户身份运行时必须访问的任何内容也必然可被该用户访问。
您的选择是通过某种类型的数据丢失预防来实施额外的安全保护。
例如,您可以:
- 防止从服务器复制和粘贴文件
- 防止通过网络访问文件
- 阻止访问可能为用户提供将文件上传到站外的途径的互联网浏览器或其他应用程序。
- 防止访问 Windows 剪贴板,以便他们无法复制和粘贴代码。
- 阻止服务器上的互联网访问。
- 配置终端服务设置,以便应用程序在用户登录且无法访问桌面时自动运行。更多信息请参见:https://stackoverflow.com/questions/63022048/how-do-i-restrict-a-remote-desktop-user-to-a-single-application-on-windows-serve
- ETC。
您必须考虑并阻止用户可能用来复制或修改代码的任何途径,即使他们至少拥有文件的读取权限。它在远程桌面中运行的事实使这变得容易得多。