Obtención de la clave de delegación de usuarios

La Get User Delegation Key operación obtiene una clave que se puede usar para firmar una SAS de delegación de usuarios (firma de acceso compartido). Una SAS de delegación de usuarios concede acceso a Azure Blob Storage recursos mediante credenciales de Microsoft Entra. La Get User Delegation Key operación está disponible en la versión 2018-11-09 y posteriores.

Solicitud

Construya la operación Get User Delegation Key de la forma siguiente. Se requiere HTTPS. Reemplace myaccount por el nombre de la cuenta de almacenamiento.

URI de solicitud de método POST Versión de HTTP
https://myaccount.blob.core.windows.net/?restype=service&comp=userdelegationkey HTTP/1.1

Solicitud del servicio de almacenamiento emulado

Cuando realice una solicitud en el servicio de almacenamiento local, especifique el nombre de host local y el puerto de Blob Storage como 127.0.0.1:10000, seguido del nombre de la cuenta de almacenamiento local:

URI de solicitud de método POST Versión de HTTP
http://127.0.0.1:10000/devstoreaccount1/?restype=service&comp=userdelegationkey HTTP/1.1

Para más información, consulte Uso del emulador de Azurite para desarrollo y pruebas locales de Azure Storage.

Parámetros del identificador URI

Se pueden especificar los parámetros adicionales siguientes en el URI de solicitud.

Parámetro Descripción
timeout Opcional. El parámetro timeout se expresa en segundos. Para más información, consulte Establecimiento de tiempos de espera para las operaciones de Blob Storage.

Encabezados de solicitud

En la tabla siguiente se describen los encabezados de solicitud requeridos y opcionales.

Encabezado de solicitud Descripción
Authorization Necesario. Especifica el esquema de autorización. Solo se admite la autorización con Microsoft Entra ID. Para obtener más información, vea Autorizar con Microsoft Entra ID.
x-ms-version Necesario para todas las solicitudes autorizadas. Para obtener más información, vea Versiones de los servicios de Azure Storage.
x-ms-client-request-id Opcional. Proporciona un valor opaco generado por el cliente con un límite de caracteres de 1 kibibyte (KiB) que se registra en los registros cuando se configura el registro. Se recomienda encarecidamente usar este encabezado para correlacionar las actividades del lado cliente con las solicitudes que recibe el servidor. Para obtener más información, consulte Supervisión de Azure Blob Storage.

Cuerpo de la solicitud

El formato del cuerpo de la solicitud es el siguiente:

<?xml version="1.0" encoding="utf-8"?>  
<KeyInfo>  
    <Start>String, formatted ISO Date</Start>
    <Expiry>String, formatted ISO Date </Expiry>
</KeyInfo>  

Los elementos del cuerpo de la solicitud se describen en la tabla siguiente:

Elemento Descripción
Iniciar Necesario. La hora de inicio de la SAS de delegación de usuarios, en formato de fecha ISO. Debe ser una fecha y hora válidas en un plazo de siete días a partir de la fecha actual.
Expiry Necesario. La hora de expiración de la SAS de delegación de usuarios, en formato de fecha ISO. Debe ser una fecha y hora válidas en un plazo de siete días a partir de la fecha actual.

Response

La respuesta incluye un código de estado HTTP y un conjunto de encabezados de respuesta.

status code

Una operación correcta devuelve el código de estado 200 Correcto.

Para obtener más información sobre los códigos de estado, consulte Códigos de estado y error.

Encabezados de respuesta

La respuesta para esta operación incluye los encabezados siguientes. La respuesta también puede incluir otros encabezados HTTP estándar. Todos los encabezados estándar se ajustan a la especificación del protocolo HTTP/1.1.

Encabezado de respuesta Descripción
x-ms-request-id Identifica de forma única la solicitud que se realizó y se puede usar para solucionar problemas de la solicitud. Para más información, consulte Solución de problemas de operaciones de API.
x-ms-version Versión de Blob Storage que se usó para ejecutar la solicitud.
Date Valor de fecha y hora UTC generado por el servicio, que indica la hora en que se inició la respuesta.
x-ms-client-request-id Se puede usar para solucionar problemas de solicitudes y respuestas correspondientes. El valor de este encabezado es igual al valor del x-ms-client-request-id encabezado si está presente en la solicitud y el valor no contiene más de 1024 caracteres ASCII visibles. Si el x-ms-client-request-id encabezado no está presente en la solicitud, no estará presente en la respuesta.

Response body

El formato del cuerpo de respuesta es el siguiente:

<?xml version="1.0" encoding="utf-8"?>
<UserDelegationKey>
    <SignedOid>String containing a GUID value</SignedOid>
    <SignedTid>String containing a GUID value</SignedTid>
    <SignedStart>String formatted as ISO date</SignedStart>
    <SignedExpiry>String formatted as ISO date</SignedExpiry>
    <SignedService>b</SignedService>
    <SignedVersion>String specifying REST api version to use to create the user delegation key</SignedVersion>
    <Value>String containing the user delegation key</Value>
</UserDelegationKey>

Los elementos del cuerpo de respuesta se describen en la tabla siguiente:

Elemento Descripción
SignedOid Identificador inmutable de un objeto en el sistema de identidad de Microsoft.
SignedTid GUID que representa el inquilino de Microsoft Entra del que procede el usuario.
SignedStart Hora de inicio de la clave de delegación de usuarios, en formato de fecha ISO.
SignedExpiry La hora de expiración de la clave de delegación de usuarios, en formato de fecha ISO.
SignedService Servicio para el que se puede usar la clave de delegación de usuarios, donde b representa Blob Storage.
SignedVersion La versión de la API REST que se usa para obtener la clave de delegación de usuarios.
Valor Clave de delegación de usuarios.

Authorization

La autorización es necesaria al llamar a cualquier operación de acceso a datos en Azure Storage. Solo puede autorizar la Get User Delegation Key operación mediante Microsoft Entra ID.

Permisos

La entidad de seguridad que solicita la clave de delegación de usuarios debe tener los permisos adecuados para hacerlo. Una entidad de seguridad Microsoft Entra puede ser un usuario, un grupo, una entidad de servicio o una identidad administrada.

A continuación se enumeran las acciones de RBAC necesarias para que una entidad de seguridad de Microsoft Entra llame a la Get User Delegation Key operación y el rol RBAC integrado con privilegios mínimos que incluye esta acción:

Cualquier rol integrado que incluya esta acción RBAC de Azure, ya sea explícitamente o como parte de una definición de carácter comodín, puede llamar a la Get User Delegation Key operación.

Para más información sobre la asignación de roles mediante RBAC de Azure, consulte Asignación de un rol de Azure para el acceso a datos de blobs.

Dado que la operación actúa en el nivel de la cuenta de almacenamiento, la Get User Delegation Key acción Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey debe tener el ámbito en el nivel de la cuenta de almacenamiento, el grupo de recursos o la suscripción. Si a la entidad de seguridad se le asigna cualquiera de los roles integrados enumerados anteriormente, o a un rol personalizado que incluye la acción Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey , en el nivel de la cuenta de almacenamiento, el grupo de recursos o la suscripción, la entidad de seguridad podrá solicitar la clave de delegación de usuario.

Si a la entidad de seguridad se le asigna un rol que permite el acceso a los datos, pero se limita al nivel de un contenedor, también puede asignar el rol delegator de blobs de almacenamiento a esa entidad de seguridad en el nivel de la cuenta de almacenamiento, el grupo de recursos o la suscripción. El rol Delegator de blobs de almacenamiento concede a la entidad de seguridad permisos para solicitar la clave de delegación de usuarios.

Para más información sobre los roles de RBAC para Azure Storage, consulte Autorización con Azure Active Directory.

Comentarios

Use la clave de delegación de usuarios para crear una SAS de delegación de usuarios. Incluya los campos que se devuelven en la respuesta a Get User Delegation Key en el token de SAS de delegación de usuarios. Para más información, vea Creación de SAS de delegación de usuarios.

La clave de delegación de usuarios no se puede usar para acceder directamente a los recursos de Blob Storage.

Facturación

Las solicitudes de precios se pueden originar en clientes que usan las API de Blob Storage, ya sea directamente a través de la API rest de Blob Storage o de una biblioteca cliente de Azure Storage. Estas solicitudes acumulan cargos por transacción. El tipo de transacción afecta a cómo se cobra la cuenta. Por ejemplo, las transacciones de lectura se acumulan en una categoría de facturación diferente que las transacciones de escritura. En la tabla siguiente se muestra la categoría de facturación de Get User Delegation Key las solicitudes basadas en el tipo de cuenta de almacenamiento:

Operación Tipo de cuenta de almacenamiento Categoría de facturación
Obtención de la clave de delegación de usuarios Blobs en bloques Premium
De uso general, estándar, v2
Otras operaciones
Obtención de la clave de delegación de usuarios De uso general, estándar, v1 Lee operaciones.

Para obtener información sobre los precios de la categoría de facturación especificada, consulte precios Azure Blob Storage.

Consulte también