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)
- Ouvrez la page Authentification pour votre instance de serveur flexible Azure Database pour PostgreSQL dans le portail Azure.
- 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.
- Pour supprimer un administrateur, sélectionnez l’icône Supprimer pour l’administrateur à supprimer.
- Sélectionnez Enregistrer et attendez que l’opération de provisionnement soit terminée.
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 :
- Utilisateur – Inclut les utilisateurs locaux du locataire et les utilisateurs invités.
- Principal de service. Inclut les applications et les identités managées
- 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 false
retourne 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 deuser
,group
ouservice
.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 de1
si l’authentification multifacteur est appliquée à l’utilisateur/rôle.isAdmin
retourne une valeur de1
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
- Passez en revue les concepts généraux de l'authentification Microsoft Entra avec Azure Database pour PostgreSQL – Serveur flexible