Object Storage Service (OSS) では、HTTP Authorizationヘッダーを使用することが、認証情報を提供する最も一般的な方法です。 POSTリクエストとクエリパラメーターを使用して署名されたリクエストを除き、すべてのOSS操作で認証にAuthorizationリクエストヘッダーが使用されます。 このトピックでは、URLにV4署名を含める方法について説明します。
OSS SDKを使用したV4シグネチャの自動実装
OSS SDKはV4シグネチャの自動実装をサポートしています。 OSS SDKを使用してリクエストを開始することを推奨します。 これにより、署名を手動で計算する必要がなくなります。 異なるプログラミング言語でOSS SDKを使用する場合にV4署名アルゴリズムを使用してリクエストに署名する方法の詳細については、OSS SDKのサンプルコードをご参照ください。 次の表に、さまざまなプログラミング言語でOSS SDKを使用する場合に、V4署名アルゴリズムを使用してリクエストに署名するために使用されるサンプルコードへの参照を示します。
SDK | サンプルコード |
Java | |
PHP | |
Node.js | |
Browser.js | |
Python | |
Go | |
C++ | |
C |
承認ヘッダーの計算
Authorization
ヘッダーの署名アルゴリズムのバージョンと署名情報をスペースで区切ります。 次の表に、Authorizationヘッダーのコンポーネントを示します。
コンポーネント | 説明 |
署名アルゴリズムのバージョン | 署名の計算に使用されるアルゴリズム。 有効値: OSS4-HMAC-SHA256 |
署名情報 | 署名の計算に使用されるパラメーター。 署名情報は、キーと値のペアの形式である。 キーと値のペアをコンマ (,) で区切り、キーと値を等号 (=) で接続します。 署名情報のキーには、2つの必須フィールド (
|
Format
権限付与: "OSS4-HMAC-SHA256 Credential=" + AccessKeyId + "/" + SignDate + "/" + SignRegion + "/oss/aliyun_v4_request, " + [ "AdditionalHeaders=" + AdditionalHeadersVal + ", " ] + "Signature=" + SignatureVal
例:
権限付与: OSS4-HMAC-SHA256資格=AKIDEXAMPLE/20231203/cn-hangzhou/oss/aliyun_v4_request, AdditionalHeaders=host;userdefine, Signature=34b48302e7b5fa45bde8084f4b7868a86f0a534bc59db6670ed5711ef69dc6f 7
署名計算プロセス
ステップ1: 正規リクエストを作成する
ステップ2: 署名する文字列の作成
ステップ3: 署名を計算する
署名の計算例
この例では、PutObjectを使用して、AuthorizationヘッダーにV4署名を含める方法を説明します。
パラメーター
パラメーター
例
AccessKeyId
accesskeyid
AccessKeySecret
accesskeysecret
Timestamp
20231203T1212Z
バケット
examplebucket
オブジェクト
exampleobject
Region
cn-hangzhou
PutObject
PUT /exampleobject HTTP/1.1 Content-MD5: eB5eJF1ptWaXm4bijSPyxw コンテンツタイプ: text/html 日付: 12月3日日曜日2023 12:12:12GMT ホスト: examplebucket.oss-cn-hangzhou.aliyuncs.com 権限付与: SignatureToBeCalculated x-oss-date: 20231203T121212Z x-oss-meta-author: alice x-oss-meta-magic: abracadabra x-oss-content-sha256: UNSIGNED-PAYLOAD
V4署名をAuthorizationヘッダーに含めるには、次の手順を実行します。
正規のリクエストを作成します。
PUT /examplebucket/exampleobject content-md5:eB5eJF1ptWaXm4bijSPyxw content-type:text/html hos t:examplebucket.oss-cn-hangzhou.aliyuncs.com x-oss-content-sha256:UNSIGNED-PAYLOAD x-oss-date:20231203T121212Z x-oss-meta-author:alice x-oss-meta-magic:abracadabra ホスト 未承認-ペイロード
署名する文字列を作成します。
OSS4-HMAC-SHA256 20231203T1212Z 20231203/cn-hangzhou/oss/aliyun_v4_request 129b14df88496f434606e999e35dee010ea1cecfd3ddc378e5ed4989609c1db 3
署名を計算します。
署名キーを計算します。
説明読みやすくするために、署名キーのBase64-encoded値を次の例に示します。
WVjaYR8lCj9YC5PUS2RSZQANYbuh9DhMFxjU1NtZKfc=
署名を計算します。
4b663e424d2db9967401ff6ce1c86f8c83cabd77d9908475239d9110642c6 3fa
署名をAuthorizationヘッダーに追加します。
OSS4-HMAC-SHA256 Credential=accesskeyid/20231203/cn-hangzhou/oss/aliyun_v4_request,AdditionalHeaders=host,Signature=4b663e424d2db9967401ff6ce1c86f8c83cabd77d9908475239d9110642c6 3fa