Ověřování SCRAM na flexibilním serveru 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:

Pro přístup k Azure Database for PostgreSQL flexibilnímu serveru pomocí metody OVĚŘOVÁNÍ SCRAM musí klientské knihovny podporovat SCRAM. Další informace najdete v seznamu ovladačů , které podporují SCRAM.

Ověřování SCRAM přidává na aplikační servery dodatečné výpočetní zatížení, které musí vypočítat ověření klienta pro každé ověřování. Výkonnostní režii, kterou SCRAM zavádí, můžete snížit omezením počtu připojení ve fondu připojení vaší aplikace (omezením četnosti komunikace v aplikaci) nebo omezením počtu souběžných transakcí, které klient umožňuje (větší transakce). Před migrací na ověřování SCRAM otestujte úlohy.

Konfigurace ověřování SCRAM

Přejít na parametry

Pokud chcete nakonfigurovat ověřování SCRAM, přejděte na stránku Parametry na portálu Azure:

  1. Přihlaste se do Azure Portalu.
  2. Přejděte na flexibilní server Azure Database for PostgreSQL.
  3. V nabídce vlevo v části Nastavení vyberte Parametry.
  4. Pomocí vyhledávacího pole vyhledejte parametry uvedené v následujících krocích.

Kroky konfigurace

  1. Změňte password_encryption na SCRAM-SHA-256. V současné době Azure Database for PostgreSQL podporuje pouze SCRAM pomocí SHA-256.

    Snímek obrazovky se stránkou šifrování pro SCRAM

  2. Povolit SCRAM-SHA-256 jako metodu ověřování

    Snímek obrazovky autentizace dosažené pomocí SCRAM.

    Důležité

    Můžete vynutit pouze ověřování SCRAM tak, že vyberete pouze metodu SCRAM-SHA-256 . Při vynucování této metody se uživatelé s ověřováním MD5 nemůžou připojit k serveru. Než vynutíte SCRAM, ujistěte se, že jako metody ověřování jsou nastavené 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. Tyto vlastnosti jsou dynamické a nevyžadují restartování serveru.

  4. Z Azure Database for PostgreSQL flexibilního serverového klienta se připojte k Azure Database for PostgreSQL flexibilnímu serveru. 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. Aktualizujte heslo pro uživatele.

    postgres=> \password myDemoUser
    Enter new password:
    Enter it again:
    postgres=>
    
  7. Ověřte typy ověřování uživatelů pomocí funkce 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. Připojte se z klienta, který podporuje ověřování SCRAM k vašemu serveru.

    Ověřování SCRAM je podporováno také při připojení k integrované spravované službě PgBouncer.