Autorizar el acceso a tablas usando Microsoft Entra ID

Azure Storage admite el uso de Microsoft Entra ID para autorizar solicitudes a datos de tabla. Con Microsoft Entra ID, puede usar el control de acceso basado en rol de Azure (RBAC de Azure) para conceder permisos a una entidad de seguridad, que puede ser un usuario o una entidad de servicio de aplicación. La entidad de seguridad principal es autenticada por Microsoft Entra ID para devolver un token OAuth 2.0. Después, el token se puede usar para autorizar una solicitud en Table service.

La autorización de solicitudes contra Azure Storage con Microsoft Entra ID proporciona mayor seguridad y facilidad de uso que la autorización de clave compartida. Microsoft recomienda utilizar la autorización Microsoft Entra con sus aplicaciones de tabla siempre que sea posible para garantizar el acceso con los privilegios mínimos requeridos.

La autorización con Microsoft Entra ID está disponible para todos los usos generales en todas las regiones públicas y nubes nacionales. Solo las cuentas de almacenamiento creadas con el modelo de implementación de Azure Resource Manager admiten la autorización de Microsoft Entra.

Información general de Microsoft Entra ID para tablas

Cuando una entidad de seguridad (un usuario, un grupo o una aplicación) intenta acceder a un recurso de tabla, la solicitud debe estar autorizada. Con Microsoft Entra ID, el acceso a un recurso es un proceso de dos pasos. En primer lugar, se autentica la identidad de la entidad de seguridad y se devuelve un token de OAuth 2.0. Después, el token se pasa como parte de una solicitud a Table service y el servicio lo usa para autorizar el acceso al recurso especificado.

El paso de autenticación exige que una aplicación solicite un token de acceso de OAuth 2.0 en tiempo de ejecución. Si una aplicación se ejecuta desde una entidad de Azure como una máquina virtual de Azure, un conjunto de escalado de máquinas virtuales o una aplicación de Azure Functions, puede usar una identidad administrada para el acceso a las tablas.

El paso de autorización exige que se asignen uno o varios roles de Azure a la entidad de seguridad. Azure Storage proporciona roles de Azure que abarcan conjuntos comunes de permisos para datos de tablas. Los roles que se asignan a una entidad de seguridad determinan los permisos que tiene esa entidad de seguridad. Para más información sobre la asignación de roles de Azure para el acceso a tablas, vea Asignación de un rol de Azure para acceder a datos de tablas.

En la tabla siguiente se señala información adicional para autorizar el acceso a los datos en varios escenarios:

Lenguaje .NET Java JavaScript Python Go
Información general sobre la autenticación con Microsoft Entra ID Autenticación de aplicaciones de .NET con los servicios de Azure Autenticación de Azure con Java y Azure Identity Autenticación de aplicaciones JavaScript en Azure mediante el SDK de Azure Autenticación de aplicaciones de Python en Azure mediante el SDK de Azure
Autenticación mediante entidades de servicio para desarrolladores Autenticación de aplicaciones NET en servicios de Azure durante el desarrollo local mediante entidades de servicio Autenticación de Azure con entidades de servicio Autenticación de aplicaciones JS en servicios de Azure con entidad de servicio Autenticación de aplicaciones Python en servicios de Azure durante el desarrollo local mediante entidades de servicio Autenticación de Azure SDK para Go con una entidad de servicio
Autenticación mediante cuentas de desarrollador o de usuario Autenticación de aplicaciones .NET en servicios de Azure durante el desarrollo local mediante cuentas de desarrollador Autenticación de Azure con credenciales de usuario Autenticación de aplicaciones JS en servicios de Azure con cuentas de desarrollo Autenticación de aplicaciones Python en servicios de Azure durante el desarrollo local mediante cuentas de desarrollador Autenticación de Azure con Azure SDK para Go
Autenticación desde aplicaciones hospedadas en Azure Autenticación de aplicaciones hospedadas en recursos de Azure con el SDK de Azure para .NET Autenticación de aplicaciones de Java hospedadas en Azure Autenticación de aplicaciones JavaScript hospedadas en Azure en recursos de Azure con el SDK de Azure para JavaScript Autenticación de aplicaciones hospedadas en recursos de Azure con el SDK de Azure para Python Autenticación con Azure SDK para Go mediante una identidad administrada
Autenticación desde aplicaciones locales Autenticación en recursos de Azure desde aplicaciones .NET hospedadas en el entorno local Autenticación de aplicaciones JavaScript locales en recursos de Azure Autenticación en recursos de Azure desde aplicaciones Python hospedadas en el entorno local
Información general de la biblioteca de clientes de identidad Biblioteca de cliente de Azure Identity para .NET Biblioteca cliente de Azure Identity para Java Biblioteca cliente de Azure Identity para JavaScript Biblioteca cliente de Azure Identity para Python Biblioteca de cliente de Azure Identity para Go

Asignación de roles de Azure para derechos de acceso

Microsoft Entra autoriza los derechos de acceso a recursos protegidos mediante el control de acceso basado en roles de Azure (Azure RBAC). Azure Storage define un conjunto de roles integrados de Azure que abarcan conjuntos comunes de permisos utilizados para acceder a los datos de tablas. También puede definir roles personalizados para el acceso a datos de tablas.

Cuando un rol de Azure se asigna a una entidad de seguridad de Microsoft Entra, Azure concede a esa entidad de seguridad acceso a los recursos. Una entidad de seguridad Microsoft Entra puede ser un usuario, un grupo, una entidad de seguridad de servicio de aplicación o unaidentidad administrada para recursos de Azure.

Ámbito de recursos

Antes de asignar un rol de Azure RBAC a una entidad de seguridad, determine el ámbito de acceso que debería tener la entidad de seguridad. Los procedimientos recomendados dictan que siempre es mejor conceder únicamente el ámbito más restringido posible. Los roles de Azure RBAC definidos en un ámbito más amplio los heredan los recursos que están debajo de ellos.

Puede limitar el acceso a los recursos de tabla de Azure en los niveles siguientes, empezando por el ámbito más reducido:

  • Una tabla individual. En este ámbito, se aplica una asignación de roles a la tabla especificada.
  • La cuenta de almacenamiento En este ámbito, se aplica una asignación de roles a todas las tablas de la cuenta.
  • el grupo de recursos. En este ámbito, se aplica una asignación de roles a todas las tablas de todas las cuentas de almacenamiento del grupo de recursos.
  • Suscripción. En este ámbito, se aplica una asignación de roles a todas las tablas de todas las cuentas de almacenamiento de todos los grupos de recursos de la suscripción.
  • Un grupo de administración. En este ámbito, se aplica una asignación de roles a todas las tablas de todas las cuentas de almacenamiento de todos los grupos de recursos de todas las suscripciones del grupo de administración.

Para obtener más información sobre el ámbito de las asignaciones de roles de RBAC de Azure, consulte Información sobre el ámbito de RBAC de Azure.

Roles integrados de Azure para tablas

Azure RBAC proporciona roles integrados para autorizar el acceso a datos de tabla con Microsoft Entra ID y OAuth. Entre los roles integrados que proporcionan permisos a las tablas en Azure Storage están, por ejemplo, los siguientes:

Para obtener información sobre cómo asignar un rol integrado de Azure a una entidad de seguridad, vea Asignación de un rol de Azure para acceder a datos de tablas. Para obtener información sobre cómo enumerar los roles RBAC de Azure y sus permisos, consulte Enumeración de las definiciones de roles de Azure.

Para más información acerca de cómo se definen los roles integrados para Azure Storage, consulte Descripción de definiciones de roles. Para más información acerca de la creación de roles personalizados de Azure, consulte Roles personalizados de Azure.

Solo los roles definidos explícitamente para el acceso a datos permiten a una entidad de seguridad acceder a los datos de tablas. Los roles integrados, como Propietario, Colaborador y Colaborador de la cuenta de almacenamiento, permiten que una entidad de seguridad administre una cuenta de almacenamiento, pero no proporcionan acceso a los datos de tablas dentro de esa cuenta a través de Microsoft Entra ID. Sin embargo, si un rol incluye Microsoft.Storage/storageAccounts/listKeys/action, el usuario al que se haya asignado ese rol podrá acceder a los datos de la cuenta de almacenamiento mediante la autorización de clave compartida con las claves de acceso de la cuenta.

Para obtener información detallada sobre los roles integrados de Azure para Azure Storage para los servicios de datos y el servicio de administración, consulte la sección Almacenamiento en Roles integrados de Azure para RBAC de Azure. Además, para obtener información sobre los diferentes tipos de roles que proporcionan permisos en Azure, consulte Roles de Azure, roles de Microsoft Entra y roles de administrador de suscripciones clásicas.

Importante

Las asignaciones de roles de Azure pueden tardar hasta 30 minutos en propagarse.

Permisos de acceso para operaciones de datos

Para obtener información sobre los permisos necesarios para llamar a operaciones concretas de Table service, vea Permisos para llamar a operaciones de datos.

Pasos siguientes