Compartir a través de


Autenticación de Microsoft Entra ID y PostgreSQL con Azure Cosmos DB for PostgreSQL

SE APLICA A: Azure Cosmos DB for PostgreSQL (con tecnología de la extensión de base de datos de Citus en PostgreSQL)

Azure Cosmos DB for PostgreSQL admite la autenticación e integración de PostgreSQL con Microsoft Entra ID. Cada clúster de Azure Cosmos DB for PostgreSQL se crea con la autenticación nativa de PostgreSQL habilitada y un rol de PostgreSQL integrado denominado citus. Puede agregar más roles nativos de PostgreSQL una vez completado el aprovisionamiento del clúster.

También puede habilitar la autenticación de Microsoft Entra ID (anteriormente Azure Active Directory) en un clúster, además del método de autenticación de PostgreSQL o en lugar de este. Puede configurar métodos de autenticación en cada clúster de Azure Cosmos DB for PostgreSQL de forma independiente. Si necesita cambiar el método de autenticación, puede hacerlo en cualquier momento después de que se complete el aprovisionamiento del clúster. El cambio de métodos de autenticación no requiere el reinicio del clúster.

Autenticación de PostgreSQL

El motor de PostgreSQL usa roles para controlar el acceso a los objetos de la base de datos. Un clúster de Azure Cosmos DB for PostgreSQL recién creado incluye varios roles predefinidos:

Dado que Azure Cosmos DB for PostgreSQL es un servicio PaaS administrado, solo Microsoft puede iniciar sesión con el postgresrol de superusuario. Para el acceso administrativo limitado, Azure Cosmos DB for PostgreSQL proporciona el rol citus.

El servicio administrado debe replicar todos los roles de PostgreSQL en todos los nodos de un clúster. Para facilitar este requisito, todos los demás roles de PostgreSQL deben crearse mediante las funcionalidades de administración de Azure Cosmos DB for PostgreSQL.

El rol de Citus

Permisos para el rol de citus:

  • Leer todas las variables de configuración, incluso las variables que normalmente solo son visibles para los superusuarios.
  • Leer todas las vistas de pg_stat_* y usar varias extensiones relacionadas con estadísticas, incluso las vistas o extensiones que normalmente solo son visibles para los superusuarios.
  • Ejecutar funciones de supervisión que puedan tener bloqueos de uso compartido de acceso en tablas, potencialmente durante mucho tiempo.
  • Cree extensiones de PostgreSQL.

En particular, el rol citus tiene algunas restricciones:

  • No puede crear roles.
  • No puede crear bases de datos.

El rol citus no se puede eliminar, pero se deshabilita si se selecciona el método de autenticación "Solo autenticación de Microsoft Entra ID" en el clúster.

Autenticación de Microsoft Entra ID

La autenticación de Microsoft Entra ID (anteriormente Azure Active Directory) es un mecanismo de conexión a Azure Cosmos DB for PostgreSQL mediante identidades definidas en Microsoft Entra ID. Con la autenticación de Microsoft Entra ID, puede administrar las identidades de los usuarios de la base de datos y otros servicios de Microsoft en una ubicación central, lo que simplifica la administración de los permisos.

Ventajas de utilizar Microsoft Entra ID:

  • Autenticación de usuarios en los servicios de Azure de manera uniforme.
  • Administración de directivas de contraseñas y rotación de contraseñas en un solo lugar.
  • Microsoft Entra ID admite varias formas de autenticación, lo que puede eliminar la necesidad de almacenar contraseñas.
  • La autenticación de Microsoft Entra ID utiliza roles de base de datos PostgreSQL para autenticar las identidades en el nivel de base de datos
  • Compatibilidad de la autenticación basada en tokens para las aplicaciones que se conectan a Azure Cosmos DB for PostgreSQL

Administración del acceso de PostgreSQL para las entidades de seguridad de Microsoft Entra ID

Cuando la autenticación de Microsoft Entra ID está habilitada y se agrega una entidad de seguridad de Microsoft Entra ID como administrador de Microsoft Entra ID, la cuenta obtiene los mismos privilegios que el rol citus. El inicio de sesión del administrador de Microsoft Entra ID puede ser un usuario de Microsoft Entra ID, una entidad de servicio o una identidad administrada. Se pueden configurar varios administradores de Microsoft Entra ID en cualquier momento y, de manera opcional, puede deshabilitar la autenticación (con contraseña) en un clúster de Azure Cosmos DB for PostgreSQL con el fin de mejorar las necesidades de auditoría y cumplimiento.

Además, puede agregarse a un clúster cualquier número de roles de Microsoft Entra ID que no sean de administrador en cualquier momento una vez habilitada la autenticación de Microsoft Entra ID. Los permisos de base de datos para los roles de Microsoft Entra ID que no son de administrador se gestionan de forma similar a los roles normales.

Conexión mediante identidades de Microsoft Entra ID

La autenticación de Microsoft Entra ID admite los siguientes métodos de conexión a una base de datos mediante identidades de Microsoft Entra ID:

  • Contraseña de Microsoft Entra ID
  • Integrado con Microsoft Entra ID
  • Microsoft Entra ID universal con MFA
  • Uso de certificados de aplicación o secretos de cliente de Microsoft Entra ID
  • Identidad administrada

Una vez que se haya autenticado en Microsoft Entra ID, recupere un token. Este token es la contraseña para iniciar sesión.

Otras consideraciones

  • En cualquier momento se pueden configurar varias entidades de seguridad de Microsoft Entra ID (usuario, entidad de servicio o identidad administrada) como administrador de Microsoft Entra ID para un clúster de Azure Cosmos DB for PostgreSQL.
  • Si se elimina una entidad de seguridad del servicio Microsoft Entra ID, la entidad permanece como un rol de PostgreSQL en el clúster, pero ya no puede adquirir un nuevo token de acceso. En este caso, aunque el rol coincidente todavía existe en la base de datos de Postgres, no podrá autenticarse en los nodos de clúster. Los administradores de bases de datos tienen que transferir la propiedad y quitar esos roles manualmente.

Nota:

Aún es posible iniciar sesión con el usuario de Microsoft Entra ID eliminado hasta que expire el token (90 minutos como máximo a partir de la emisión del token). Si también quita el usuario del clúster de Azure Cosmos DB for PostgreSQL, este acceso se revocará inmediatamente.

  • Azure Cosmos DB for PostgreSQL asocia los tokens de acceso al rol de base de datos usando el id. único de usuario de Microsoft Entra ID, en lugar de usar el nombre de usuario. Si se elimina un usuario de Microsoft Entra ID y se crea un nuevo usuario con el mismo nombre, Azure Cosmos DB for PostgreSQL lo considera un usuario diferente. Por tanto, si se elimina un usuario de Microsoft Entra ID y se agrega un nuevo usuario con el mismo nombre, el nuevo usuario no puede conectarse con el rol actual.

Pasos siguientes