Partager via


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

S’APPLIQUE À : Azure Database pour PostgreSQL : serveur flexible

Cet article décrit comment créer des rôles de base de données activés par Microsoft Entra ID au sein d’une instance de serveur flexible Azure Database pour PostgreSQL.

Remarque

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

Si vous souhaitez en savoir plus sur la création et la gestion des utilisateurs d’un abonnement Azure et de leurs privilèges, consultez l’article Contrôle d’accès en fonction du rôle Azure (Azure RBAC) ou lisez Guide pratique pour personnaliser les rôles.

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 pour votre instance de serveur flexible Azure Database pour PostgreSQL dans le portail Azure.
  2. Pour ajouter un administrateur : sélectionnez Ajouter un administrateur Microsoft Entra, et sélectionnez un utilisateur, un groupe, une application ou une identité managée dans le locataire Microsoft Entra actuel.
  3. Pour supprimer un administrateur, sélectionnez l’icône Supprimer pour l’administrateur à supprimer.
  4. Sélectionnez Enregistrer et attendez que l’opération de provisionnement soit terminée.

Capture d’écran illustrant la gestion des administrateurs Microsoft Entra au travers du Portail.

Remarque

La prise en charge de la gestion des administrateurs Microsoft Entra via Azure SDK, az cli et Azure PowerShell sera bientôt disponible.

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

Une fois le premier administrateur Microsoft Entra créé à 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.

Nous vous recommandons de vous familiariser avec la plateforme d’identités Microsoft pour utiliser au mieux l’intégration de Microsoft Entra au serveur flexible Azure Database pour PostgreSQL.

Types de principal

Le serveur flexible 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 AzureAD. Chaque rôle de base de données PostgreSQL peut être mappé à l'un des types d'objet Microsoft Entra suivants :

  1. Utilisateur – Inclut les utilisateurs locaux du locataire et les utilisateurs invités.
  2. Principal de service. Inclut les applications et les identités managées
  3. Groupe Quand un rôle PostgreSQL est lié à un groupe Microsoft Entra, tout membre 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

pg_catalog.pgaadauth_list_principals(isAdminValue boolean)

Arguments

isAdminValue

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

Type renvoyé

TABLE(rolname name, principalType text, objectId text, tenantId text, isMfa integer, isAdmin integer) une table avec le schéma suivant :

  • rolname nom du rôle dans PostgreSQL.
  • principalType type de principal dans Microsoft Entra ID. Il peut s’agir de user, group ou service.
  • objectId 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/rôle en utilisant le nom principal Microsoft Entra

pg_catalog.pgaadauth_create_principal(roleName text, isAdmin boolean, isMfa boolean)

Arguments

roleName

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

  • Pour des utilisateurs, utilisez le nom d’utilisateur principal du profil. Pour les utilisateurs invités, incluez le nom complet dans leur domaine de base avec l’étiquette #EXT#.
  • Pour les groupes et les principaux de service, utilisez le nom d’affichage. Le nom doit être unique dans le locataire.
isAdmin

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

isMfa

boolean lorsqu’il 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 le locataire du principal n’est pas configuré pour l’authentification multifacteur, il 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 renvoyé

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

Supprimer un rôle en utilisant le nom de principal Microsoft Entra

N’oubliez pas que tout rôle Microsoft Entra créé dans PostgreSQL doit être supprimé en utilisant un administrateur Microsoft Entra. Si vous utilisez un administrateur PostgreSQL standard pour supprimer un rôle Entra, une erreur se produit.

DROP ROLE rolename;

Créer un rôle à l'aide de l'identifiant d'objet Microsoft Entra

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, objectId peut être trouvé en recherchant le nom de l'objet sur la page Microsoft Entra ID du portail Azure. Voir ce guide à titre d’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, objectId du principal de service correspondant doit être utilisé. Sur le portail Azure, objectId nécessaire se trouve dans la page Applications d’entreprise dans le portail Azure..
objectType

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

isAdmin

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

isMfa

boolean lorsqu’il 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 le locataire du principal n’est pas configuré pour l’authentification multifacteur, il 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 renvoyé

text valeur unique qui se compose d’une chaîne « Rôle créé pour roleName », où roleName est l’argument passé 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.

Vous pouvez utiliser le code SQL suivant pour affecter l’étiquette de sécurité requise pour 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 lequel l'authentification Microsoft Entra doit être activée.

objectId

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

objectType

text, il peut être défini sur user, group, ou service (pour les applications ou les identités gérées qui se connectent sous leurs propres identifiants de service).

admin

text peut être présent ou absent. Les utilisateurs/rôles pour lesquels cette partie est présente dans leur étiquette de sécurité peuvent gérer d’autres rôles de Microsoft Entra ID.

Étapes suivantes