Sdílet prostřednictvím


Ověřování SCRAM na flexibilním serveru Azure Database for PostgreSQL

PLATÍ PRO: Flexibilní server Azure Database for PostgreSQL

Salted Challenge Response Authentication Mechanism (SCRAM) je protokol vzájemného ověřování založený na heslech. Jedná se o schéma reakce na výzvy, které přidává několik úrovní zabezpečení a zabraňuje zašifrování hesla u nedůvěryhodných připojení. SCRAM podporuje ukládání hesel na server v kryptograficky hashované podobě, která poskytuje pokročilé zabezpečení.

Poznámka:

Pokud chcete získat přístup k instanci flexibilního serveru Azure Database for PostgreSQL pomocí metody ověřování SCRAM, musí klientské knihovny podporovat SCRAM. Projděte si seznam ovladačů, které podporují SCRAM.

Poznámka:

Ověřování SCRAM vyžaduje dodatečné výpočetní zatížení aplikačních serverů, které musí vypočítat ověření klienta pro každé ověřování. ScRAM režijní náklady na výkon mohou být zmírnit omezením počtu připojení ve fondu připojení vaší aplikace (snížení chattnosti v aplikaci) nebo omezením počtu souběžných transakcí, které váš klient umožňuje (větší transakce). Před migrací na ověřování SCRAM se doporučuje otestovat úlohy.

Konfigurace ověřování SCRAM

  1. Změňte password_encryption na SCRAM-SHA-256. Flexibilní server Azure Database for PostgreSQL v současné době podporuje pouze SCRAM pomocí SHA-256. Snímek obrazovky s povolením šifrování hesel SCRAM

  2. Povolte SCRAM-SHA-256 jako metodu ověřování. Snímek obrazovky s možností Zvolit metodu ověřování

    Důležité

    Můžete se rozhodnout vynutit pouze ověřování SCRAM výběrem pouze metody SCRAM-SHA-256. Uživatelé s ověřováním MD5 se tak můžou k serveru připojit déle. Proto před vynucováním SCRAM doporučujeme jako metody ověřování použít MD5 i SCRAM-SHA-256, dokud neaktualizujete všechna uživatelská hesla na SCRAM-SHA-256. Typ ověřování pro uživatele můžete ověřit pomocí dotazu uvedeného v kroku 7.

  3. Uložte změny. Jedná se o dynamické vlastnosti a nevyžadují restartování serveru.

  4. Z flexibilního serveru Azure Database for PostgreSQL se připojte k instanci flexibilního serveru Azure Database for PostgreSQL. Příklad:

    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. Ověřte šifrování hesla.

    postgres=> show password_encryption;
     password_encryption
    ---------------------
    scram-sha-256
    (1 row)
    
  6. Pak můžete aktualizovat heslo pro uživatele.

    postgres=> \password myDemoUser
    Enter new password:
    Enter it again:
    postgres=>
    
  7. Pomocí funkce můžete ověřit typy azure_roles_authtype() ověřování uživatelů.

    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. Pak se můžete připojit z klienta, který podporuje ověřování SCRAM k vašemu serveru.

Poznámka:

Ověřování SCRAM se podporuje také při připojení k integrovanému spravovanému nástroji PgBouncer. Výše uvedený kurz je platný pro nastavení připojení pomocí ověřování SCRAM prostřednictvím integrované funkce PgBouncer.