Аутентификация SCRAM на гибком сервере База данных Azure для PostgreSQL

SCRAM (Salted Challenge Response Authentication Mechanism) — это протокол взаимной аутентификации с использованием пароля. Это схема запрос-ответ, которая обеспечивает несколько уровней защиты и предотвращает перехват паролей при ненадёжных соединениях. SCRAM поддерживает хранение паролей на сервере в криптографически хэшированных формах, что обеспечивает расширенную безопасность.

Замечание

Чтобы получить доступ к гибкому серверу База данных Azure для PostgreSQL с помощью метода проверки подлинности SCRAM, клиентские библиотеки должны поддерживать SCRAM. Дополнительные сведения см. в списке драйверов , поддерживающих SCRAM.

Проверка подлинности SCRAM добавляет дополнительную вычислительную нагрузку на серверы приложений, которые должны вычислить подтверждение клиента для каждой проверки подлинности. Вы можете уменьшить затраты на производительность SCRAM, ограничив количество подключений в пуле подключений приложения (снижение общения в приложении) или ограничение количества одновременных транзакций, которые позволяет клиент (большие транзакции). Протестируйте нагрузки перед переходом на аутентификацию SCRAM.

Настройка проверки подлинности SCRAM

Перейти к параметрам

Чтобы настроить проверку подлинности SCRAM, перейдите на страницу "Параметры" на портале Azure:

  1. Войдите на портал Azure.
  2. Перейдите к своему гибкому серверу База данных Azure для PostgreSQL.
  3. В меню слева в разделе "Параметры" выберите "Параметры".
  4. Используйте поле поиска, чтобы найти параметры, упомянутые в следующих шагах.

Шаги настройки

  1. Измените password_encryption на SCRAM-SHA-256. В настоящее время База данных Azure для PostgreSQL поддерживает только SCRAM с помощью SHA-256.

    Снимок экрана: страница шифрования для SCRAM.

  2. Разрешить SCRAM-SHA-256 в качестве метода проверки подлинности.

    Снимок экрана аутентификации с использованием SCRAM.

    Это важно

    Вы можете принудительно использовать только аутентификацию SCRAM, выбрав только метод SCRAM-SHA-256. При применении этого метода пользователи с проверкой подлинности MD5 не могут подключиться к серверу. Прежде чем принудительно включить SCRAM, убедитесь, что и MD5, и SCRAM-SHA-256 используются как методы аутентификации, пока вы не обновите все пароли пользователей до SCRAM-SHA-256. Вы можете проверить тип проверки подлинности для пользователей с помощью запроса, указанного на шаге 7.

  3. Сохраните изменения. Эти свойства являются динамическими и не требуют перезапуска сервера.

  4. С База данных 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.
    
  5. Проверьте шифрование паролей.

    postgres=> show password_encryption;
       password_encryption
    ---------------------
    scram-sha-256
    (1 row)
    
  6. Обновите пароль для пользователей.

    postgres=> \password myDemoUser
    Enter new password:
    Enter it again:
    postgres=>
    
  7. Проверьте типы аутентификации пользователей с помощью функции 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)
    
  8. Подключитесь к серверу с клиента, поддерживающего аутентификацию SCRAM.

    Аутентификация SCRAM также поддерживается при подключении к встроенному управляемому PgBouncer.