Получение ключа делегирования пользователя
Операция 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:Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey/action
- Встроенная роль с минимальными привилегиями:делегирование BLOB-объектов хранилища
Любая встроенная роль, которая включает это действие 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.