Аутентификация SCRAM в PostgreSQL позволяет серверу убедиться, что клиент знает правильный пароль, а клиенту — проверить, что сервер тоже знает правильный пароль. www.crunchydata.com При этом реальный пароль не передаётся, даже в хэшированном формате. www.crunchydata.com
Аутентификация SCRAM срабатывает в PostgreSQL при выполнении трёх условий: dev.to
- Пароль пользователя хранится в формате scram-sha-256. dev.to
- Пользователь зарегистрировал пароль (квалификационные данные) в базе данных. dev.to
- Метод аутентификации, выбранный в pg_hba.conf, — либо scram-sha-256, либо md5. dev.to
Процесс аутентификации включает несколько шагов: pangolin.sbertech.ru www.postgresql.org
- Сервер отправляет сообщение AuthenticationSASL. pangolin.sbertech.ru www.postgresql.org Оно содержит список механизмов аутентификации SASL, которые сервер может принять, в предпочтительном для сервера порядке. pangolin.sbertech.ru www.postgresql.org
- Клиент выбирает один из поддерживаемых механизмов из списка и отправляет серверу сообщение SASLInitialResponse. pangolin.sbertech.ru www.postgresql.org В нём указано имя выбранного механизма и необязательный начальный ответ клиента, если выбранный механизм его использует. pangolin.sbertech.ru www.postgresql.org
- Далее следует одно или несколько сообщений с вызовом сервера и ответом клиента. pangolin.sbertech.ru www.postgresql.org Каждый вызов сервера отправляется в сообщении AuthenticationSASLContinue, за которым следует ответ клиента в сообщении SASLResponse. pangolin.sbertech.ru www.postgresql.org
- Когда обмен аутентификацией успешно завершён, сервер отправляет сообщение AuthenticationSASLFinal, за которым сразу же следует сообщение AuthenticationOk. pangolin.sbertech.ru www.postgresql.org
Аутентификация SCRAM с привязкой к каналу (SCRAM-SHA-256-PLUS) поддерживается в сборках PostgreSQL с поддержкой SSL. pangolin.sbertech.ru www.postgresql.org