Delen via


SCRAM-verificatie in Azure Database for PostgreSQL

Salted Challenge Response Authentication Mechanism (SCRAM) is een op wachtwoorden gebaseerd protocol voor wederzijdse verificatie. Het is een challenge-response-schema dat verschillende beveiligingsniveaus toevoegt en voorkomt dat wachtwoorden worden opgeslagen op niet-vertrouwde verbindingen. SCRAM biedt ondersteuning voor het opslaan van wachtwoorden op de server in een cryptografisch gehashte vorm, die geavanceerde beveiliging biedt.

Opmerking

Voor toegang tot een exemplaar van een flexibele Azure Database for PostgreSQL-server met behulp van de SCRAM-verificatiemethode moeten uw clientbibliotheken SCRAM ondersteunen. Raadpleeg de lijst met stuurprogramma's die SCRAM ondersteunen.

SCRAM-verificatie zorgt voor extra rekenkracht op uw toepassingsservers, die het clientbewijs voor elke verificatie moeten berekenen. De prestatieoverhead van SCRAM kan worden beperkt door het aantal verbindingen in de verbindingsgroep van uw toepassing te beperken (minder chatruimte in uw toepassing) of door het aantal gelijktijdige transacties te beperken dat uw client toestaat (grotere transacties). Het is raadzaam om uw workloads te testen voordat u migreert naar SCRAM-verificatie.

SCRAM-verificatie configureren

  1. Wijzig password_encryption in SCRAM-SHA-256. Momenteel biedt Azure Database for PostgreSQL alleen ondersteuning voor SCRAM met SHA-256.

    Schermopname van de versleutelingspagina voor SCRAM.

  2. Sta SCRAM-SHA-256 toe als verificatiemethode.

    Schermopname van verificatie die is bereikt door SCRAM.

    Belangrijk

    U kunt ervoor kiezen om alleen SCRAM-verificatie af te dwingen door alleen de SCRAM-SHA-256-methode te selecteren. Hierdoor kunnen gebruikers met MD5-verificatie langer verbinding maken met de server. Voordat u SCRAM afdwingt, hebt u daarom zowel MD5 als SCRAM-SHA-256 als verificatiemethoden totdat u alle gebruikerswachtwoorden bijwerkt naar SCRAM-SHA-256. U kunt het verificatietype voor gebruikers verifiëren met behulp van de query die wordt vermeld in stap 7.

  3. Sla de wijzigingen op. Dit zijn dynamische eigenschappen en vereisen geen server opnieuw opstarten.

  4. Maak vanuit uw flexibele Azure Database for PostgreSQL-serverclient verbinding met het flexibele serverexemplaren van Azure Database for PostgreSQL. Bijvoorbeeld

    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. Controleer de wachtwoordversleuteling.

    postgres=> show password_encryption;
       password_encryption
    ---------------------
    scram-sha-256
    (1 row)
    
  6. Vervolgens kunt u het wachtwoord voor gebruikers bijwerken.

    postgres=> \password myDemoUser
    Enter new password:
    Enter it again:
    postgres=>
    
  7. U kunt verificatietypen van gebruikers verifiëren met behulp van azure_roles_authtype() de functie.

    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. Vervolgens kunt u verbinding maken vanaf de client die SCRAM-verificatie ondersteunt met uw server.

    SCRAM-verificatie wordt ook ondersteund wanneer deze is verbonden met de ingebouwde beheerde PgBouncer.