20.11. Аутентификация RADIUS #
Данный метод аутентификации работает сходным с методом password
образом, за исключением того, что он использует RADIUS как метод проверки пароля. RADIUS используется только для подтверждения пары «имя пользователя/пароль». Поэтому пользователь должен уже существовать в базе данных до того, как для аутентификации будет использован RADIUS.
В ходе аутентификации RADIUS настроенному RADIUS-серверу посылается запрос доступа. Это сообщение типа Authenticate Only
(Только аутентификация), которое включает в себя параметры user name
(имя пользователя), password
(зашифрованный пароль) и NAS Identifier
(идентификатор NAS). Запрос зашифровывается с использованием общего с сервером секрета. RADIUS-сервер отвечает на этот запрос либо Access Accept
(Доступ принят), либо Access Reject
(Доступ отклонён). Система ведения учёта RADIUS не поддерживается.
Для данного метода можно указать адреса нескольких серверов RADIUS, тогда они будут перебираться по очереди. В случае получения от любого сервера отрицательного ответа произойдёт сбой аутентификации. Если ответ не будет получен, последует попытка подключения к следующему серверу в списке. Чтобы задать имена нескольких серверов, разделите их имена запятыми и заключите список в двойные кавычки. При этом все остальные параметры RADIUS должны указываться так же в списках через запятую, чтобы каждый сервер получил собственное значение. Возможно также задавать их единственным значением, тогда это значение будет применяться ко всем серверам.
Для метода RADIUS доступны следующие параметры конфигурации:
radiusservers
DNS-имена или IP-адреса целевых серверов RADIUS. Это обязательный параметр.
radiussecrets
Общие секреты, используемые при контактах с серверами RADIUS. Значение этого параметра должно быть одинаковым на серверах Postgres Pro и RADIUS. Рекомендуется использовать строку как минимум из 16 символов. Это обязательный параметр.
Примечание
Шифровальный вектор будет достаточно эффективен только в том случае, если Postgres Pro собран с поддержкой OpenSSL. В противном случае передача данных серверу RADIUS будет лишь замаскированной, но не защищённой, поэтому необходимо принять дополнительные меры безопасности.
radiusports
Номера портов для подключения к серверам RADIUS. Если порты не указываются, используется стандартный порт RADIUS (
1812
).radiusidentifiers
Строки, используемые в запросах RADIUS как
NAS Identifier
(Идентификатор NAS). Этот параметр может использоваться, например, для обозначения кластера БД, к которому пытается подключаться пользователь, что позволяет выбрать соответствующую политику на сервере RADIUS. Если никакой идентификатор не задан, по умолчанию используетсяpostgresql
.
Если в значении параметра RADIUS необходимо передать запятую или пробел, это можно сделать, заключив это значение в двойные кавычки, хотя это может быть не очень удобно, так как потребуются два уровня двойных кавычек. Например, так добавляются пробелы в строки секретов RADIUS:
host ... radius radiusservers="server1,server2" radiussecrets="""secret one"",""secret two"""