RDP 连接,浏览器和 RDP 客户端之间共享网关凭证

RDP 连接,浏览器和 RDP 客户端之间共享网关凭证

我们的部门负责提供课程,这些课程依赖于功能齐全的 Windows 域。我们把这些环境简称为 System1、System2 等。目的是为课程的学生提供远程桌面连接,以便他们可以连接到这些系统。从技术上讲,这只是与系统内任何服务器的 RDP 连接作为起点。我们把这些称为起点系统 1 网关系统 2 网关等等。

在这些系统之上,我们有一个部门的 Active Directory 域和一个完整的 Windows 远程桌面设置,我们将其称为主域。该主域有一台服务器充当远程桌面网关 (RDGW),同时还托管自定义 MVC5 网页。

如果用户参加课程并希望连接到其中一个系统,我们会为他们创建一个帐户,然后他们可以使用该帐户登录 MVC5 Web 应用程序,该应用程序显示有关所有课程的信息等。他们还可以下载预配置文件.rdp。此文件具有 Web 服务器,该服务器具有带有效 TLS 证书的公共域,也是远程桌面网关,并且目标是主域内的 IP 地址,该 IP 地址会将端口转发到其中一个 System X 网关(此设置必须如此,假设它是给定的)。

目前,此设置存在的问题是,用户必须首先使用其主域凭据(从他们自己的个人或公司计算机)登录网页。然后,他们下载文件.rdp,建立连接,然后输入相同的再次输入网关的凭据,因为凭据不在操作系统或浏览器之间共享。之后,他们还必须输入目标系统网关的凭据。我们可以预定义最终系统网关的用户名,但不能预定义密码,因为文件中的加密密码.rdp只有在使用本地 Windows 用户密钥创建加密时才能成功解密,而这当然是无法通过 Web 服务访问的。我们在这里所说的密码是来自目标系统的密码,它只是一个带有虚拟密码的训练系统,对此没有问题。安全来自远程桌面网关 (RDGW) 和针对我们主域的身份验证。

长话短说:这种提供多个凭证的方式让学生感到困惑,导致许多人根本无法连接。因此,我们希望改进流程,并尽可能简化流程。所以我的问题是:我们如何简化上述的连接建立?第一个值得欢迎的步骤是防止 RDGW 不再要求输入凭证。我们不希望用户安装任何东西(因为 Windows 上的 RDP 是预安装的,这是一种例外)。用户在可能没有任何权限的 PC 上运行。

到目前为止我们已经考虑或尝试过的事情:

  1. 如上所述,我们尝试至少合并目标系统的加密密码(由于它是一个训练/测试系统,因此它始终是一个简单的虚拟密码),但这种方法失败了,因为只有当目标系统的 Windows 系统在我们的域中时,这种方法才有效。但事实并非如此;理论上,客户端也可以是 Linux 系统。
  2. 我们尝试了.bat包含上述步骤的下载,但无法正常工作。由于它是在本地执行的,我们可以创建加密的哈希/令牌(无论它叫什么),.rdp即时创建,它就可以正常工作。但问题是,谁允许执行任意可执行文件?没有人。
  3. 我们尝试使用微软的 RD Web 服务。旧版本很糟糕,因为它使用 ActiveX,因此基于 HTML5 的新版本更受欢迎。好处是,它基本上在浏览器中提供了一个 RDP 客户端,但问题是它是为在主域内运行的服务创建的,而不是进一步转发到ip:port。也许有一种方法可以提取和托管 RDP 客户端代码,但那时如何配置它呢?
  4. 外部解决方案,例如默蒂尔或者鳄梨可能会有效,但似乎没有办法以编程方式告诉这些解决方案:与该网关建立 RDP 到目标ip:port,请使用网关的当前 Web Windows 登录凭据。

我们在这个问题上已经困扰了很长时间了。也许我们完全想多了。基本上,我们只想通过 Web 浏览器建立 RDP 连接,这样至少网关凭据是从已经建立的登录会话中获取的,因为域和网关的凭据当然是相同的。浏览器插件是不是这里有一个解决方案,我们想要 0 配置。

提前感谢所有的提示,我希望这篇长文能够让大家理解这个问题以及我们迄今为止所做的尝试。

相关内容