Share via


Autenticazione SCRAM in Database di Azure per PostgreSQL - Server flessibile

SI APPLICA A: Database di Azure per PostgreSQL - Server flessibile

Salted Challenge Response Authentication Mechanism (SCRAM) è un protocollo di autenticazione reciproca basato su password. Si tratta di uno schema challenge-response 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 formato con hash crittografico che offre sicurezza avanzata.

Nota

Per accedere a un'istanza del server flessibile Database di Azure per PostgreSQL usando il metodo scRAM di autenticazione, le librerie client devono supportare SCRAM. Fare riferimento all'elenco dei driver che supportano SCRAM.

Nota

L'autenticazione SCRAM impone un carico di calcolo aggiuntivo nei server applicazioni, che devono calcolare la prova del client per ogni autenticazione. L'overhead delle prestazioni introdotto da SCRAM può essere mitigato 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 in blocchi). È consigliabile testare i carichi di lavoro prima di eseguire la migrazione all'autenticazione SCRAM.

Configurazione dell'autenticazione SCRAM

  1. Modificare password_encryption in SCRAM-SHA-256. Attualmente Database di Azure per PostgreSQL server flessibile supporta solo SCRAM usando SHA-256. Abilitare la crittografia password SCRAM

  2. Consentire SCRAM-SHA-256 come metodo di autenticazione. Scegliere il metodo di autenticazione

    Importante

    È possibile scegliere di applicare solo l'autenticazione SCRAM selezionando solo il metodo SCRAM-SHA-256. In questo modo, gli utenti con autenticazione MD5 possono connettersi più a lungo al server. Di conseguenza, prima di applicare SCRAM, è consigliabile avere MD5 e SCRAM-SHA-256 come 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. Si tratta di proprietà dinamiche e non richiedono il riavvio del server.

  4. Dal client server flessibile Database di Azure per PostgreSQL connettersi all'istanza del server flessibile Database di Azure per PostgreSQL. ad esempio:

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

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

    postgres=> \password myDemoUser
    Enter new password:
    Enter it again:
    postgres=>
    
  7. È possibile 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. È quindi possibile connettersi dal client che supporta l'autenticazione SCRAM al server.

Nota

L'autenticazione SCRAM è supportata anche quando si è connessi al PgBouncer gestito predefinito. L'esercitazione precedente è valida per configurare la connettività usando l'autenticazione SCRAM tramite la funzionalità PgBouncer predefinita.

Passaggi successivi