SCRAM-verificatie in Azure Database for PostgreSQL Flexible Server

Salted Challenge Response Authentication Mechanism (SCRAM) is een op wachtwoorden gebaseerd protocol voor wederzijdse verificatie. Het is een challenge-response-schema dat meerdere beveiligingslagen biedt en het onderscheppen van wachtwoorden op onvertrouwde verbindingen voorkomt. 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 Azure Database for PostgreSQL flexibele server met behulp van de SCRAM-verificatiemethode moeten uw clientbibliotheken SCRAM ondersteunen. Zie de lijst met stuurprogramma's die SCRAM ondersteunen voor meer informatie.

SCRAM-verificatie voegt extra rekenkracht toe aan uw toepassingsservers, die het clientbewijs voor elke verificatie moeten berekenen. U kunt de prestatieoverhead van SCRAM beperken 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). Test uw workloads voordat u migreert naar SCRAM-verificatie.

SCRAM-verificatie configureren

Ga naar Parameters

Als u SCRAM-verificatie wilt configureren, opent u de pagina Parameters in de Azure-portal:

  1. Meld u aan bij het Azure-portaal.
  2. Ga naar uw Azure Database for PostgreSQL flexibele server.
  3. Selecteer Parameters in het linkermenu onder Instellingen.
  4. Gebruik het zoekvak om de parameters te vinden die worden vermeld in de volgende stappen.

Configuratiestappen

  1. Verander password_encryption naar 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 authenticatiemethode.

    Schermopname van verificatie die is bereikt door SCRAM.

    Belangrijk

    U kunt alleen SCRAM-verificatie afdwingen door alleen de SCRAM-SHA-256 methode te selecteren. Wanneer u deze methode afdwingt, kunnen gebruikers met MD5-verificatie geen verbinding maken met de server. Voordat u SCRAM afdwingt, moet u ervoor zorgen dat zowel MD5 als SCRAM-SHA-256 verificatiemethoden zijn totdat u alle gebruikerswachtwoorden bijwerkt.SCRAM-SHA-256 U kunt het verificatietype voor gebruikers verifiëren met behulp van de query die in stap 7 wordt vermeld.

  3. Sla de wijzigingen op. Deze eigenschappen zijn dynamisch en vereisen geen server opnieuw opstarten.

  4. Maak vanuit uw Azure Database for PostgreSQL flexibele serverclient verbinding met de Azure Database for PostgreSQL flexibele server. 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. Werk het wachtwoord voor gebruikers bij.

    postgres=> \password myDemoUser
    Enter new password:
    Enter it again:
    postgres=>
    
  7. Verifieer gebruikersverificatietypen met behulp van de azure_roles_authtype() 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. Maak verbinding vanaf de client die SCRAM-verificatie ondersteunt met uw server.

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