SCRAM-Authentifizierung im flexiblen Server von Azure Database for PostgreSQL

Salted Challenge Response Authentication Mechanism (SCRAM) ist ein kennwortbasiertes gegenseitiges Authentifizierungsprotokoll. Es ist ein Abfrageantwortschema, das mehrere Sicherheitsstufen hinzufügt und verhindert, dass Kennwörter bei nicht vertrauenswürdigen Verbindungen abgesiffen werden. SCRAM unterstützt das Speichern von Kennwörtern auf dem Server in einer kryptografisch hashierten Form, die erweiterte Sicherheit bietet.

Hinweis

Um mithilfe der SCRAM-Authentifizierungsmethode auf einen Azure Database for PostgreSQL flexiblen Server zuzugreifen, müssen Ihre Clientbibliotheken SCRAM unterstützen. Weitere Informationen finden Sie in der Liste der Treiber , die SCRAM unterstützen.

Die SCRAM-Authentifizierung fügt Ihren Anwendungsservern zusätzliche Rechenlast hinzu, die den Clientnachweis für jede Authentifizierung berechnen müssen. Sie können den Leistungsaufwand für SCRAM verringern, indem Sie die Anzahl der Verbindungen im Verbindungspool Ihrer Anwendung (verringerung der Chattigkeit in Ihrer Anwendung) einschränken oder die Anzahl der gleichzeitigen Transaktionen einschränken, die Ihr Client zulässt (größere Transaktionen). Testen Sie Ihre Workloads vor der Migration zur SCRAM-Authentifizierung.

Konfigurieren der SCRAM-Authentifizierung

Zu Parametern wechseln

Um die SCRAM-Authentifizierung zu konfigurieren, greifen Sie im Azure Portal auf die Seite "Parameter" zu:

  1. Melden Sie sich im Azure-Portal an.
  2. Wechseln Sie zu Ihrem Azure Database for PostgreSQL flexiblen Server.
  3. Wählen Sie im linken Menü unter "Einstellungen"die Option "Parameter" aus.
  4. Verwenden Sie das Suchfeld, um die in den folgenden Schritten erwähnten Parameter zu finden.

Konfigurationsschritte

  1. Ändern Sie password_encryption zu SCRAM-SHA-256. Derzeit unterstützt Azure Database for PostgreSQL nur SCRAM mit SHA-256.

    Screenshot der Verschlüsselungsseite für SCRAM.

  2. Als Authentifizierungsmethode zulassen SCRAM-SHA-256 .

    Screenshot der von SCRAM erreichten Authentifizierung.

    Von Bedeutung

    Sie können die SCRAM-Authentifizierung nur erzwingen, indem Sie nur die SCRAM-SHA-256 Methode auswählen. Wenn Sie diese Methode erzwingen, können Benutzer mit MD5-Authentifizierung keine Verbindung mit dem Server herstellen. Bevor Sie SCRAM erzwingen, stellen Sie sicher, dass sowohl MD5 als SCRAM-SHA-256 auch Authentifizierungsmethoden sind, bis Sie alle Benutzerwörter auf SCRAM-SHA-256aktualisieren. Sie können den Authentifizierungstyp für Benutzer überprüfen, indem Sie die in Schritt 7 erwähnte Abfrage verwenden.

  3. Speichern Sie die Änderungen. Diese Eigenschaften sind dynamisch und erfordern keinen Serverneustart.

  4. Stellen Sie über Ihren Azure Database for PostgreSQL Flexible Server-Client eine Verbindung mit dem Azure Database for PostgreSQL Flexible Server her. Beispiel:

    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. Überprüfen Sie die Kennwortverschlüsselung.

    postgres=> show password_encryption;
       password_encryption
    ---------------------
    scram-sha-256
    (1 row)
    
  6. Aktualisieren Sie das Kennwort für Benutzer.

    postgres=> \password myDemoUser
    Enter new password:
    Enter it again:
    postgres=>
    
  7. Überprüfen Sie die Benutzerauthentifizierungstypen mithilfe der azure_roles_authtype() Funktion.

    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. Stellen Sie eine Verbindung vom Client her her, der die SCRAM-Authentifizierung unterstützt, mit Ihrem Server.

    SCRAM-Authentifizierung wird auch unterstützt, wenn eine Verbindung mit dem integrierten verwalteten PgBouncer hergestellt wird.