Autenticazione SCRAM nel server flessibile di Database di Azure per PostgreSQL

Salted Challenge Response Authentication Mechanism (SCRAM) è un protocollo di autenticazione reciproca basato su password. Si tratta di uno schema test-risposta che aggiunge diversi livelli di sicurezza e impedisce l'analisi delle password sulle connessioni non attendibili. SCRAM supporta l'archiviazione delle password nel server in un modulo con hash crittografico, che offre sicurezza avanzata.

Annotazioni

Per accedere a un server flessibile Database di Azure per PostgreSQL usando il metodo SCRAM di autenticazione, le librerie client devono supportare SCRAM. Per altre informazioni, vedere l'elenco dei driver che supportano SCRAM.

L'autenticazione SCRAM aggiunge un carico di calcolo aggiuntivo ai server applicazioni, che devono calcolare la prova del client per ogni autenticazione. È possibile ridurre il sovraccarico delle prestazioni introdotto da SCRAM limitando il numero di connessioni nel pool di connessioni dell'applicazione (riducendo la chattiness nell'applicazione) o limitando il numero di transazioni simultanee consentite dal client (transazioni più grandi). Testare i carichi di lavoro prima della migrazione all'autenticazione SCRAM.

Configurare l'autenticazione SCRAM

Passare a Parametri

Per configurare l'autenticazione SCRAM, accedere alla pagina Parametri nel portale di Azure:

  1. Accedi al portale di Azure.
  2. Vai al tuo server flessibile di Database di Azure per PostgreSQL.
  3. Nel menu a sinistra in Impostazioni selezionare Parametri.
  4. Usare la casella di ricerca per trovare i parametri indicati nei passaggi seguenti.

Passaggi di configurazione

  1. Cambia password_encryption in SCRAM-SHA-256. Attualmente, Database di Azure per PostgreSQL supporta solo SCRAM usando SHA-256.

    Screenshot della pagina di crittografia per SCRAM.

  2. Consenti SCRAM-SHA-256 come metodo di autenticazione.

    Screenshot dell'autenticazione raggiunta da SCRAM.

    Importante

    È possibile applicare l'autenticazione SCRAM solo selezionando solo il SCRAM-SHA-256 metodo . Quando si applica questo metodo, gli utenti con autenticazione MD5 non possono connettersi al server. Prima di applicare SCRAM, assicurarsi che MD5 e SCRAM-SHA-256 siano metodi di autenticazione fino a quando non si aggiornano tutte le password utente a SCRAM-SHA-256. È possibile verificare il tipo di autenticazione per gli utenti usando la query indicata nel passaggio 7.

  3. Salvare le modifiche. Queste proprietà sono dinamiche e non richiedono un riavvio del server.

  4. Dal client del server flessibile Database di Azure per PostgreSQL, connettersi al server flessibile Azure Database per PostgreSQL. Ad esempio:

    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. Verificare la crittografia della password.

    postgres=> show password_encryption;
       password_encryption
    ---------------------
    scram-sha-256
    (1 row)
    
  6. Aggiornare la password per gli utenti.

    postgres=> \password myDemoUser
    Enter new password:
    Enter it again:
    postgres=>
    
  7. Verificare i tipi di autenticazione utente usando la azure_roles_authtype() funzione .

    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. Connettersi dal client che supporta l'autenticazione SCRAM al server.

    L'autenticazione SCRAM è supportata anche quando si è connessi al PgBouncer gestito predefinito.