Dela via


SCRAM-autentisering i Azure Database for PostgreSQL – flexibel server

GÄLLER FÖR: Azure Database for PostgreSQL – flexibel 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 som ger avancerad säkerhet.

Kommentar

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

Kommentar

SCRAM-autentisering medför extra beräkningsbelastning på dina programservrar, som behöver beräkna klientbeviset för varje autentisering. SCRAM:s prestandakostnader kan minskas 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). Vi rekommenderar att du testar dina arbetsbelastningar innan du migrerar till SCRAM-autentisering.

Konfigurera SCRAM-autentisering

  1. Ändra password_encryption till SCRAM-SHA-256. För närvarande har Azure Database for PostgreSQL flexibel server endast stöd för SCRAM med SHA-256. Skärmbild av Aktivera SCRAM-lösenordskryptering.

  2. Tillåt SCRAM-SHA-256 som autentiseringsmetod. Skärmbild av Välj autentiseringsmetod.

    Viktigt!

    Du kan välja att endast tillämpa SCRAM-autentisering genom att bara välja SCRAM-SHA-256-metoden. På så sätt kan användare med MD5-autentisering längre ansluta till servern. Innan du tillämpar SCRAM rekommenderar vi därför att du har både MD5 och SCRAM-SHA-256 som 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. Det här är dynamiska egenskaper och kräver inte omstart av servern.

  4. Från azure database for PostgreSQL–klienten för flexibel server ansluter du till den flexibla serverinstansen Azure Database for PostgreSQL. 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. Du kan sedan uppdatera lösenordet för användare.

    postgres=> \password myDemoUser
    Enter new password:
    Enter it again:
    postgres=>
    
  7. Du kan verifiera användarautentiseringstyper med hjälp av azure_roles_authtype() 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. Du kan sedan ansluta från klienten som stöder SCRAM-autentisering till servern.

Kommentar

SCRAM-autentisering stöds också när den är ansluten till den inbyggda hanterade PgBouncer. Självstudien ovan är giltig för att konfigurera anslutning med hjälp av SCRAM-autentisering via inbyggd PgBouncer-funktion.