我在多域 Microsoft SQL Server 设置中遇到 Kerberos 身份验证问题。以下是我的配置详细信息:
xyz.com
域的服务器上。xyz.com
域中。abc.com
域的一部分,与 xyz.com
具有双向信任关系。sqlserver-instance.differentdomain.com
。MSSQLSvc/sqlserver-instance.differentdomain.com
域中注册了服务主体名称 (SPN) xyz.com
。尽管如此配置,当 Host2 尝试连接到
sqlserver-instance.differentdomain.com
时,它会使用 NTLM 而不是 Kerberos。
是否有一种解决方案允许 Host2 使用 Kerberos 身份验证连接到 SQL Server,同时维护端点 sqlserver-instance. differentdomain.com?此外,我还找到了有关使用 Java 应用程序领域配置 Kerberos 的指南(https://learn.microsoft.com/en-us/sql/connect/jdbc/using-kerberos-integrated-authentication-to-connect-to- sql-server?view=sql-server-ver16)。类似的方法是否可以应用于非 Java 环境,或者是否有适合我的情况的替代方法?
尝试以下方法之一将域映射到正确的领域(注意:Kerberos 领域,而不是 AD 域;领域几乎总是大写,如
klist
中所示):
手册
ksetup /addhosttorealmmap .differentdomain.com XYZ.COM
。
对应的组策略设置。
在 Windows 中,通常不是客户端本身,而是客户端的 KDC 负责将服务域映射到 Kerberos 领域。 (客户端请求“本地”票证,并可能获得对另一个领域的引用。)因此,如果可能的话,我会尝试将此映射部署到域控制器而不是客户端计算机。