Поделиться через


Получение ключа делегирования пользователя

Операция Get User Delegation Key получает ключ, который можно использовать для подписи SAS делегирования пользователя (подписанный URL-адрес). SAS для делегирования пользователей предоставляет доступ к Хранилище BLOB-объектов Azure ресурсам с помощью учетных данных Microsoft Entra. Операция Get User Delegation Key доступна в версии 2018-11-09 и более поздних версиях.

Запрос

Построение Get User Delegation Key выполняется следующим образом. Требуется использование протокола HTTPS. Замените myaccount именем своей учетной записи хранения.

URI запроса метода POST параметр "Версия HTTP"
https://myaccount.blob.core.windows.net/?restype=service&comp=userdelegationkey HTTP/1.1

Запрос службы эмулированного хранилища

При выполнении запроса к локальной службе хранилища укажите имя локального узла и порт хранилища BLOB-объектов в качестве 127.0.0.1:10000, а затем имя локальной учетной записи хранения:

URI запроса метода POST параметр "Версия HTTP"
http://127.0.0.1:10000/devstoreaccount1/?restype=service&comp=userdelegationkey HTTP/1.1

Дополнительные сведения см. в статье Использование эмулятора Azurite для разработки и тестирования службы хранилища Azure.

Параметры универсального кода ресурса (URI)

В URI запроса могут быть заданы следующие дополнительные параметры.

Параметр Описание
timeout Необязательный элемент. Параметр timeout указывается в секундах. Дополнительные сведения см. в разделе Настройка времени ожидания для операций с хранилищем BLOB-объектов.

Заголовки запросов

В следующей таблице перечислены обязательные и необязательные заголовки запросов.

Заголовок запроса Описание
Authorization Обязательный. Указывает схему авторизации. Поддерживается только авторизация с Microsoft Entra ID. Дополнительные сведения см. в статье Авторизация с помощью Microsoft Entra ID.
x-ms-version Требуется для всех авторизованных запросов. Дополнительные сведения см. в разделе Управление версиями для служб хранилища Azure.
x-ms-client-request-id Необязательный элемент. Предоставляет созданное клиентом непрозрачное значение с ограничением в 1 кибибайт (КиБ), которое записывается в журналы при настройке ведения журнала. Мы настоятельно рекомендуем использовать этот заголовок для сопоставления действий на стороне клиента с запросами, получаемыми сервером. Дополнительные сведения см. в разделе Мониторинг Хранилище BLOB-объектов Azure.

Текст запроса

Далее приведен формат текста запроса.

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

Элементы текста запроса описаны в следующей таблице:

Элемент Описание
Запуск Обязательный. Время начала sas делегирования пользователя в формате даты ISO. Это должны быть допустимые дата и время в течение семи дней с текущей даты.
Expiry Обязательный. Время окончания срока действия SAS делегирования пользователя в формате даты ISO. Это должны быть допустимые дата и время в течение семи дней с текущей даты.

Ответ

Ответ включает код состояния HTTP и набор заголовков ответа.

Код состояния

Успешная операция возвращает код состояния 200 (ОК).

Дополнительные сведения о кодах состояния см. в разделе Коды состояния и ошибок.

Заголовки ответов

Ответ для этой операции включает следующие заголовки. Ответ может также включать дополнительные стандартные заголовки HTTP. Все стандартные заголовки соответствуют спецификации протокола HTTP/1.1.

Заголовок ответа Описание
x-ms-request-id Уникально идентифицирует выполненный запрос и может использоваться для устранения неполадок с запросом. Дополнительные сведения см. в разделе Устранение неполадок с операциями API.
x-ms-version Версия хранилища BLOB-объектов, которая использовалась для выполнения запроса.
Date Значение даты и времени в формате UTC, созданное службой, указывающее время, когда был инициирован ответ.
x-ms-client-request-id Может использоваться для устранения неполадок с запросами и соответствующими ответами. Значение этого заголовка равно значению заголовка x-ms-client-request-id , если он присутствует в запросе и содержит не более 1024 видимых символов ASCII. Если заголовок x-ms-client-request-id отсутствует в запросе, он не будет присутствовать в ответе.

Текст ответа

Текст ответа имеет следующий формат:

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

Элементы основного текста ответа описываются в следующей таблице.

Элемент Описание
SignedOid Неизменяемый идентификатор объекта в системе удостоверений Майкрософт.
SignedTid ИДЕНТИФИКАТОР GUID, представляющий Microsoft Entra клиент, в который входит пользователь.
SignedStart Время начала ключа делегирования пользователя в формате даты ISO.
SignedExpiry Время окончания срока действия ключа делегирования пользователя в формате даты ISO.
SignedService Служба, для которой можно использовать ключ делегирования пользователя, где b представляет хранилище BLOB-объектов.
SignedVersion (Подписанная версия) Версия REST API, используемая для получения ключа делегирования пользователя.
Значение Ключ делегирования пользователя.

Авторизация

При вызове любой операции доступа к данным в службе хранилища Azure требуется авторизация. Авторизовать Get User Delegation Key операцию можно только с помощью Microsoft Entra ID.

Разрешения

Субъект безопасности, запрашивающий ключ делегирования пользователя, должен иметь соответствующие разрешения для этого. Microsoft Entra субъектом безопасности может быть пользователь, группа, субъект-служба или управляемое удостоверение.

Ниже перечислены действия RBAC, необходимые для Microsoft Entra субъекта безопасности для вызова Get User Delegation Key операции, и встроенная роль Azure RBAC с наименьшими привилегиями, которая включает это действие:

Любая встроенная роль, которая включает это действие Azure RBAC( явным образом или как часть определения с подстановочными знаками), может вызывать Get User Delegation Key операцию.

Дополнительные сведения о назначении ролей с помощью Azure RBAC см. в статье Назначение роли Azure для доступа к данным BLOB-объектов.

Get User Delegation Key Так как операция выполняется на уровне учетной записи хранения, действие Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey должно быть задано на уровне учетной записи хранения, группы ресурсов или подписки. Если субъекту безопасности назначена какая-либо из перечисленных ранее встроенных ролей или настраиваемая роль, включающая действие Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey , на уровне учетной записи хранения, группы ресурсов или подписки, субъект безопасности сможет запросить ключ делегирования пользователя.

Если субъекту безопасности назначена роль, которая разрешает доступ к данным, но ограничена уровнем контейнера, можно дополнительно назначить этому субъекту безопасности роль делегатора BLOB-объектов хранилища на уровне учетной записи хранения, группы ресурсов или подписки. Роль Делегатора BLOB-объектов хранилища предоставляет субъекту безопасности разрешения на запрос ключа делегирования пользователя.

Дополнительные сведения о ролях RBAC для службы хранилища Azure см. в статье Авторизация с помощью Azure Active Directory.

Комментарии

Используйте ключ делегирования пользователя, чтобы создать SAS для делегирования пользователей. Включите поля, возвращаемые в ответе на в Get User Delegation Key маркер SAS делегирования пользователя. Дополнительные сведения см. в разделе Создание SAS для делегирования пользователя.

Ключ делегирования пользователя нельзя использовать для прямого доступа к ресурсам хранилища BLOB-объектов.

Выставление счетов

Запросы на ценообразование могут поступать от клиентов, использующих API хранилища BLOB-объектов, напрямую через REST API хранилища BLOB-объектов или из клиентской библиотеки службы хранилища Azure. Эти запросы начисляют плату за транзакцию. Тип транзакции влияет на способ оплаты учетной записи. Например, транзакции чтения начисляются к категории выставления счетов, отличной от категории операций записи. В следующей таблице показана категория выставления счетов для Get User Delegation Key запросов на основе типа учетной записи хранения.

Операция Тип учетной записи хранения Категория выставления счетов
Получение ключа делегирования пользователя Блочный BLOB-объект (ценовая категории "Премиум")
Общего назначения версии 2 (цен. категория "Стандартный")
Другие операции
Получение ключа делегирования пользователя Стандартная общего назначения версии 1 Операции чтения

Дополнительные сведения о ценах на указанную категорию выставления счетов см. в разделе Цены на Хранилище BLOB-объектов Azure.

См. также раздел