SCRAM-autentisering i Azure Database for PostgreSQL Flexible Server

Salted Challenge Response Authentication Mechanism (SCRAM) är ett lösenordsbaserat protokoll för ömsesidig autentisering. Det är ett system för utmaningshantering som lägger till flera säkerhetsnivåer och förhindrar lösenordssniffning på ej betrodda anslutningar. SCRAM stöder lagring av lösenord på servern i ett kryptografiskt hashat formulär, vilket ger avancerad säkerhet.

Anmärkning

För att få åtkomst till en Azure Database for PostgreSQL flexibel server med hjälp av SCRAM-autentiseringsmetoden måste klientbiblioteken ha stöd för SCRAM. Mer information finns i listan över drivrutiner som stöder SCRAM.

SCRAM-autentisering lägger till extra beräkningsbelastning till dina programservrar, som behöver beräkna klientbeviset för varje autentisering. Du kan minska prestandakostnaderna som SCRAM introducerar genom att begränsa antalet anslutningar i programmets anslutningspool (minska chattigheten i ditt program) eller begränsa antalet samtidiga transaktioner som klienten tillåter (större transaktioner). Testa dina arbetsbelastningar innan du migrerar till SCRAM-autentisering.

Konfigurera SCRAM-autentisering

Gå till Parametrar

Om du vill konfigurera SCRAM-autentisering går du till sidan Parametrar i Azure-portalen:

  1. Logga in på Azure-portalen.
  2. Gå till din flexibla server i Azure Database for PostgreSQL.
  3. I den vänstra menyn under Inställningar väljer du Parametrar.
  4. Använd sökrutan för att hitta parametrarna som nämns i följande steg.

Konfigurationssteg

  1. Ändra password_encryption till SCRAM-SHA-256. För närvarande stöder Azure Database for PostgreSQL endast SCRAM med SHA-256.

    Skärmbild av krypteringssidan för SCRAM.

  2. Tillåt SCRAM-SHA-256 som autentiseringsmetod.

    Skärmbild av autentisering som nås via SCRAM.

    Viktigt!

    Du kan endast använda SCRAM-autentisering genom att välja SCRAM-SHA-256 metoden. När du tillämpar den här metoden kan användare med MD5-autentisering inte ansluta till servern. Innan du tillämpar SCRAM kontrollerar du att både MD5 och SCRAM-SHA-256 är autentiseringsmetoder tills du uppdaterar alla användarlösenord till SCRAM-SHA-256. Du kan verifiera autentiseringstypen för användare med hjälp av frågan som nämns i steg 7.

  3. Spara ändringarna. De här egenskaperna är dynamiska och kräver ingen omstart av servern.

  4. Från din klient för Azure Database for PostgreSQL flexible server ansluter du till Azure Database for PostgreSQL flexible server. Ett exempel:

    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. Verifiera lösenordskryptering.

    postgres=> show password_encryption;
       password_encryption
    ---------------------
    scram-sha-256
    (1 row)
    
  6. Uppdatera lösenordet för användare.

    postgres=> \password myDemoUser
    Enter new password:
    Enter it again:
    postgres=>
    
  7. Verifiera användarautentiseringstyper med hjälp azure_roles_authtype() av funktionen.

    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. Anslut från klienten som stöder SCRAM-autentisering till servern.

    SCRAM-autentisering stöds också vid anslutning till den inbyggda hanterade PgBouncer.