PostgreSQL RADIUS 認(rèn)證

2021-08-31 15:13 更新

這種認(rèn)證方法的操作類似于password,不過它使用 RADIUS 作為密碼驗證方式。RADIUS 只被用于驗證 用戶名/密碼對。因此,在 RADIUS 能被用于認(rèn)證之前,用戶必須已經(jīng)存在于數(shù)據(jù)庫中。

當(dāng)使用 RADIUS 認(rèn)證時,一個訪問請求消息將被發(fā)送到配置好的 RADIUS 服務(wù)器。 這一請求將是Authenticate Only類型,并且包含參數(shù)user name、password(加密的)和NAS Identifier。 該請求將使用一個與服務(wù)器共享的密鑰加密。 RADIUS 服務(wù)器將對這個請求響應(yīng)Access Accept或者Access Reject。不支持RADIUS accounting。

可以指定多個RADIUS服務(wù)器,這種情況下將會依次嘗試它們。如果從一臺服務(wù)器接收到否定響應(yīng),則認(rèn)證失敗。 如果沒有接收到響應(yīng),則將會嘗試列表中的下一臺服務(wù)器。要指定多臺服務(wù)器,可用雙引號括住列表并用逗號將服務(wù)器名稱分開。 如果指定了多臺服務(wù)器,其他RADIUS選項也可以用逗號分隔的列表給出,用來為每臺服務(wù)器應(yīng)用個別的值。 它們也可以指定為單個值,這種情況下該值將被應(yīng)用到所有的服務(wù)器。

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

radiusservers

連接到 RADIUS 服務(wù)器的DNS名稱或IP地址。此參數(shù)是必需的。

radiussecrets

和 RADIUS 服務(wù)器秘密交談時會用到共享密鑰。這在 PostgreSQL 和 RADIUS 服務(wù)器之間必須有完全相同的值。我們推薦用一個至少 16 個字符的字符串。這個參數(shù)是必需的。

注意

如果PostgreSQL編譯為支持OpenSSL,所用的加密向量將只是強(qiáng)密碼。在其他情況下,到 RADIUS 服務(wù)器的傳輸應(yīng)該被視為應(yīng)該被視為被混淆的、不安全的。如有必要,應(yīng)采用外部安全措施。

radiusports

連接 RADIUS 服務(wù)器的端口號。如果沒有指定端口,則使用默認(rèn)RADIUS端口1812

radiusidentifiers

在 RADIUS 請求中字符串被用作NAS Identifier。 這個參數(shù)可以被用于識別用戶嘗試連接哪些數(shù)據(jù)庫集群,可以被用于 RADIUS 服務(wù)器上的策略匹配。 如果沒有指定標(biāo)識符,默認(rèn)使用postgresql

如果RADIUS參數(shù)值中需要有逗號或者空格,可以通過雙引號括住該值來完成,但這樣做是比較繁瑣的因為需要兩層雙引號。 將空格放到RADIUS秘密字符串的一個示例為:

host ... radius radiusservers="server1,server2" radiussecrets="""secret one"",""secret two"""

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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號