Partager via


Gérer les rôles Microsoft Entra dans Azure Database pour PostgreSQL

Cet article explique comment créer des rôles de base de données compatibles avec l’ID Microsoft Entra au sein d’une instance de serveur flexible Azure Database pour PostgreSQL.

Pour en savoir plus sur la création et la gestion des utilisateurs d’abonnements Azure et de leurs privilèges, consultez l’article Contrôle d’accès en fonction du rôle Azure (Azure RBAC) ou passez en revue comment personnaliser des rôles.

Note

Ce guide suppose que vous avez déjà activé l’authentification Microsoft Entra sur votre instance de serveur flexible Azure Database pour PostgreSQL.

Créer ou supprimer des administrateurs Microsoft Entra en utilisant le portail Azure ou l’API Azure Resource Manager (ARM)

  1. Ouvrez la page Authentification de votre instance de serveur flexible Azure Database pour PostgreSQL dans le portail Azure.
  2. Pour ajouter un administrateur, sélectionnez Ajouter Microsoft Entra Admin et sélectionnez un utilisateur, un groupe, une application ou une identité managée à partir du locataire Microsoft Entra actuel.
  3. Pour supprimer un administrateur, sélectionnez l’icône Supprimer pour l’administrateur que vous souhaitez supprimer.
  4. Sélectionnez Enregistrer et attendre la fin de l’opération d’approvisionnement.

Note

La prise en charge de la gestion des administrateurs Microsoft Entra via le Kit de développement logiciel (SDK) Azure, az cli et Azure PowerShell sera bientôt disponible.

Gérer les rôles Microsoft Entra à l'aide de SQL

Après avoir créé le premier administrateur Microsoft Entra à partir du portail Azure ou de l’API, vous pouvez utiliser le rôle d’administrateur pour gérer les rôles Microsoft Entra dans votre instance de serveur flexible Azure Database pour PostgreSQL.

Pour une expérience optimale avec l’intégration de Microsoft Entra dans Azure Database pour PostgreSQL, nous vous recommandons de vous familiariser avec la plateforme d’identités Microsoft.

Types principaux

Azure Database pour PostgreSQL stocke en interne le mappage entre les rôles de base de données PostgreSQL et les identificateurs uniques des objets Microsoft Entra. Chaque rôle de base de données PostgreSQL peut être mappé à l'un des types d'objet Microsoft Entra suivants :

  • Utilisateur : y compris les utilisateurs locaux et invités du locataire.
  • Principal de service : y compris les applications et les identités managées
  • Groupe : lorsqu’un rôle PostgreSQL est lié à un groupe Microsoft Entra, tout utilisateur ou principal de service de ce groupe peut se connecter à l’instance de serveur flexible Azure Database pour PostgreSQL avec le rôle de groupe.

Répertorier les rôles Microsoft Entra à l'aide de SQL

select * from pg_catalog.pgaadauth_list_principals(isAdminValue boolean)

Arguments

isAdminValue

boolean - lorsque true retourne des utilisateurs d’administration. Lorsque false, retourne tous les utilisateurs de Microsoft Entra, y compris les administrateurs Microsoft Entra et les non-administrateurs.

Type de retour

TABLE(rolename name, principalType text, objectId text, tenantId text, isMfa integer, isAdmin integer) - Tableau avec le schéma suivant :

  • rolename - Nom du rôle dans PostgreSQL.
  • principalType - Le type d'entité principale dans Microsoft Entra ID. Il peut s’agir de user, group ou service.
  • objectId - l’identificateur de l’objet dans Microsoft Entra ID pour ce principal.
  • tenantId - Identificateur du locataire hébergeant ce principal dans Microsoft Entra ID.
  • isMfa - Retourne une valeur de 1 si l’authentification multifacteur est appliquée à l’utilisateur/rôle.
  • isAdmin - Retourne une valeur de 1 si l’utilisateur/rôle est un administrateur dans PostgreSQL.

Créer un utilisateur ou un rôle avec un nom de principal Microsoft Entra

select * from pg_catalog.pgaadauth_create_principal(roleName text, isAdmin boolean, isMfa boolean)

Arguments

roleName

text nom du rôle à créer. Ce nom doit correspondre au nom du principal Microsoft Entra.

  • Pour les utilisateurs, utilisez le nom d’utilisateur principal à partir du profil. Pour les utilisateurs invités, incluez le nom complet dans leur domaine d’accueil avec la balise #EXT#.
  • Pour les groupes et les principaux de service, utilisez le nom d'affichage. Le nom doit être unique dans le locataire.
isAdmin

boolean quand true, crée un utilisateur administrateur PostgreSQL (membre du azure_pg_admin rôle et avec les autorisations CREATEROLE et CREATEDB). Quand false, crée un utilisateur PostgreSQL standard.

isMfa

boolean quand true, applique l’authentification multifacteur pour cet utilisateur PostgreSQL.

Important

L’indicateur isMfa teste la revendication mfa dans le jeton de Microsoft Entra ID, mais n’a pas d’impact sur le flux d’acquisition de jeton. Par exemple, si l'instance principale n’est pas configurée pour l’authentification multifacteur, cela empêche l’utilisation de la fonctionnalité. Et si le locataire nécessite une authentification multifacteur pour tous les jetons, il rend cet indicateur inutile.

Type de retour

text valeur unique qui se compose d’une chaîne « Rôle créé pour roleName », où roleName est l’argument que vous passez pour le paramètre roleName .

Supprimer un rôle avec un nom principal Microsoft Entra

Vous pouvez supprimer un rôle qui correspond à un principal d’ID Microsoft Entra de trois façons :

  • Le portail Azure

  • The Azure Resource Manager (ARM) API

  • En exécutant l’instruction SQL suivante :

    DROP ROLE rolename;
    

Note

Le portail Azure affiche uniquement les rôles d’administrateur. Pour supprimer un rôle non administrateur, utilisez l’API Azure Resource Manager (ARM) ou l’instruction SQL.

Créer un rôle à l’aide de l’identificateur d’objet Microsoft Entra ID

select * from pg_catalog.pgaadauth_create_principal_with_oid(roleName text, objectId text, objectType text, isAdmin boolean, isMfa boolean)

Arguments

roleName

text nom du rôle à créer.

objectId

text identificateur d'objet unique de l'objet Microsoft Entra.

  • Pour les utilisateurs, les groupes et les identités managées, recherchez objectId le nom de l’objet dans la page ID Microsoft Entra dans le portail Azure. Consultez ce guide comme exemple.
  • Pour les groupes et les principaux de service, utilisez le nom d'affichage. Le nom doit être unique dans le locataire.
  • Pour les applications, utilisez l’objectId du principal de service correspondant. Dans le portail Azure, recherchez l’objectId requis dans la page Applications d’entreprise .
objectType

Type text d’objet Microsoft Entra à lier à ce rôle. Il peut s’agir de user, group ou service.

isAdmin

boolean quand true, crée un utilisateur administrateur PostgreSQL (membre du azure_pg_admin rôle et avec les autorisations CREATEROLE et CREATEDB). Quand false, crée un utilisateur PostgreSQL standard.

isMfa

boolean quand true, applique l’authentification multifacteur pour cet utilisateur PostgreSQL.

Important

L’indicateur isMfa teste la revendication mfa dans le jeton de Microsoft Entra ID, mais n’a pas d’impact sur le flux d’acquisition de jeton. Par exemple, si l'instance principale n’est pas configurée pour l’authentification multifacteur, cela empêche l’utilisation de la fonctionnalité. Et si le locataire nécessite une authentification multifacteur pour tous les jetons, il rend cet indicateur inutile.

Type de retour

text valeur unique qui se compose d’une chaîne « Rôle créé pour roleName », où roleName est l’argument que vous passez pour le paramètre roleName .

Activer l'authentification Microsoft Entra pour un rôle PostgreSQL existant à l'aide de SQL

Le serveur flexible Azure Database for PostgreSQL utilise les étiquettes de sécurité associées aux rôles de base de données pour stocker leur correspondance Microsoft Entra ID.

Utilisez le code SQL suivant pour affecter l’étiquette de sécurité requise et la mapper à un objet Microsoft Entra :

SECURITY LABEL for "pgaadauth" on role "<roleName>" is 'aadauth,oid=<objectId>,type=<objectType>,admin';

Arguments

roleName

text nom d’un rôle PostgreSQL existant pour activer l’authentification Microsoft Entra.

objectId

text identificateur d'objet unique de l'objet Microsoft Entra.

objectType

text défini sur user, groupou service (pour les applications ou les identités managées se connectant sous leurs propres informations d’identification de service).

admin

text défini sur présent ou absent. S’il est présent dans l’étiquette de sécurité, les utilisateurs ou les rôles peuvent gérer d’autres rôles de Microsoft Entra ID.