解决跨域 SQL Server 连接中的 Kerberos 与 NTLM 身份验证问题

问题描述 投票:0回答:1

我在多域 Microsoft SQL Server 设置中遇到 Kerberos 身份验证问题。以下是我的配置详细信息:

  1. Microsoft SQL Server 托管在属于 Windows Active Directory
    xyz.com
    域的服务器上。
  2. Host1,也在
    xyz.com
    域中。
  3. Host2,Windows Active Directory
    abc.com
    域的一部分,与
    xyz.com
    具有双向信任关系。
  4. 单独的 DNS 服务器将 SQL Server 端点 A 记录注册为
    sqlserver-instance.differentdomain.com
  5. 我在
    MSSQLSvc/sqlserver-instance.differentdomain.com
    域中注册了服务主体名称 (SPN)
    xyz.com
  • 从Host1上的SSMS连接到sql server,可以使用Kerberos身份验证连接到SQL Server。
  • 从 Host2 上的 SSMS 连接到 sql server,连接到 SQL Server 时默认使用 NTLM 身份验证而不是 Kerberos。

尽管如此配置,当 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 环境,或者是否有适合我的情况的替代方法?

sql-server active-directory ssms kerberos
1个回答
0
投票

尝试以下方法之一将域映射到正确的领域(注意:Kerberos 领域,而不是 AD 域;领域几乎总是大写,如

klist
中所示):

  1. 手册

    ksetup /addhosttorealmmap .differentdomain.com XYZ.COM

  2. 对应的组策略设置

在 Windows 中,通常不是客户端本身,而是客户端的 KDC 负责将服务域映射到 Kerberos 领域。 (客户端请求“本地”票证,并可能获得对另一个领域的引用。)因此,如果可能的话,我会尝试将此映射部署到域控制器而不是客户端计算机。

© www.soinside.com 2019 - 2024. All rights reserved.