ユーザー委任キーの取得

この操作は Get User Delegation Key 、ユーザー委任 SAS (共有アクセス署名) の署名に使用できるキーを取得します。 ユーザー委任 SAS は、Azure Active Directory (Azure AD) 資格情報を使用して BLOB サービス内のリソースへのアクセスを許可します。 この Get User Delegation Key 操作はバージョン 2018-11-09 以降で使用できます。

Request

Get User Delegation Key は、次のように構成します。 HTTPS は必須です。 myaccount をストレージ アカウントの名前に置き換えます。

POST メソッド要求の URI HTTP バージョン
https://myaccount.blob.core.windows.net/?restype=service&comp=userdelegationkey HTTP/1.1

エミュレートされたストレージ サービス URI

ローカル ストレージ サービスに対する要求では、ローカル ホスト名と BLOB サービス ポートを 127.0.0.1:10000 と指定し、その後にローカル ストレージ アカウント名を指定します。

POST メソッド要求の URI HTTP バージョン
http://127.0.0.1:10000/devstoreaccount1/?restype=service&comp=userdelegationkey HTTP/1.1

詳細については、「開発とテストにAzure Storage Emulatorを使用する」を参照してください。

URI パラメーター

次の追加パラメーターを要求の URI で指定できます。

パラメーター 説明
timeout 省略可能。 timeout パラメーターは、秒単位で表されます。 詳細については、「 BLOB サービス操作のタイムアウトの設定」を参照してください

要求ヘッダー

必須要求ヘッダーと省略可能な要求ヘッダーを次の表に示します。

要求ヘッダー 説明
Authorization 必須。 承認スキームを指定します。 Azure AD での承認のみがサポートされています。 詳細については、「Azure Active Directoryによる承認」を参照してください。
x-ms-version すべての承認された要求に必要です。 詳細については、「Azure Storage サービスのバージョン管理」を参照してください。
x-ms-client-request-id 省略可能。 ストレージ分析ログが有効になっているときに分析ログに記録される 1 KiB 文字の制限を持つクライアント生成の不透明な値を提供します。 クライアント側のアクティビティをサーバーが受信した要求と関連付けるには、このヘッダーを使用することが強く推奨されます。 詳細については、「Storage Analyticsログ記録と Azure ログ記録: ログを使用したStorage要求の追跡」を参照してください。

要求本文

要求本文の形式は次のとおりです。

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

要求本文の要素を次の表に示します。

要素名 説明
Start 必須。 ISO 日付形式のユーザー委任 SAS の開始時刻。 現在の時刻から 7 日以内に有効な日付と時刻である必要があります。
有効 期限 必須。 ISO 日付形式のユーザー委任 SAS の有効期限。 現在の時刻から 7 日以内に有効な日付と時刻である必要があります。

応答

応答には、HTTP 状態コードおよび一連の応答ヘッダーが含まれています。

状態コード

操作に成功すると、状態コード 200 (OK) が返されます。

状態コードの詳細については、「 状態コードとエラー コード」を参照してください

レスポンス ヘッダー

この操作の応答には、次のヘッダーが含まれています。 応答に追加の標準 HTTP ヘッダーが含まれる場合もあります。 すべての標準ヘッダーは 、HTTP/1.1 プロトコル仕様に準拠しています

応答ヘッダー 説明
x-ms-request-id このヘッダーは要求を一意に識別するので、要求のトラブルシューティングに使用できます。 詳細については、「 API 操作のトラブルシューティング」を参照してください。
x-ms-version 要求の実行に使用する BLOB サービスのバージョンを示します。
Date サービスによって生成される、応答の開始時刻を示す UTC 日付/時刻値。
x-ms-client-request-id このヘッダーは、要求と対応する応答のトラブルシューティングに使用できます。 このヘッダーの値は、要求に存在し、値が最大 1024 の ASCII 文字で表示される場合、ヘッダーの値 x-ms-client-request-id と等しくなります。 ヘッダーが 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 Microsoft ID システム内のオブジェクトの不変識別子。
SignedTid ユーザーが属している Azure AD テナントを表す GUID です。
SignedStart ISO 日付形式のユーザー委任キーの開始時刻。
SignedExpiry ISO 日付形式のユーザー委任キーの有効期限。
SignedService ユーザー委任キーのサービスを使用できます。b は BLOB サービスを表します。
SignedVersion ユーザー委任キーを取得するために使用される残りの API バージョン。
Value ユーザー委任キー。

承認

ユーザー委任キーを要求するセキュリティ プリンシパルには、これを行うための適切なアクセス許可が必要です。 Azure AD セキュリティ プリンシパルには、ユーザー、グループ、サービス プリンシパル、またはマネージド ID があります。

ユーザー委任キーを要求するには、セキュリティ プリンシパルに Microsoft.Storage を割り当てる必要があります。/storageAccounts/blobServices/generateUserDelegationKey アクション。 次の組み込みの RBAC ロールには、Microsoft.Storage が含まれます。/storageAccounts/blobServices/generateUserDelegationKey アクション(明示的に、またはワイルドカード定義の一部として):

操作はGet User Delegation Keyストレージ アカウントのレベルで動作するため、Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey アクションのスコープは、ストレージ アカウント、リソース グループ、またはサブスクリプションのレベルにする必要があります。 セキュリティ プリンシパルに上記の組み込みロールのいずれかが割り当てられている場合、または Microsoft.Storage を含むカスタム ロール/storageAccounts/blobServices/generateUserDelegationKey アクションは、ストレージ アカウント、リソース グループ、またはサブスクリプションのレベルで、ユーザー委任キーを要求できるようになります。

データ アクセスを許可するロールがセキュリティ プリンシパルに割り当てられているが、コンテナーのレベルにスコープが設定されている場合は、ストレージ アカウント、リソース グループ、またはサブスクリプションのレベルでそのセキュリティ プリンシパルに Storage Blob Delegator ロールを追加で割り当てることができます。 Storage Blob Delegator ロールは、ユーザー委任キーを要求するアクセス許可をセキュリティ プリンシパルに付与します。

Azure Storageの RBAC ロールの詳細については、「Azure Active Directoryによる承認」を参照してください。

解説

ユーザー委任キーを使用して、ユーザー委任 SAS を作成します。 ユーザー委任 SAS トークン内の応答 Get User Delegation Key で返されるフィールドを含めます。 ユーザー委任 SAS の作成の詳細については、「ユーザー委任 SAS の作成」を参照してください。

ユーザー委任キーを使用して、BLOB サービス内のリソースに直接アクセスすることはできません。

関連項目