对于使用双跳身份验证到 SQL 服务器的反向代理 IIS 站点,除了 HTTPS + 基本身份验证之外的任何其他选项

对于使用双跳身份验证到 SQL 服务器的反向代理 IIS 站点,除了 HTTPS + 基本身份验证之外的任何其他选项

我们已经努力了一段时间,我以为这将是一个相对常见的工作场景,并会很感激任何指点。

我们有 2 台 Windows 2012 服务器正在运行

  • IIS 服务器
  • SQL 服务器 2012

我们已设置 Kerberos 委派,并已从 IIS 服务器运行到 SQL Server。用户通过 IIS 进行身份验证,然后这些身份验证将传递到 SQL Server,以便使用委派执行任何操作

在 IIS 上设置 Negotiate(Kerberos 然后 NTLM)并在内部访问站点时,一切正常,但是当我们尝试将站点置于反向代理(Sonicwall SRA)后面时,它就会中断。

经过一些调查,似乎这是因为 Kerberos 身份验证在反向代理后面不起作用,所以我们需要切换到基本(因为 NTLM 不适用于 IIS 和 SQL 服务器之间的委派)。

那么在这种情况下最佳做法是使用 HTTPS 来保护基本身份验证,或者有没有办法让 Negotiate(kerberos)正常工作?

需要使用 Basic 确实看起来很奇怪,因为

  • Kerberos 不能在反向代理后面使用,并且
  • NTLM 不能用于委派

但或许事实就是如此。

相关内容