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)
- Abra la página Autenticación para la instancia de servidor flexible de Azure Database for PostgreSQL en Azure Portal.
- 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.
- Para quitar un administrador, seleccione el icono Eliminar correspondiente al que se va a quitar.
- Seleccione Guardar y espere a que finalice la operación de aprovisionamiento.
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:
- Usuario: incluidos los usuarios locales e invitados del inquilino.
- Entidad de servicio. Incluidas aplicaciones e identidades administradas
- 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 false
devuelve 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 seruser
,group
oservice
.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 de1
si el usuario o rol tiene aplicada la autenticación multifactor.isAdmin
devuelve un valor de1
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
text
es 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 user
group
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
- Revise los conceptos generales de Autenticación de Microsoft Entra con Azure Database for PostgreSQL: servidor flexible.