Administración de roles de Microsoft Entra en Azure Database for PostgreSQL: servidor flexible

SE APLICA A: Azure Database for PostgreSQL: servidor flexible

En este artículo se describe cómo crear roles de base de datos habilitados para Microsoft Entra ID en una instancia de servidor flexible de Azure Database for PostgreSQL.

Nota:

En esta guía se da por supuesto que ya ha habilitado la autenticación de Microsoft Entra en la instancia de servidor flexible de Azure Database for PostgreSQL. Consulte Configuración de la autenticación de Microsoft Entra.

Si quiere obtener información sobre cómo crear y administrar usuarios de suscripciones de Azure y sus privilegios, puede consultar el artículo sobre el control de acceso basado en rol (RBAC) de Azure o ver cómo personalizar los roles.

Crear o eliminar administradores de Microsoft Entra mediante Azure Portal o la API de Azure Resource Manager (ARM)

  1. Abra la página Autenticación para la instancia de servidor flexible de Azure Database for PostgreSQL en Azure Portal.
  2. Para agregar un administrador, seleccione Agregar administrador de Microsoft Entra y seleccione un usuario, un grupo, una aplicación o una identidad administrada desde el inquilino de Microsoft Entra actual.
  3. Para quitar un administrador, seleccione el icono Eliminar correspondiente al que se va a quitar.
  4. Seleccione Guardar y espere a que finalice la operación de aprovisionamiento.

Screenshot of managing Microsoft Entra administrators via portal.

Nota:

La compatibilidad con la administración de administradores de Microsoft Entra mediante el SDK de Azure, la CLI de Azure y Azure Powershell estará disponible próximamente.

Administración de roles de Microsoft Entra mediante SQL

Una vez creado el primer administrador de Microsoft Entra desde Azure Portal o API, puede usar el rol de administrador para administrar roles de Microsoft Entra en la instancia de servidor flexible de Azure Database for PostgreSQL.

Se recomienda familiarizarse con la Plataforma de identidad de Microsoft para obtener el mejor uso de la integración de Microsoft Entra con el servidor flexible de Azure Database for PostgreSQL.

Tipos de entidades de seguridad

El servidor flexible de Azure Database for PostgreSQL almacena internamente la asignación entre roles de base de datos de PostgreSQL e identificadores únicos de objetos de AzureAD. Cada rol de base de datos de PostgreSQL se puede asignar a uno de los siguientes tipos de objetos de Microsoft Entra:

  1. Usuario: incluidos los usuarios locales e invitados del inquilino.
  2. Entidad de servicio. Incluidas aplicaciones e identidades administradas
  3. Grupo Cuando un rol de PostgreSQL está vinculado a un grupo de Microsoft Entra, cualquier usuario o entidad de servicio miembro de este grupo se puede conectar a la instancia de servidor flexible de Azure Database for PostgreSQL con el rol del grupo.

Enumeración de roles de Microsoft Entra mediante SQL

select * from pgaadauth_list_principals(true);

Parámetros:

  • true: Devolverá Usuarios administradores.
  • false: devolverá todos los usuarios de Microsoft Entra, tanto administradores de Microsoft Entra como administradores que no son de Microsoft Entra.

Creación de un rol mediante el nombre de entidad de seguridad de Microsoft Entra

select * from pgaadauth_create_principal('<roleName>', <isAdmin>, <isMfa>);

--For example: 

select * from pgaadauth_create_principal('mary@contoso.com', false, false);

Parámetros:

  • roleName: nombre del rol que se va a crear. Debe coincidir con un nombre de entidad de seguridad de Microsoft Entra:
    • Para los usuarios, use el nombre principal de usuario del perfil. Para los usuarios invitados, incluya el nombre completo de su dominio principal con la etiqueta #EXT#.
    • Para grupos y entidades de servicio, use el nombre para mostrar. El nombre debe ser único en el inquilino.
  • isAdmin: se establece en true si se va a crear un usuario administrador y en false para un usuario normal. Un usuario administrador creado de esta manera tiene los mismos privilegios que uno creado mediante el portal o la API.
  • isMfa: marca que indica si se debe exigir la autenticación multifactor para este rol.

Anular un rol con el nombre principal de Microsoft Entra

Recuerde que cualquier rol de Microsoft Entra que se cree en PostgreSQL debe quitarse mediante un administrador de Microsoft Entra. Si usa un administrador normal de PostgreSQL para quitar un rol entra, se producirá un error.

DROP ROLE rolename;

Creación de un rol mediante un identificador de objeto de Microsoft Entra

select * from pgaadauth_create_principal_with_oid('<roleName>', '<objectId>', '<objectType>', <isAdmin>, <isMfa>);

For example: select * from pgaadauth_create_principal_with_oid('accounting_application', '00000000-0000-0000-0000-000000000000', 'service', false, false);

Parámetros:

  • roleName: nombre del rol que se va a crear.
  • objectId: identificador único de objeto del objeto de Microsoft Entra:
    • En Usuarios, Grupos e Identidades administradas el valor de ObjectId se puede encontrar buscando el nombre del objeto en la página de Microsoft Entra ID en Azure Portal. Consulte esta guía como ejemplo.
    • Para las aplicaciones, se debe usar el elemento Objectid de la entidad de servicio correspondiente. En Azure Portal, el elemento ObjectId necesario se puede encontrar en la página Aplicaciones empresariales.
  • objectType: tipo del objeto de Microsoft Entra para vincular este rol: servicio, usuario, grupo.
  • isAdmin: se establece en true si se va a crear un usuario administrador y en false para un usuario normal. Un usuario administrador creado de esta manera tiene los mismos privilegios que uno creado mediante el portal o la API.
  • isMfa: marca que indica si se debe exigir la autenticación multifactor para este rol.

Habilitación de la autenticación de Microsoft Entra para un rol de PostgreSQL existente mediante SQL

El servidor flexible de Azure Database for PostgreSQL usa etiquetas de seguridad asociadas a roles de base de datos para almacenar la asignación de Microsoft Entra ID.

Puede usar el siguiente código SQL para asignar la etiqueta de seguridad:

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

Parámetros:

  • roleName: nombre de un rol de PostgreSQL existente en el que se debe habilitar la autenticación de Microsoft Entra.
  • objectId: identificador único del objeto de Microsoft Entra.
  • user: entidades de seguridad del usuario final.
  • service: aplicaciones o identidades administradas que se conectan con sus propias credenciales de servicio.
  • group: nombre del grupo de Microsoft Entra.

Pasos siguientes