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
Ändern Sie „password_encryption“ in „SCRAM-SHA-256“. Derzeit unterstützt Azure Database for PostgreSQL – Flexibler Server nur SCRAM mit SHA-256.
Legen Sie SCRAM-SHA-256 als zulässige Authentifizierungsmethode fest.
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.
Speichern Sie die Änderungen. Es handelt sich hierbei um dynamische Eigenschaften, die keinen Serverneustart erfordern.
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=<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.
Überprüfen Sie die Kennwortverschlüsselung.
postgres=> show password_encryption; password_encryption --------------------- scram-sha-256 (1 row)
Anschließend können Sie das Kennwort für Benutzer aktualisieren.
postgres=> \password myDemoUser Enter new password: Enter it again: postgres=>
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)
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.