Partager via


Authentification Microsoft Entra ID et PostgreSQL avec Azure Cosmos DB for PostgreSQL

S’APPLIQUE À : Azure Cosmos DB for PostgreSQL (avec l’extension de base de données Citus pour PostgreSQL)

Azure Cosmos DB for PostgreSQL prend en charge l’authentification PostgreSQL et l’intégration à Microsoft Entra ID. Chaque cluster Azure Cosmos DB for PostgreSQL est créé avec l’authentification PostgreSQL native activée et un rôle PostgreSQL intégré nommé citus. Vous pouvez ajouter d’autres rôles PostgreSQL natifs une fois l’approvisionnement de cluster terminé.

Vous pouvez également activer l’authentification Microsoft Entra ID (anciennement Azure Active Directory) sur un cluster en plus de la méthode d’authentification PostgreSQL ou à la place de celle-ci. Vous pouvez configurer des méthodes d’authentification sur chaque cluster Azure Cosmos DB for PostgreSQL indépendamment. Si vous devez modifier la méthode d’authentification, vous pouvez le faire à tout moment une fois l’approvisionnement du cluster terminé. La modification des méthodes d’authentification ne nécessite pas le redémarrage du cluster.

Authentification PostgreSQL

Le moteur PostgreSQL utilise les rôles pour contrôler l’accès aux objets de base de données. Un cluster Azure Cosmos DB for PostgreSQL nouvellement créé est fourni avec plusieurs rôles prédéfinis :

Étant donné qu’Azure Cosmos DB for PostgreSQL est un service PaaS managé, seul Microsoft peut se connecter avec le rôle de superutilisateur postgres. Pour un accès administratif limité, Azure Cosmos DB for PostgreSQL fournit le rôle citus.

Le service managé doit répliquer tous les rôles PostgreSQL sur tous les nœuds d’un cluster. Pour faciliter cette exigence, tous les autres rôles PostgreSQL doivent être créés à l’aide des fonctionnalités de gestion d’Azure Cosmos DB for PostgreSQL.

Rôle Citus

Autorisations pour le rôle citus :

  • Lire toutes les variables de configuration, même les variables normalement visibles uniquement par les superutilisateurs.
  • Lire tous les affichages pg_stat_* et utiliser diverses extensions liées aux statistiques (même des affichages ou des extensions normalement visibles uniquement par les superutilisateurs).
  • Exécuter des fonctions de supervision qui pourraient prendre des verrous ACCESS SHARE sur des tables, potentiellement pendant une longue période.
  • Créez les extensions PostgreSQL.

Notez que le rôle citus présente des restrictions :

  • Impossibilité de créer des rôles
  • Impossibilité de créer des bases de données

Le rôle citus ne peut pas être supprimé, mais il est sera désactivé si la méthode d’authentification « Microsoft Entra ID uniquement » est sélectionnée sur le cluster.

Authentification Microsoft Entra ID

L’authentification Microsoft Entra ID (anciennement Azure Active Directory) est un mécanisme de connexion à Azure Cosmos DB for PostgreSQL utilisant des identités définies dans Microsoft Entra ID. Grâce à l’authentification Microsoft Entra ID, vous pouvez gérer les identités des utilisateurs de base de données et d’autres services Microsoft dans un emplacement centralisé, ce qui simplifie la gestion des autorisations.

Les avantages de l’utilisation de Microsoft Entra ID sont les suivants :

  • Authentification uniforme des utilisateurs dans les services Azure
  • Gestion des stratégies de mot de passe et de la rotation de mot de passe dans un emplacement unique
  • Formes d’authentification multiples prises en charge par Microsoft Entra ID, ce qui peut éviter d’avoir à stocker les mots de passe
  • L’authentification Microsoft Entra ID utilise les rôles de base de données PostgreSQL pour authentifier les identités au niveau de la base de données
  • Prise en charge de l’authentification basée sur des jetons pour les applications se connectant à Azure Cosmos DB for PostgreSQL

Gérer l’accès PostgreSQL pour les principaux Microsoft Entra ID

Quand l’authentification Microsoft Entra ID est activée et que le principal Microsoft Entra ID est ajouté en tant qu’administrateur Microsoft Entra ID, le compte obtient les mêmes privilèges que le rôle citus. La connexion administrateur Microsoft Entra ID peut être un utilisateur Microsoft Entra ID, un principal de service ou une identité managée. Il est possible de configurer à tout moment plusieurs administrateurs Microsoft Entra ID. Vous pouvez aussi éventuellement désactiver l’authentification PostgreSQL (par mot de passe) sur un cluster Azure Cosmos DB for PostgreSQL pour améliorer les capacités d’audit et répondre à des besoins de conformité.

En outre, vous pourrez ajouter le nombre de rôles Microsoft Entra ID non administrateurs de votre choix à un cluster, à tout moment, une fois l’authentification Microsoft Entra ID activée. Les autorisations de base de données pour les rôles Microsoft Entra ID non administrateurs sont managées de la même façon que celles des rôles standard.

Se connecter à l’aide d’identités Microsoft Entra ID

L’authentification Microsoft Entra ID prend en charge les méthodes suivantes de connexion à une base de données à l’aide des identités Microsoft Entra ID :

  • Mot de passe Microsoft Entra ID
  • Microsoft Entra ID intégré
  • Microsoft Entra ID Universal avec l’authentification multifacteur
  • Utiliser les certificats d’application Microsoft Entra ID ou les clé secrètes client
  • Identité managée

Une fois que vous vous êtes authentifié auprès de Microsoft Entra ID, vous récupérez un jeton. Ce jeton est votre mot de passe de connexion.

Autres considérations

  • Il est possible à tout moment de configurer plusieurs principaux Microsoft Entra ID (utilisateur, principal de service ou identité managée) en tant qu’administrateur Microsoft Entra ID pour un cluster Azure Cosmos DB for PostgreSQL.
  • Si un principal Microsoft Entra ID est supprimé du service Microsoft Entra ID, il subsiste en tant que rôle PostgreSQL sur le cluster, mais il ne peut plus acquérir de nouveau jeton d’accès. Dans ce cas, même si le rôle correspondant existe toujours dans la base de données Postgres, il ne peut pas s’authentifier auprès des nœuds de cluster. Les administrateurs de base de données doivent transférer la propriété et supprimer ces rôles manuellement.

Remarque

La connexion à l’aide de l’utilisateur Microsoft Entra ID supprimé peut toujours être effectuée jusqu’à l’expiration du jeton (90 minutes maximum après l’émission du jeton). Si vous supprimez également l’utilisateur du cluster Azure Cosmos DB for PostgreSQL, cet accès sera immédiatement révoqué.

  • Azure Cosmos DB for PostgreSQL fait correspondre les jetons d’accès au rôle de base de données en utilisant l’identifiant utilisateur Microsoft Entra ID unique de l’utilisateur au lieu d’utiliser le nom d’utilisateur. Si un utilisateur Microsoft Entra ID est supprimé et qu’un nouvel utilisateur est créé avec le même nom, Azure Cosmos DB for PostgreSQL considère qu’il s’agit d’un utilisateur différent. Par conséquent, si un utilisateur est supprimé de Microsoft Entra ID et qu’un nouvel utilisateur est ajouté avec le même nom, le nouvel utilisateur ne pourra pas se connecter avec le rôle existant.

Étapes suivantes