Delen via


SCRAM-verificatie in Azure Database for PostgreSQL - Flexibele server

VAN TOEPASSING OP: Azure Database for PostgreSQL - Flexibele server

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 ondersteunt het opslaan van wachtwoorden op de server in een cryptografisch gehashte vorm die geavanceerde beveiliging biedt.

Notitie

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.

Notitie

SCRAM-verificatie legt extra rekenkracht op uw toepassingsservers op, die het clientbewijs voor elke verificatie moet berekenen. De scram voor prestatieoverhead 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 (chunkier transacties). Het wordt aanbevolen 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 flexibele server alleen ondersteuning voor SCRAM met SHA-256. Schermopname van SCRAM-wachtwoordversleuteling inschakelen.

  2. Sta SCRAM-SHA-256 toe als verificatiemethode. Schermopname van De verificatiemethode kiezen.

    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, is het daarom raadzaam om zowel MD5 als SCRAM-SHA-256 als verificatiemethoden te gebruiken 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. De wijzigingen opslaan. 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=MyPassword 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.

Notitie

SCRAM-verificatie wordt ook ondersteund wanneer deze is verbonden met de ingebouwde beheerde PgBouncer. Bovenstaande zelfstudie is geldig voor het instellen van connectiviteit met behulp van SCRAM-verificatie via de ingebouwde PgBouncer-functie.