この認証方法は、RADIUSをパスワード検証として使用するという点を除いてpassword
と似た動作をします。
RADIUSはユーザ名/パスワードの組のみを検証するために使用されます。
よってユーザはRADIUSが認証に使用される以前にデータベースにすでに存在していなければいけません。
RADIUS認証を使用する場合に、設定されたRADIUSサーバにアクセスリクエストメッセージが送信されます。
このリクエストはAuthenticate Only
の形式になり、ユーザ名
, (暗号化された)パスワード
、NAS識別子
を含んでいます。
リクエストはサーバと共有している秘密を用いて暗号化されます。
RADIUSサーバは、このサーバに対してAccess Accept
もしくはAccess Reject
を返します。
RADIUSアカウントのサポートはありません。
複数のRADIUSサーバを指定することができ、その場合には各々が順に試行されます。 サーバから負の応答があると、認証は失敗します。 サーバから応答がない場合は、リスト内の次のサーバが試されます。 複数のサーバを指定するには、サーバ名を引用符の中に入れ、各々をカンマで区切ってください。 複数のサーバが指定されると、他のすべてのRADIUSオプションもカンマで区切って指定することが可能で、それぞれ各々のサーバに対して適用されます。 オプションは単一の値としても指定でき、その場合にはこの値がすべてのサーバに対して適用されます。
RADIUSのために次の設定オプションがサポートされています。
radiusservers
接続するRADIUSサーバの名称もしくはIPアドレス。 このパラメータは必須です。
radiussecrets
RADIUSサーバと安全なやり取りに使用される共有の秘密データ。 これはPostgreSQLとRADIUSサーバにおいて厳密に同じ値にする必要があります。 少なくとも16文字以上の文字列が推奨されます。 このパラメータは必須です。
使用されている暗号化ベクターはPostgreSQLがOpenSSLをサポートするよう構築している場合にのみ暗号論的に強力です。 他の場合にはRADIUSサーバへの伝送は難読化されているだけで安全ではなく、必要ならば外部のセキュリティ方法を適用すべきです。
radiusports
接続するRADIUSサーバのポート番号。
もしポート番号が指定されていない場合は、デフォルトポートである1812
が使用されます。
radiusidentifiers
RADIUSリクエスト内でNAS Identifier
として使用されている文字列。
ユーザがどのデータベースユーザに対して認証しようとしているか、RADIUSサーバにおいてポリシーを一致させるために何が使用されるか、
を識別するために、このパラメータは2番目のパラメータとして使用されます。
もし識別子が指定されていない場合は、デフォルトのpostgresql
が使用されます。