認証・リクエストの署名
認証・リクエストの署名
CAC-APIを呼び出す際には、認証のためにAccessKeyとSignatureを利用します。
AccessKeyはサービスオンラインの画面から取得することができます。AccessKeyの取得方法については、AccessKeyを参照してください。
Signatureはリクエストパラメータから一定の手順で生成した文字列です。Signatureを生成する際に、AccessKeyと同時に発行されるSecretKeyを利用します。
Signatureは以下の手順で生成します。
- Signature以外のリクエストパラメータを確定します。
HTTPリクエストメソッド、HTTPリクエストヘッダ文字列、URIエンコードしたパス部分を以下の順序で結合した文字列を生成し、StringToSignとします。
HTTPリクエストメソッド+\n HTTPリクエストヘッダ文字列+\n URIエンコードしたパス部分
- HTTPリクエストメソッド
GET、PUT、POSTのいずれかを連結します。 - HTTPリクエストヘッダ文字列
リクエストパラメータを以下の手順で正規化して作成します。- リクエストヘッダキーをUTF-8の辞書順でソートします。
- リクエストヘッダ値を改行文字("\n"、LF、0x0A)で連結します。リクエストヘッダキーが"Content-MD5"または"Content-Type"の場合は、値を連結します。
リクエストヘッダキーの接頭文字が"x-iijapi-"の場合は、リクエストヘッダキーを小文字に変換してリクエストヘッダ値とコロン(":"、0x3A)記号で連結します。
上記以外のリクエストヘッダキーは連結しないでください。
- URIエンコード(Signature生成時のURLエンコード方法)したパス部分を連結します。
/r/(APIVersion)/(ServiceCode)/(API名).json
- HTTPリクエストメソッド
- 生成したStringToSignに対し、SignatureMethodで指定したハッシュアルゴリズムに従いHMACを算出します。
- HMACを算出する際の Keyとして、AccessKeyと同時に取得したSecrectKeyを指定します。
- 算出したHMACをBase64エンコードします。