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

SE APLICA A: Azure Database for PostgreSQL con 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.

Captura de pantalla de la administración de administradores de Microsoft Entra mediante el 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

pg_catalog.pgaadauth_list_principals(isAdminValue boolean)

Argumentos

isAdminValue

boolean cuando true devuelve usuarios administradores. Cuando falsedevuelve todos los usuarios de Microsoft Entra, incluidos los administradores de Microsoft Entra y los que no son administradores.

Tipo de valor devuelto

TABLE(rolname name, principalType text, objectId text, tenantId text, isMfa integer, isAdmin integer)devuelve una tabla con el esquema siguiente:

  • rolname es el nombre del rol en PostgreSQL.
  • principalType es el tipo de entidad de seguridad en Microsoft Entra ID. Puede ser user, group o service.
  • objectId es el identificador del objeto de Microsoft Entra ID para esta entidad de seguridad.
  • tenantId es el identificador del inquilino que hospeda esta entidad de seguridad en Microsoft Entra ID.
  • isMfa devuelve un valor de 1 si el usuario o rol tiene aplicada la autenticación multifactor.
  • isAdmin devuelve un valor de 1 si el usuario o rol es un administrador de PostgreSQL.

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

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

Argumentos

roleName

text es el nombre del rol que se va a crear. Debe coincidir con el nombre de la 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

boolean: si es true se crea un usuario administrador de PostgreSQL (miembro del rol azure_pg_admin y con permisos CREATEROLE y CREATEDB). Si es false, se crea un usuario normal de PostgreSQL.

isMfa

boolean: si es true se aplica la autenticación multifactor a este usuario de PostgreSQL.

Importante

La marca isMfa prueba la notificación mfa en el token de Microsoft Entrad ID, pero no afecta al flujo de adquisición de tokens. Por ejemplo, si el inquilino de la entidad de seguridad no está configurado para la autenticación multifactor, impedirá el uso de la característica. Y, si el inquilino requiere autenticación multifactor para todos los tokens, esta marca sea inútil.

Tipo de valor devuelto

text es el valor único que consta de una cadena "Rol creado para roleName", donde roleName es el argumento pasado para el parámetro roleName.

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

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

Argumentos

roleName

text es el nombre del rol que se va a crear.

objectId

text es el identificador de objetos único del objeto de Microsoft Entra.

  • Para los 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 grupos y entidades de servicio, use el nombre para mostrar. El nombre debe ser único en el inquilino.
  • Para las aplicaciones, se debe usar el valor de objectId de la entidad de servicio correspondiente. En Azure Portal, el valor de objectId necesario se puede encontrar en la página Aplicaciones empresariales de Azure Portal.
objectType

text es el tipo de objeto de Microsoft Entra que se va a vincular a este rol. Puede ser user, group o service.

isAdmin

boolean: si es true se crea un usuario administrador de PostgreSQL (miembro del rol azure_pg_admin y con permisos CREATEROLE y CREATEDB). Si es false, se crea un usuario normal de PostgreSQL.

isMfa

boolean: si es true se aplica la autenticación multifactor a este usuario de PostgreSQL.

Importante

La marca isMfa prueba la notificación mfa en el token de Microsoft Entrad ID, pero no afecta al flujo de adquisición de tokens. Por ejemplo, si el inquilino de la entidad de seguridad no está configurado para la autenticación multifactor, impedirá el uso de la característica. Y, si el inquilino requiere autenticación multifactor para todos los tokens, esta marca sea inútil.

Tipo de valor devuelto

text es el valor único que consta de una cadena "Rol creado para roleName", donde roleName es el argumento pasado para el parámetro roleName.

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 correspondiente.

Puede usar el siguiente código SQL para asignar la etiqueta de seguridad necesaria y asociarla a un objeto Microsoft Entra:

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

Argumentos

roleName

textes el nombre de un rol de PostgreSQL existente en el que se debe habilitar la autenticación de Microsoft Entra.

objectId

text es el identificador de objetos único del objeto de Microsoft Entra.

objectType

text se puede establecer en usergroup o en service (para aplicaciones o identidades administradas que se conectan con sus propias credenciales de servicio).

admin

text puede estar presente o ausente. Los usuarios o roles en los que esta parte está presente en su etiqueta de seguridad pueden administrar otros roles de Microsoft Entra ID.

Pasos siguientes