一台需要在登录界面就能访问管理服务器的笔记本,和一台需要在用户通过身份验证后访问文件共享的笔记本,是两个不同的问题。Windows 用两条不同的隧道来解决,区别并不在于哪一条出现在配置文件列表里。设备隧道以计算机身份运行,早于任何人登录。用户隧道以人的身份运行,要等平台有了可用的身份之后。在两者之间做选择,起点是流量必须在什么时候通达,而不是它必须到达哪些资源。

两种身份,两个时点

设备隧道在计算机上下文中建立,因此它可以承载验证用户身份所需的流量,或让管理代理在登录之前上报。用户隧道在用户上下文中建立,发生在登录之后,使用该用户的凭据以及适用于该账户的策略。

这个时间差就是整个设计。其余一切都由此推导而来,包括哪些身份验证方法可用、哪些资源才有意义。

如果需求是已登录人员使用的业务应用,用户隧道就能满足。如果需求是登录界面即可访问的域控制器、证书颁发机构或管理服务,只有设备隧道足够早。

电话簿不是那条分界线

把本机配置文件保存到所有用户的电话簿,并不会创建设备隧道。配置文件对计算机上的每个用户都可用,这属于存储范围的问题,而它仍然以用户上下文连接。

真正的设备隧道就按设备隧道来配置,要满足 Microsoft 为其记录的平台、协议和证书要求。这些要求包括 支持该功能的版本、已加入域的计算机、IKEv2 以及计算机证书身份验证。从用户隧道复制过来、只改了名字的 device 配置文件,一条都不满足。

Microsoft 的设备隧道文档是配置文件形态的参考,在假定可用的用户配置文件能够复用之前,值得先读一读。

让每条路径保持狭窄

设备隧道只应到达计算机在登录前需要的东西:目录、证书颁发机构、管理终结点,以及解析它们的 DNS 记录。它的路由和防火墙规则应当体现这份短清单,而不是整个企业网段。

用户隧道承载这个人的访问权限,可以按部署需要按组、应用或目的地收窄。把两种范围混在一起,正是登录前隧道获得文件共享访问权的由来,而任何计算机账户都不该拥有这种访问权。

两条隧道可以一起部署,而且大多数 Always On 设计就是这么做的。设备隧道先建立并保持狭窄。用户隧道在登录时建立,承载工作流量。如果只部署一条,就要决定你能接受哪一种失败。没有网络的登录界面和承载管理流量的用户隧道都不好,但通常在你的环境中只有一种可以接受。

要测阶段,不是测浏览器

登录后浏览器请求成功,只能证明用户隧道,说明不了设备隧道。分别测试各个阶段:从冷启动到登录界面、登录本身、用户连接,以及睡眠或网络变化之后的恢复。

在登录界面上,要检查的是没有任何用户登录时,计算机能否到达管理终结点。这是设备隧道唯一单独存在的时刻,也正是人们会跳过的那一步,因为测试它需要重启。

登录之后要单独检查用户隧道,包括设备隧道已建立但用户隧道失败的情形。两条隧道各有两种状态,会产生四种组合,其中只有一种看起来是健康的。

出故障时,先点名是哪条隧道

计算机证书续期和用户账户恢复是不同负责人负责的不同工作。证书过期后失效的设备隧道,重置用户凭据修不好;改密码后失效的用户隧道,重新签发计算机证书也修不好。

记录当时哪条隧道处于活动状态、用了哪种身份、在哪一阶段失败,然后与所用版本和管理环境的既有要求对照。照抄一份旧的通用 VPN 向导,正是部署最后变成只有管理员才能用的设备隧道的原因。

工作顺序是:点明流量必须在何时通达,选择那一刻存在的隧道,收窄它的路由,分别测试生命周期的每个阶段,并把两种身份的恢复流程分开。

相关文章