SCRAM-Authentifizierung in Azure Database for PostgreSQL :Flexibler Server

GILT FÜR: Azure Database for PostgreSQL – Flexibler Server

Salted Challenge Response Authentication Mechanism (SCRAM) ist ein kennwortbasiertes Protokoll für die gegenseitige Authentifizierung. Es ist ein Abfrage/Rückmeldung-Schema, das mehrere Sicherheitsebenen hinzufügt und die Kennwortermittlung bei nicht vertrauenswürdigen Verbindungen verhindert. SCRAM unterstützt das Speichern von Kennwörtern auf dem Server in Form eines kryptografischen Hash, der erweiterte Sicherheit bietet.

Hinweis

Um mit der SCRAM-Authentifizierungsmethode auf die Azure Database for PostgreSQL – Flexibler Server-Instanz zugreifen zu können, müssen Ihre Clientbibliotheken SCRAM unterstützen. Weitere Informationen finden Sie in der Liste der Treiber, die SCRAM unterstützen.

Hinweis

Die SCRAM-Authentifizierung stellt eine zusätzliche Rechenlast für Ihre Anwendungsserver dar, die den Client-Nachweis für jede Authentifizierung berechnen müssen. Der Performance-Overhead, den SCRAM mit sich bringt, kann eventuell durch eine Begrenzung der Anzahl der Verbindungen im Verbindungspool Ihrer Anwendung (Verringerung des Chatverhaltens in Ihrer Anwendung) oder durch eine Begrenzung der Anzahl der gleichzeitigen Transaktionen, die Ihr Client zulässt (umfangreichere Transaktionen), gemildert werden. Es wird empfohlen, Ihre Workloads vor der Migration zur SCRAM-Authentifizierung zu testen.

Konfigurieren Sie die SCRAM-Authentifizierung

  1. Ändern Sie „password_encryption“ in „SCRAM-SHA-256“. Derzeit unterstützt Azure Database for PostgreSQL – Flexibler Server nur SCRAM mit SHA-256. Screenshot: Aktivieren der SCRAM-Kennwortverschlüsselung.

  2. Legen Sie SCRAM-SHA-256 als zulässige Authentifizierungsmethode fest. Screenshot: Wählen der Authentifizierungsmethode.

    Wichtig

    Sie können die ausschließliche SCRAM-Authentifizierung gegebenenfalls erzwingen, indem Sie nur die Methode „SCRAM-SHA-256“ auswählen. In diesem Fall können Benutzer mit MD5-Authentifizierung keine Verbindung mit dem Server mehr herstellen. Bevor Sie SCRAM erzwingen, sollten Sie daher sowohl MD5 als auch SCRAM-SHA-256 als Authentifizierungsmethoden verwenden, bis Sie alle Benutzerkennwörter auf SCRAM-SHA-256 aktualisieren. Sie können den Authentifizierungstyp für Benutzer mithilfe der Abfrage in Schritt 7 überprüfen.

  3. Speichern Sie die Änderungen. Es handelt sich hierbei um dynamische Eigenschaften, die keinen Serverneustart erfordern.

  4. Stellen Sie aus Ihrem Azure Database for PostgreSQL – Flexibler Server-Client eine Verbindung mit der Azure Database for PostgreSQL – Flexibler Server-Instanz her. Beispiel:

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

    postgres=> show password_encryption;
     password_encryption
    ---------------------
    scram-sha-256
    (1 row)
    
  6. Anschließend können Sie das Kennwort für Benutzer aktualisieren.

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

    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. Anschließend können Sie vom Client, der die SCRAM-Authentifizierung unterstützt, eine Verbindung mit Ihrem Server herstellen.

Hinweis

Die SCRAM-Authentifizierung wird auch unterstützt, wenn eine Verbindung mit dem integrierten verwalteten PgBouncer besteht. Das obige Tutorial gilt für das Einrichten der Konnektivität mit SCRAM-Authentifizierung über das integrierte PgBouncer-Feature.