Partilhar via


Obter Chave de Delegação de Utilizador

A Get User Delegation Key operação obtém uma chave que pode ser utilizada para assinar uma SAS de delegação de utilizador (assinatura de acesso partilhado). Uma SAS de delegação de utilizador concede acesso a recursos Armazenamento de Blobs do Azure com credenciais Microsoft Entra. A Get User Delegation Key operação está disponível na versão 2018-11-09 e posterior.

Pedir

Construa o Get User Delegation Key seguinte. É necessário HTTPS. Substitua myaccount pelo nome da sua conta de armazenamento.

URI do pedido do método POST Versão HTTP
https://myaccount.blob.core.windows.net/?restype=service&comp=userdelegationkey HTTP/1.1

Pedido de serviço de armazenamento emulado

Quando estiver a fazer um pedido relativamente ao serviço de armazenamento local, especifique o nome do anfitrião local e a porta do Armazenamento de Blobs como 127.0.0.1:10000, seguido do nome da conta de armazenamento local:

URI do pedido do método POST Versão HTTP
http://127.0.0.1:10000/devstoreaccount1/?restype=service&comp=userdelegationkey HTTP/1.1

Para obter mais informações, veja Utilizar o emulador do Azurite para o desenvolvimento local do Armazenamento do Azure.

Parâmetros do URI

Os seguintes parâmetros adicionais podem ser especificados no URI do pedido.

Parâmetro Description
timeout Opcional. O timeout parâmetro é expresso em segundos. Para obter mais informações, veja Set time-outs for Blob Storage operations (Definir tempos limite para operações de Armazenamento de Blobs).

Cabeçalhos do pedido

A tabela seguinte descreve os cabeçalhos de pedido obrigatórios e opcionais.

Cabeçalho do pedido Description
Authorization Obrigatório. Especifica o esquema de autorização. Só é suportada a autorização com Microsoft Entra ID. Para obter mais informações, veja Autorizar com Microsoft Entra ID.
x-ms-version Necessário para todos os pedidos autorizados. Para obter mais informações, veja Controlo de versões dos serviços de Armazenamento do Azure.
x-ms-client-request-id Opcional. Fornece um valor opaco gerado pelo cliente com um limite de carateres de 1 kibibyte (KiB) que é registado nos registos quando o registo é configurado. Recomendamos vivamente que utilize este cabeçalho para correlacionar as atividades do lado do cliente com os pedidos que o servidor recebe. Para obter mais informações, veja Monitorizar Armazenamento de Blobs do Azure.

Corpo do pedido

O formato do corpo do pedido é o seguinte:

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

Os elementos do corpo do pedido estão descritos na tabela seguinte:

Elemento Descrição
Iniciar Obrigatório. A hora de início da SAS de delegação de utilizador, no formato de data ISO. Tem de ser uma data e hora válidas no prazo de sete dias após a data atual.
Validade Obrigatório. A hora de expiração da SAS de delegação de utilizador, no formato de data ISO. Tem de ser uma data e hora válidas no prazo de sete dias após a data atual.

Resposta

A resposta inclui um código de estado HTTP e um conjunto de cabeçalhos de resposta.

Código de estado

Uma operação bem-sucedida devolve o código de estado 200 (OK).

Para obter mais informações sobre códigos de estado, veja Códigos de estado e de erro.

Cabeçalhos de resposta

A resposta para esta operação inclui os seguintes cabeçalhos. A resposta também pode incluir cabeçalhos HTTP padrão adicionais. Todos os cabeçalhos padrão estão em conformidade com a especificação do protocolo HTTP/1.1.

Cabeçalho de resposta Descrição
x-ms-request-id Identifica exclusivamente o pedido que foi feito e pode ser utilizado para resolver o pedido. Para obter mais informações, veja Resolver problemas de operações da API.
x-ms-version A versão do Armazenamento de Blobs que foi utilizada para executar o pedido.
Date Um valor de data/hora UTC gerado pelo serviço, que indica a hora em que a resposta foi iniciada.
x-ms-client-request-id Pode ser utilizado para resolver problemas de pedidos e respostas correspondentes. O valor deste cabeçalho é igual ao valor do x-ms-client-request-id cabeçalho se estiver presente no pedido e o valor não contiver mais de 1024 carateres ASCII visíveis. Se o x-ms-client-request-id cabeçalho não estiver presente no pedido, não estará presente na resposta.

Corpo da resposta

O formato do corpo da resposta é o seguinte:

<?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>

Os elementos do corpo da resposta estão descritos na tabela seguinte:

Elemento Descrição
SignedOid O identificador imutável de um objeto no sistema de identidade da Microsoft.
SignedTid Um GUID que representa o Microsoft Entra inquilino do qual o utilizador é.
Início Assinado A hora de início da chave de delegação de utilizador, no formato de data ISO.
SignedExpiry A hora de expiração da chave de delegação de utilizador, no formato de data ISO.
SignedService O serviço para o qual a chave de delegação de utilizador pode ser utilizada, em que b representa o Armazenamento de Blobs.
SignedVersion A versão da API REST que é utilizada para obter a chave de delegação de utilizador.
Valor A chave de delegação do utilizador.

Autorização

A autorização é necessária ao chamar qualquer operação de acesso a dados no Armazenamento do Azure. Só pode autorizar a Get User Delegation Key operação com Microsoft Entra ID.

Permissões

O principal de segurança que pede a chave de delegação de utilizador tem de ter as permissões adequadas para o fazer. Um Microsoft Entra principal de segurança pode ser um utilizador, um grupo, um principal de serviço ou uma identidade gerida.

Abaixo encontra-se a ação RBAC necessária para um principal de segurança Microsoft Entra chamar a Get User Delegation Key operação e a função RBAC do Azure com menos privilégios que inclui esta ação:

Qualquer função incorporada que inclua esta ação RBAC do Azure, explicitamente ou como parte de uma definição de caráter universal, tem permissão para chamar a Get User Delegation Key operação.

Para saber mais sobre como atribuir funções com o RBAC do Azure, veja Atribuir uma função do Azure para acesso a dados de blobs.

Uma vez que a Get User Delegation Key operação atua ao nível da conta de armazenamento, a ação Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey tem de estar no âmbito ao nível da conta de armazenamento, do grupo de recursos ou da subscrição. Se for atribuída a qualquer uma das funções incorporadas anteriormente listadas ou a uma função personalizada que inclua a ação Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey , ao nível da conta de armazenamento, do grupo de recursos ou da subscrição, o principal de segurança poderá pedir a chave de delegação de utilizador.

Se for atribuída ao principal de segurança uma função que permita o acesso aos dados, mas que esteja no âmbito do nível de um contentor, pode atribuir adicionalmente a função Delegador de Blobs de Armazenamento a esse principal de segurança ao nível da conta de armazenamento, grupo de recursos ou subscrição. A função Delegador de Blobs de Armazenamento concede ao principal de segurança permissões para pedir a chave de delegação do utilizador.

Para obter mais informações sobre as funções RBAC para o Armazenamento do Azure, veja Autorizar com o Azure Active Directory.

Observações

Utilize a chave de delegação de utilizador para criar uma SAS de delegação de utilizador. Inclua os campos devolvidos na resposta ao Get User Delegation Key token SAS de delegação de utilizador. Para obter mais informações, veja Criar uma SAS de delegação de utilizador.

A chave de delegação de utilizadores não pode ser utilizada para aceder diretamente aos recursos do Armazenamento de Blobs.

Faturação

Os pedidos de preços podem ter origem em clientes que utilizam APIs de Armazenamento de Blobs, diretamente através da API REST do Armazenamento de Blobs ou a partir de uma biblioteca de cliente do Armazenamento do Azure. Estes pedidos acumulam custos por transação. O tipo de transação afeta a forma como a conta é cobrada. Por exemplo, as transações de leitura acumulam-se numa categoria de faturação diferente das transações de escrita. A tabela seguinte mostra a categoria de faturação dos Get User Delegation Key pedidos com base no tipo de conta de armazenamento:

Operação Tipo de conta de armazenamento Categoria de faturação
Obter Chave de Delegação de Utilizador Blob de bloco premium
Standard para fins gerais v2
Outras operações
Obter Chave de Delegação de Utilizador Standard para fins gerais v1 Operações de leitura

Para saber mais sobre os preços da categoria de faturação especificada, veja Armazenamento de Blobs do Azure Preços.

Ver também