AD集成OpenVPN服务器用户无法连接到MS SQL Server

我有一个Windows 2008 R2域/林function级别的环境与OpenVPN接入服务器(v1.8.4.400)是Active Directory集成和工作顺利。 我一直在使用我们的DBA来简化权限过程,并决定通过AD用户帐户和/或AD组来实现对各种MS SQL数据库的访问。

我们创build了一个testing用户:[email protected],并使用DOMAIN \ dbtest将该帐户通过SQL Management Studio分配给适当的angular色。

然后,我们连接到OpenVPN框,authentication成功,但是当我们尝试连接到SQL数据库时,我们收到以下错误:

已更新(直接来自错误日志)

12/13/2013 08:00:02,Logon,Unknown,Login failed. The login is from an untrusted domain and cannot be used with Windows authentication. [CLIENT: 10.0.160.201] 12/13/2013 08:00:02,Logon,Unknown,Error: 18452<c/> Severity: 14<c/> State: 1. 12/13/2013 08:00:02,Logon,Unknown,SSPI handshake failed with error code 0x8009030c<c/> state 14 while establishing a connection with integrated security; the connection has been cclosed. Reason: AcceptSecurityContext failed. The Windows error code indicates the cause of failure. The logon attempt failed [CLIENT: 10.0.160.201] 12/13/2013 08:00:02,Logon,Unknown,Error: 17806<c/> Severity: 20<c/> State: 14. 

有没有办法知道通过VPN连接的远程计算机没有join域? 他们连接的帐户是域帐户。

提前致谢!

几年来,我们已经成功地使用了使用AD身份validation的SQL Server的OpenVPN-AS服务器。 我怀疑它可能有更多的OpenVPN连接的另一端的客户端系统 – 机器是join到VPN服务器所在的同一个域? 如果不是,它是否join了一个不同的领域,两者之间是否存在信任关系? 如果没有join任何域,即使您已经在客户端上创build了相同的用户名,仍然需要在连接到SSMS或任何您想要连接的客户端或程序时添加域信息,因为它将会试图通过默认情况下传递COMPUTERNAME \ dbtest而不是DOMAIN \ dbtest。

更新重新:评论

OpenVPN-AS服务器不应该修改如何传递域信息 – 我build议在任何一端快速捕获Wireshark,然后用SQL身份validation尝试来检查stream。 如果应用程序使用SSL,这可能会更困难,但您仍然可以看到传递的用户详细信息。 另外,如果您拥有应用程序的源代码,请检查它是否设置为在连接string中使用Integrated Security=SSPI而不是用户标识和密码。 根据SQL Server版本的不同,还可以在连接string中使用Trusted_Connection=True命令。 这个网站是一个很好的build设资源。

最后,如果应用程序通过ODBC连接而不是本地.NET连接器,则可以通过控制面板>pipe理工具区域中的Data Sources (ODBC)图标创build一个跟踪日志。

更新2

您可能需要将您的SQL Server设置为混合身份validation模式。 但是,我仍然会尽快运行Wireshark捕获,以更仔细地查看通过的内容。