С методом scram-sha-256 выполняется аутентификация SCRAM-SHA-256, как описано в RFC 7677. Пароли баз данных PostgreSQL отделены от паролей пользователей операционной системы. Управление ими производится при помощи SQL-команд или psql.
1.Открыть файл /etc/postgres/N/main/postgresql.conf:
sudo vi /etc/postgres/N/main/postgresql.conf
2. Установить следующее значение в файле:
password_encryption = scram-sha-256
3. Открыть файл /var/lib/postgresql/N/pg_hba.conf:
/var/lib/postgresql/N/pg_hba.conf
Заменить в файле значения c md5 на scram-sha-256. Пример корректно заполненного файла:
4. Перезагрузить сервер:
sudo systemctl restart postgresql.service
или же сделать это командой:
sudo service postgresql restart
5. Переключиться на пользователя postgres:
sudo -u postgres psql
Проверить, что новое значение задано правильно, выводом команды:
SHOW password_encryption;
6. После предыдущих шагов необходимо сменить все пароли:
\password <user>
7. Выполнить скрипт, чтобы убедиться, что поля пользователей не содержат хешированных паролей MD5:
SELECT rolname, rolpassword FROM pg_authid WHERE rolcanlogin;
8. Если пароль пользователя idp был изменен, то также необходимо заменить его в conf.toml или conf.json (в директории /otp/idp/).
Если пароль остался прежним, то следует перезапустить FAM-сервер:
sudo systemctl restart idp.service