20.11. Аутентификация RADIUS#

20.11. Аутентификация RADIUS

20.11. Аутентификация RADIUS

Этот метод аутентификации работает аналогично методу password, за исключением того, что он использует RADIUS в качестве метода проверки пароля. RADIUS используется только для проверки соответствия имени пользователя и пароля. Поэтому пользователь должен уже существовать в базе данных, прежде чем RADIUS может быть использован для аутентификации.

При использовании аутентификации RADIUS будет отправлено сообщение Access Request на настроенный сервер RADIUS. Это запрос будет иметь тип "Authenticate Only" и будет включать параметры для имени пользователя user name, пароля password (зашифрованного) и идентификатора NAS NAS Identifier. Запрос будет зашифрован с использованием общего секрета с сервером. Сервер RADIUS ответит на этот запрос либо Access Accept, либо Access Reject. Нет поддержки учета RADIUS.

Можно указать несколько серверов RADIUS, в таком случае они будут пробоваться последовательно. Если получен отрицательный ответ от сервера, аутентификация не будет выполнена. Если ответ не получен, будет пробоваться следующий сервер из списка. Чтобы указать несколько серверов, разделите их имена запятыми и заключите список в двойные кавычки. Если указано несколько серверов, другие параметры RADIUS также могут быть указаны в виде списков, разделенных запятыми, чтобы предоставить отдельные значения для каждого сервера. Они также могут быть указаны как одно значение, в таком случае это значение будет применяться ко всем серверам.

Поддерживаются следующие параметры конфигурации для RADIUS:

radiusservers

DNS имена или IP-адреса серверов RADIUS для подключения. Этот параметр обязателен.

radiussecrets

Общие секреты, используемые при безопасном общении с серверами RADIUS. Значение этого параметра должно быть точно таким же на серверах PostgreSQL и RADIUS. Рекомендуется, чтобы это была строка длиной не менее 16 символов. Этот параметр обязателен.

Примечание

Вектор шифрования будет криптографически надежным только если Tantor SE собран с поддержкой OpenSSL. В других случаях передачу на сервер RADIUS следует считать только затрудненной, а не защищенной, и при необходимости следует применять внешние средства безопасности.

radiusports

Номера портов для подключения к серверам RADIUS. Если порт не указан, будет использоваться порт RADIUS по умолчанию (1812).

radiusidentifiers

Строки, которые будут использоваться в качестве NAS Identifier в запросах RADIUS. Этот параметр может быть использован, например, для идентификации кластера баз данных, к которому пользователь пытается подключиться, что может быть полезно для сопоставления политик на сервере RADIUS. Если идентификатор не указан, будет использоваться значение по умолчанию postgresql.

Если необходимо включить запятую или пробел в значение параметра RADIUS, это можно сделать, заключив значение в двойные кавычки, но это неудобно, так как теперь требуется двойное экранирование. Примером включения пробела в строку секрета RADIUS может служить следующий пример:

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