Active-Directory

如何為 Postgres SSPI 設置 SPN

  • March 1, 2021

我正在嘗試設置 Postgres 以支持 SSPI/Kerberos,但是我認為我還沒有找到讓它工作所需的正確 SPN。

背景詳情:

  • postgres 的服務帳戶:‘postgres’
  • 域名:’testdomain.com'
  • 域控制器:‘dc.testdomain.com’

我嘗試了以下 SPN 並且運氣為零:

  • setspn -A HOST/testdomain.com postgres
  • setspn -A HOST/testdomain postgres
  • setspn -A POSTGRES/testdomain.com postgres
  • setspn -A POSTGRES/testdomain postgres
  • setspn -A POSTGRES/dc.testdomain.com postgres

有人有什麼建議嗎?

SPN 不使用域和/或域控制器的名稱,它們使用將用於連接到服務的 FQDN。響應的 Web 伺服器的 SPNwww.domain.com將是HTTP/www.domain.com.

接下來,您需要將 SPN 分配給執行服務的使用者帳戶;如果服務作為域電腦執行LocalSystemNetworkService在域電腦上執行,那將是電腦的電腦帳戶;否則它是服務執行的實際使用者帳戶。

您的問題中缺少的是執行 Postgres 的伺服器的名稱;假設它是servername.testdomain.com,設置 SPN 的命令將是:

setspn -S POSTGRES/servername.testdomain.com postgres

或者(使用域 NetBIOS 名稱並假設它是TESTDOMAIN

setspn -S POSTGRES/servername.testdomain.com TESTDOMAIN\postgres

資料來源:

https://wiki.postgresql.org/wiki/Configuring_for_single_sign-on_using_SSPI_on_Windows

https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/cc731241(v=ws.11)

引用自:https://serverfault.com/questions/225428