此身份驗證方法的操作方式與 password
類似,不同之處在於它使用 RADIUS 作為密碼驗證方法。RADIUS 僅用於驗證使用者名稱/密碼對。因此,使用者必須已存在於資料庫中,才能使用 RADIUS 進行身份驗證。
使用 RADIUS 身份驗證時,將會傳送一個 Access Request 訊息到已設定的 RADIUS 伺服器。此請求的類型將為 Authenticate Only
,並且包含 user name
、password
(已加密) 和 NAS Identifier
的參數。該請求將使用與伺服器共享的金鑰進行加密。RADIUS 伺服器將使用 Access Accept
或 Access Reject
回應此請求。目前不支援 RADIUS 帳務。
可以指定多個 RADIUS 伺服器,在這種情況下,它們將依序嘗試。如果從伺服器收到否定回應,身份驗證將會失敗。如果沒有收到任何回應,將會嘗試清單中的下一個伺服器。若要指定多個伺服器,請用逗號分隔伺服器名稱,並用雙引號括住清單。如果指定了多個伺服器,其他的 RADIUS 選項也可以給定為逗號分隔的清單,以便為每個伺服器提供個別的值。它們也可以指定為單一值,在這種情況下,該值將適用於所有伺服器。
RADIUS 支援下列組態選項
radiusservers
要連接的 RADIUS 伺服器的 DNS 名稱或 IP 位址。此參數為必填。
radiussecrets
與 RADIUS 伺服器安全通訊時使用的共享金鑰。這必須在 PostgreSQL 和 RADIUS 伺服器上具有完全相同的值。建議這是一個至少 16 個字元的字串。此參數為必填。
只有在 PostgreSQL 建置時支援 OpenSSL,所使用的加密向量才具有密碼學上的強度。在其他情況下,傳輸到 RADIUS 伺服器的資料只能被視為混淆,而不是安全的,如有必要,應採取外部安全措施。
radiusports
要連接到 RADIUS 伺服器的連接埠號碼。如果未指定連接埠,將使用預設的 RADIUS 連接埠 (1812
)。
radiusidentifiers
要在 RADIUS 請求中用作 NAS Identifier
的字串。例如,此參數可用於識別使用者嘗試連線的資料庫叢集,這對於 RADIUS 伺服器上的策略比對非常有用。如果未指定識別碼,將使用預設的 postgresql
。
如果需要在 RADIUS 參數值中使用逗號或空白,可以將值用雙引號括起來,但這很麻煩,因為現在需要兩層雙引號。將空白放入 RADIUS 金鑰字串的一個例子是
host ... radius radiusservers="server1,server2" radiussecrets="""secret one"",""secret two"""
如果您在文件中看到任何不正確、與您使用特定功能的經驗不符或需要進一步澄清的地方,請使用此表單來回報文件問題。