此身份驗證方法與 password
類似,不同之處在於它使用 RADIUS 作為密碼驗證方法。 RADIUS 僅用於驗證使用者名稱/密碼配對。 因此,使用者必須已經存在於資料庫中,才能使用 RADIUS 進行身份驗證。
使用 RADIUS 身份驗證時,將向配置的 RADIUS 伺服器發送一個 Access Request 訊息。 此請求的類型為 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"""
如果您在文件中發現任何不正確、與您使用特定功能的經驗不符或需要進一步說明的內容,請使用此表單報告文件問題。