PostgreSQL SSPI 認證

2021-08-31 15:12 更新

SSPI是一種用于帶單點登錄的安全認證的Windows技術(shù)。 PostgreSQLnegotiate模式中將使用 SSPI,它在可能的情況下使用Kerberos并在其他情況下自動降回到 NTLM。只有在服務(wù)器和客戶端都運行著Windows時,SSPI才能工作?;蛘咴诜?Windows 平臺上GSSAPI可用時,SSPI也能工作。

當使用Kerberos認證時,SSPIGSSAPI的工作方式相同,詳見第 20.6 節(jié)。

下列被支持的配置選項用于SSPI

include_realm

如果設(shè)置為 0,在通過用戶名映射之前(第 20.2 節(jié)),來自已認證用戶 principal 的 realm 名稱會被剝離掉。我們不鼓勵這樣做,這種方法主要是為了向后兼容性而存在的,因為它在多 realm 環(huán)境中是不安全的(除非也使用krb_realm)。推薦用戶讓 include_realm 設(shè)置為默認值(1)并且在pg_ident.conf中提供一條顯式的映射來把 principal 名稱轉(zhuǎn)換成PostgreSQL用戶名。

compat_realm

如果被設(shè)置為 1,該域的 SAM 兼容名稱(也被稱為 NetBIOS 名稱)被用于include_realm選項。這是默認值。如果被設(shè)置為 0,會使用來自 Kerberos 用戶主名的真實 realm 名稱。

不要禁用這個選項,除非你的服務(wù)器運行在一個域賬號(這包括一個域成員系統(tǒng)上的虛擬服務(wù)賬號)下并且所有通過 SSPI 認證的所有客戶端也在使用域賬號,否則認證將會失敗。

upn_username

如果這個選項和compat_realm一起被啟用,來自 Kerberos UPN 的用戶名會被用于認證。如果它被禁用(默認),會使用 SAM 兼容的用戶名。默認情況下,對于新用戶賬號這兩種名稱是一樣的。

注意如果沒有顯式指定用戶名,libpq會使用 SAM 兼容的名稱。如果你使用的是libpq或者基于它的驅(qū)動,你應該讓這個選項保持禁用或者在連接字符串中顯式指定用戶名。

map

允許在系統(tǒng)和數(shù)據(jù)庫用戶名之間的映射。詳見第 20.2 節(jié)。 對于一個 GSSAPI/Kerberos 原則,例如username@EXAMPLE.COM (或者更不常見的username/hostbased@EXAMPLE.COM), 用于映射的用戶名會是username@EXAMPLE.COM(或者 username/hostbased@EXAMPLE.COM,相應地),除非 include_realm已經(jīng)被設(shè)置為 0,在那種情況下 username(或者username/hostbased)是 映射時被視作系統(tǒng)用戶名的東西。

krb_realm

設(shè)置領(lǐng)域為對用戶 principal 名進行匹配的范圍。如果這個參數(shù)被設(shè)置,只有那個領(lǐng)域的用戶將被接受。如果它沒有被設(shè)置,任何領(lǐng)域的用戶都能連接,服從任何已完成的用戶名映射。



以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號