SSPI 是一種 Windows 技術,用於安全地進行單一登入驗證。PostgreSQL 將在 negotiate
模式中使用 SSPI,該模式將在可能的情況下使用 Kerberos,並在其他情況下自動回復到 NTLM。SSPI 和 GSSAPI 作為客戶端和伺服器互相操作,例如,SSPI 客戶端可以驗證 GSSAPI 伺服器。建議在 Windows 客戶端和伺服器上使用 SSPI,在非 Windows 平台上使用 GSSAPI。
當使用 Kerberos 驗證時,SSPI 的運作方式與 GSSAPI 相同;有關詳細資訊,請參閱第 20.6 節。
以下配置選項支援 SSPI
include_realm
如果設定為 0,則從已驗證的使用者主體中剝離網域名稱,然後再通過使用者名稱對應(第 20.2 節)。不建議這樣做,並且主要用於向後相容性,因為在多網域環境中,除非也使用 krb_realm
,否則它並不安全。建議將 include_realm
設定為預設值 (1),並在 pg_ident.conf
中提供明確的對應,以將主體名稱轉換為 PostgreSQL 使用者名稱。
compat_realm
如果設定為 1,則網域的 SAM 相容名稱(也稱為 NetBIOS 名稱)用於 include_realm
選項。這是預設值。如果設定為 0,則使用 Kerberos 使用者主體名稱中的真實網域名稱。
除非您的伺服器在網域帳戶下執行(包括網域成員系統上的虛擬服務帳戶),並且所有通過 SSPI 驗證的客戶端也都使用網域帳戶,否則請勿停用此選項,否則驗證將失敗。
upn_username
如果啟用此選項以及 compat_realm
,則 Kerberos UPN 中的使用者名稱將用於驗證。如果停用它(預設值),則使用 SAM 相容的使用者名稱。預設情況下,對於新的使用者帳戶,這兩個名稱是相同的。
請注意,如果未指定明確的使用者名稱,libpq 會使用 SAM 相容的名稱。如果您使用 libpq 或基於它的驅動程式,您應保持此選項停用,或在連接字串中明確指定使用者名稱。
map
允許在系統和資料庫使用者名稱之間進行對應。有關詳細資訊,請參閱第 20.2 節。對於 SSPI/Kerberos 主體,例如 username@EXAMPLE.COM
(或較不常見的 username/hostbased@EXAMPLE.COM
),用於對應的使用者名稱為 username@EXAMPLE.COM
(或分別為 username/hostbased@EXAMPLE.COM
),除非 include_realm
已設定為 0,在這種情況下,username
(或 username/hostbased
)是進行對應時看到的系統使用者名稱。
krb_realm
設定要將使用者主體名稱與之匹配的網域。如果設定此參數,則只會接受該網域的使用者。如果未設定,則任何網域的使用者都可以連接,但須遵守所做的任何使用者名稱對應。
如果您在文件中發現任何不正確、與您使用特定功能的經驗不符或需要進一步說明的地方,請使用此表單來報告文件問題。