取得使用者委派金鑰
作業 Get User Delegation Key
會取得金鑰,可用來簽署使用者委派 SAS (共用存取簽章) 。 使用者委派 SAS 會使用 Microsoft Entra 認證,授與 Azure Blob 儲存體 資源的存取權。 作業 Get User Delegation Key
可在 2018-11-09 版和更新版本中取得。
要求
Get User Delegation Key
的建構如下。 需要 HTTPS。 以記憶體帳戶的名稱取代 myaccount 。
POST 方法要求 URI | HTTP 版本 |
---|---|
https://myaccount.blob.core.windows.net/?restype=service&comp=userdelegationkey |
HTTP/1.1 |
模擬記憶體服務要求
當您對本機記憶體服務提出要求時,請將本機主機名和 Blob 儲存體埠指定為 127.0.0.1:10000
,後面接著本機記憶體帳戶名稱:
POST 方法要求 URI | HTTP 版本 |
---|---|
http://127.0.0.1:10000/devstoreaccount1/?restype=service&comp=userdelegationkey |
HTTP/1.1 |
如需詳細資訊,請參閱使用 Azure 模擬器進行本機 Azure 儲存體開發。
URI 參數
您可以在要求的 URI 中指定下列其他參數。
參數 | 描述 |
---|---|
timeout |
選擇性。
timeout 參數以秒為單位。 如需詳細資訊,請參閱 設定 Blob 記憶體作業的逾時。 |
要求標頭
下表描述必要的和選用的要求標頭。
要求標頭 | 描述 |
---|---|
Authorization |
必要。 指定授權配置。 僅支援具有 Microsoft Entra ID 的授權。 如需詳細資訊,請參閱使用 Microsoft Entra ID 授權。 |
x-ms-version |
所有授權要求都需要。 如需詳細資訊,請參閱 Azure 儲存體服務的版本。 |
x-ms-client-request-id |
選擇性。 提供客戶端產生的不透明值,其中包含 1-kibibyte (KiB) 設定記錄時記錄在記錄中的字元限制。 強烈建議您使用此標頭,將用戶端活動與伺服器收到的要求相互關聯。 如需詳細資訊,請參閱監視 Azure Blob 儲存體。 |
要求本文
要求主體的格式如下:
<?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 (OK)。
如需狀態代碼的詳細資訊,請參閱 狀態和錯誤碼。
回應標頭
這項作業的回應包括下列標頭。 回應也可能包括其他標準 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 ,且值不包含超過 1,024 個可見的 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>
下表描述回應主體的元素:
元素 | Description |
---|---|
SignedOid | Microsoft 身分識別系統中物件的不可變標識碼。 |
SignedTid | GUID,表示使用者的來源 Microsoft Entra 租使用者。 |
SignedStart | 使用者委派金鑰的開始時間,格式為 ISO 日期格式。 |
SignedExpiry | 使用者委派金鑰的到期時間,格式為 ISO 日期格式。 |
SignedService | 使用者委派密鑰可用於的服務,其中 b 代表 Blob 記憶體。 |
SignedVersion | 用來取得使用者委派金鑰的 REST API 版本。 |
值 | 使用者委派金鑰。 |
授權
在 Azure 記憶體中呼叫任何數據存取作業時,需要授權。 您只能使用 Microsoft Entra ID 來授權Get User Delegation Key
作業。
權限
要求使用者委派密鑰的安全性主體必須具備適當的許可權才能這麼做。 Microsoft Entra 安全性主體可能是使用者、群組、服務主體或受控識別。
以下是 Microsoft Entra 安全性主體呼叫Get User Delegation Key
作業所需的 RBAC 動作,以及包含此動作的最低特殊許可權內建 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 委派者角色會授與安全性主體許可權,以要求使用者委派密鑰。
如需 Azure 記憶體 RBAC 角色的詳細資訊,請參閱 使用 Azure Active Directory 授權。
備註
使用使用者委派金鑰來建立使用者委派 SAS。 在使用者委派 SAS 令牌的回應 Get User Delegation Key
中包含傳回的欄位。 如需詳細資訊,請參閱建立使用者委派 SAS。
使用者委派金鑰無法用來直接存取 Blob 記憶體資源。
計費
定價要求可能源自使用 Blob 記憶體 API 的用戶端,無論是直接透過 Blob 記憶體 REST API,還是來自 Azure 記憶體用戶端連結庫。 這些要求會累算每個交易的費用。 交易類型會影響帳戶的收費方式。 例如,讀取交易會累算到與寫入交易不同的計費類別。 下表根據記憶體帳戶類型顯示要求的計費類別 Get User Delegation Key
:
作業 | 儲存體帳戶類型 | 計費類別 |
---|---|---|
取得使用者委派金鑰 | 進階區塊 Blob 標準一般用途 v2 |
其他作業 |
取得使用者委派金鑰 | 標準一般用途 v1 | 讀取作業 |
若要瞭解指定計費類別的定價,請參閱 Azure Blob 儲存體 定價。