認証・リクエストの署名

認証・リクエストの署名

P2PUB-APIを呼び出す際には、認証のためにAccessKeyとSignatureを利用します。

AccessKeyはサービスオンラインの画面から取得することができます。AccessKeyの取得方法については、AccessKeyを参照してください。

Signatureはリクエストパラメータから一定の手順で生成した文字列です。Singatureを生成する際に、AccessKeyと同時に発行されるSecretKeyを利用します。

Signatureは以下の手順で生成します。

  1. Signature以外のリクエストパラメータを確定します
  2. HTTPリクエストメソッド、HTTPリクエストヘッダ文字列、URIエンコードしたパス部分を以下の順序で結合した文字列を生成し、StringToSignとします

    HTTPリクエストメソッド+\n
    HTTPリクエストヘッダ文字列+\n
    URIエンコードしたパス部分 
    1. HTTPリクエストメソッドGET、POST、PUT、DELETEのいずれかを連結します
    2. HTTPリクエストヘッダ文字列リクエストパラメータを以下の手順で正規化して作成します
      1. リクエストヘッダキーをUTF-8の辞書順でソートします
      2. リクエストヘッダ値を改行文字("\n"、LF、0x0A)で連結します
      3. リクエストヘッダキーが"Content-MD5"または"Content-Type"の場合は、値を連結します。リクエストヘッダキーの接頭文字が"x-iijapi-"の場合は、リクエストヘッダキーを小文字に変換してリクエストヘッダ値とコロン(":"、0x3A)記号で連結します。上記以外のリクエストヘッダキーは連結しないでください。
    3. URIエンコード(Signature生成時のURLエンコード方法)したパス部分を連結します。クエリストリングは含みません
      • /r/(APIVersion)/(個別パラメータ)/(API名).json
  3. 生成したStringToSignに対し、SignatureMethodで指定したオブジェクトアルゴリズムに従いHMACを算出します
    • HMACを算出する際の Keyとして、AccessKeyと同時に取得したSecrectKeyを指定します
  4. 算出したHMACをBase64エンコードします