我们有几个应用程序依赖于 Windows 身份验证 - 几个启用了 AD 身份验证的 Web 应用程序,我们通常使用 Windows 身份验证连接到我们的 SQL 服务器。这通常运行顺利。但如果我们通过 VPN 连接到客户端站点,效果就不太好。
安全管理系统
从开始菜单正常打开 SSMS,然后选择一个通常接受 Windows 身份验证的服务器,会出现一条消息:
登录失败。登录来自不受信任的域,无法与 Windows 身份验证一起使用。(.Net SqlClient 数据提供程序)
如果我进入命令提示符并使用runas /user:domain\user
启动 SSMS,我可以使用该 ssms 进程成功地对我们的 SQL 服务器实例进行 Windows 身份验证。
如果我查看任务管理器,ssms.exe 的两个副本(开始菜单与运行方式)都有相同的用户,并且我看不出 procexp 中的进程之间有明显的区别。
AD Auth 网站
如果我打开 IE 并浏览任何需要经过身份验证的 Windows 用户的网站,我都会收到“你是谁”提示,并且该对话框认为我就是 VPN 用户。但我可以单击“使用其他帐户”并以此方式进行身份验证。
外表
当我们使用 VPN 时,甚至 Outlook 也会提示输入用户名!
它影响了我们的 Win7 和 Vista 机器。我们已经有一段时间没有使用 XP 机器了,但我不记得在 XP 上出现过这个问题。
VPN 连接只是使用内置的 Windows VPN 连接,它们不是花哨的思科 VPN 或任何类似的东西。
有人知道如何告诉 Windows,在验证域中的资源时,我想成为我的普通旧主域用户而不是 VPN 用户吗?哎呀,如果我尝试访问需要客户端 VPN 资源的 Windows 身份验证,我会很高兴有一个解决方案提示我“你是谁”。
谢谢!
如果这更像是一个超级用户问题,我深表歉意,我不确定它最适合哪个网站。它与网络和基础设施有关,困扰着我们这里的所有开发人员,所以我希望这是一个 serverfault 问题。
答案1
我也遇到了同样的问题并在这里找到了解决方案:
您需要找到您的 VPN 连接 .pbk 文件。
你可以在这里找到它:
C:\Users\{WindowsLogin}\AppData\Roaming\Microsoft\Network\Connections\Pbk
或者如果您将其设置为允许所有用户使用该连接,您可以在这里找到它:
C:\ProgramData\Microsoft\Network\Connections\Pbk
使用文本编辑器编辑它并找到以下行:
UseRasCredentials=1
将其设置为 0 即可禁用
UseRasCredentials=0
答案2
我们为一些异地用户使用 Cisco VPN 软件。VPN 软件会提示输入凭据,查询 Active Directory 以确保用户名/密码正确,并且用户有权通过 VPN 登录。但成功的身份验证仅建立与网络的连接。对网络资源的访问依赖于您在登录时向工作站提供的身份验证。
这对我们来说是个问题,因为用户会使用缓存的凭据登录笔记本电脑,建立 VPN 连接,然后更改密码。然后他们会锁定域帐户,因为他们的用户令牌上有他们的旧凭据。从那时起,我们就建议这些用户在建立 VPN 隧道时更改密码后锁定和解锁他们的工作站。这会更新用户令牌,并允许他们使用更新后的凭据访问网络资源。