Проверка подлинности SCRAM в Базе данных Azure для PostgreSQL (гибкий сервер)
ОБЛАСТЬ ПРИМЕНЕНИЯ: База данных Azure для PostgreSQL — гибкий сервер
Механизм проверки подлинности с ответом на соленый вызов (SCRAM) — это протокол взаимной проверки подлинности посредством пароля. Это схема ответа на вызовы, которая добавляет несколько уровней безопасности и предотвращает снижку паролей на ненадежные подключения. SCRAM поддерживает хранение паролей на сервере в криптографически хэшированной форме, которая обеспечивает повышенный уровень безопасности.
Примечание.
Чтобы получить доступ к гибкому экземпляру сервера База данных Azure для PostgreSQL с помощью метода проверки подлинности SCRAM, клиентские библиотеки должны поддерживать SCRAM. См. список драйверов, поддерживающих протокол SCRAM.
Примечание.
Проверка подлинности SCRAM накладывает дополнительную вычислительное нагрузку на серверы приложений, которые должны вычислить подтверждение клиента для каждой проверки подлинности. Общие сведения о нагрузке на производительность SCRAM могут быть устранены путем ограничения количества подключений в пуле подключений приложения (снижение общения в приложении) или ограничение количества одновременных транзакций, которые позволяет клиент (большие транзакции). Перед миграцией на проверку подлинности SCRAM рекомендуется протестировать рабочие нагрузки.
Настройка проверки подлинности SCRAM
Измените password_encryption на SCRAM-SHA-256. В настоящее время База данных Azure для PostgreSQL гибкий сервер поддерживает только SCRAM с помощью SHA-256.
Разрешите использовать SCRAM-SHA-256 в качестве способа проверки подлинности.
Внимание
Вы можете применить только проверку подлинности SCRAM, выбрав только метод SCRAM-SHA-256. Таким образом, пользователи, использующие проверку подлинности MD5, могут дольше подключаться к серверу. Поэтому перед применением SCRAM рекомендуется использовать MD5 и SCRAM-SHA-256 в качестве методов проверки подлинности, пока не обновите все пароли пользователей на SCRAM-SHA-256. Проверить тип проверки подлинности для пользователей можно с помощью запроса, указанного в шаге 7.
Сохраните изменения. Это динамические свойства и не требуют перезапуска сервера.
С База данных Azure для PostgreSQL гибкого клиента сервера подключитесь к База данных Azure для PostgreSQL гибкому экземпляру сервера. Например,
psql "host=myPGServer.postgres.database.azure.com port=5432 dbname=postgres user=myDemoUser password=<password> sslmode=require" psql (12.3 (Ubuntu 12.3-1.pgdg18.04+1), server 12.6) SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off) Type "help" for help.
Проверьте шифрование пароля.
postgres=> show password_encryption; password_encryption --------------------- scram-sha-256 (1 row)
Затем можно обновить пароль для пользователей.
postgres=> \password myDemoUser Enter new password: Enter it again: postgres=>
Проверить типы проверки подлинности пользователей можно с помощью функции
azure_roles_authtype()
.postgres=> SELECT * from azure_roles_authtype(); rolename | authtype ---------------------------+----------- azuresu | NOLOGIN pg_monitor | NOLOGIN pg_read_all_settings | NOLOGIN pg_read_all_stats | NOLOGIN pg_stat_scan_tables | NOLOGIN pg_read_server_files | NOLOGIN pg_write_server_files | NOLOGIN pg_execute_server_program | NOLOGIN pg_signal_backend | NOLOGIN replication | NOLOGIN myDemoUser | SCRAM-256 azure_pg_admin | NOLOGIN srtest | SCRAM-256 sr_md5 | MD5 (14 rows)
Затем можно выполнить подключение из клиента, который поддерживает проверку подлинности SCRAM на сервере.
Примечание.
Проверка подлинности SCRAM также поддерживается при подключении к встроенному управляемому PgBouncer. Приведенный выше учебник действителен для настройки подключения с помощью проверки подлинности SCRAM с помощью встроенной функции PgBouncer.