Authentification SCRAM dans Azure Database pour PostgreSQL - Serveur flexible
S’APPLIQUE À : Azure Database pour PostgreSQL : serveur flexible
Salted Challenge Response Authentication Mechanism (SCRAM) est un protocole d’authentification mutuelle basé sur mot de passe. Il s’agit d’un modèle de stimulation-réponse qui ajoute plusieurs niveaux de sécurité et empêche la détection de mot de passe sur des connexions non approuvées. SCRAM prend en charge le stockage des mots de passe sur le serveur dans un format haché par chiffrement qui fournit une sécurité avancée.
Remarque
Pour accéder à l’instance Azure Database pour PostgreSQL – Serveur flexible en utilisant une méthode d’authentification SCRAM, vos bibliothèques clientes doivent prendre en charge SCRAM. Consultez la liste des pilotes qui prennent en charge SCRAM.
Remarque
L’authentification SCRAM impose une charge de calcul supplémentaire sur vos serveurs d’applications, qui doivent calculer la preuve du client pour chaque authentification. La surcharge de performances introduite par SCRAM pourrait être atténuée en limitant le nombre de connexions dans le pool de connexions de votre application (ce qui réduit les bavardages dans votre application) ou en limitant le nombre de transactions simultanées autorisées par votre client (transactions plus volumineuses). Il est recommandé de tester vos charges de travail avant de migrer vers l’authentification SCRAM.
Configurer l’authentification SCRAM
Remplacez password_encryption par SCRAM-SHA-256. Actuellement, Azure Database pour PostgreSQL – Serveur flexible prend en charge SCRAM en utilisant SHA-256 uniquement.
Autorisez SCRAM-SHA-256 comme méthode d’authentification.
Important
Vous avez la possibilité de choisir d’appliquer l’authentification SCRAM uniquement en sélectionnant seulement la méthode SCRAM-SHA-256. En procédant ainsi, les utilisateurs disposant d’une authentification MD5 ne peuvent plus se connecter au serveur. Par conséquent, avant d’appliquer SCRAM, il est recommandé d’avoir à la fois MD5 et SCRAM-SHA-256 comme méthodes d’authentification jusqu’à ce que vous ayez mis à jour tous les mots de passe utilisateur vers SCRAM-SHA-256. Vous pouvez vérifier le type d’authentification pour les utilisateurs à l’aide de la requête mentionnée à l’étape 7.
Enregistrez les modifications. Il s’agit de propriétés dynamiques qui ne nécessitent pas de redémarrage du serveur.
Dans votre client Azure Database pour PostgreSQL – Serveur flexible, connectez-vous à l’instance Azure Database pour PostgreSQL – Serveur flexible. Par exemple,
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.
Vérifiez le chiffrement du mot de passe.
postgres=> show password_encryption; password_encryption --------------------- scram-sha-256 (1 row)
Vous pouvez ensuite mettre à jour le mot de passe pour les utilisateurs.
postgres=> \password myDemoUser Enter new password: Enter it again: postgres=>
Vous pouvez vérifier les types d’authentification utilisateur à l’aide de la fonction
azure_roles_authtype()
.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)
Vous pouvez alors vous connecter à partir du client qui prend en charge l’authentification SCRAM sur votre serveur.
Notes
L’authentification SCRAM n’est pas non plus prise en charge lors de la connexion au PgBouncer géré intégré. Le tutoriel ci-dessus est valide pour la configuration de la connectivité à l’aide de l’authentification SCRAM via la fonctionnalité PgBouncer intégrée.