Partager via


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

  1. Remplacez password_encryption par SCRAM-SHA-256. Actuellement, Azure Database pour PostgreSQL – Serveur flexible prend en charge SCRAM en utilisant SHA-256 uniquement. Capture d’écran de Activer le chiffrement de mot de passe SCRAM.

  2. Autorisez SCRAM-SHA-256 comme méthode d’authentification. Capture d’écran de Choisir la 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.

  3. Enregistrez les modifications. Il s’agit de propriétés dynamiques qui ne nécessitent pas de redémarrage du serveur.

  4. 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=<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. Vérifiez le chiffrement du mot de passe.

    postgres=> show password_encryption;
     password_encryption
    ---------------------
    scram-sha-256
    (1 row)
    
  6. Vous pouvez ensuite mettre à jour le mot de passe pour les utilisateurs.

    postgres=> \password myDemoUser
    Enter new password:
    Enter it again:
    postgres=>
    
  7. 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)
    
  8. 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.