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:
- Acción RBAC de Azure:Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey/action
- Rol integrado con privilegios mínimos:Delegator de blobs de Storage
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.