Signatureの生成サンプル

サンプルコード

下記のコードをsign.shというファイル名で保存します。

#!/bin/bash
METHOD="GET"
API="api_version"
APIVERSION="20190625"

STRING_TO_SIGN=string2sign.$$
trap "test -f '$STRING_TO_SIGN' && /bin/rm '$STRING_TO_SIGN'" 0 1 2 3 15


echo    $METHOD                                        >  $STRING_TO_SIGN
echo    ""                                             >> $STRING_TO_SIGN
if [ "$METHOD" = "GET" ]; then
  echo ""                                              >> $STRING_TO_SIGN
else
  echo "application/json"                              >> $STRING_TO_SIGN
fi
echo    "x-iijapi-expire:${IIJAPI_EXPIRE}"             >> $STRING_TO_SIGN
echo    "x-iijapi-signaturemethod:HmacSHA256"          >> $STRING_TO_SIGN
echo    "x-iijapi-signatureversion:2"                  >> $STRING_TO_SIGN
echo  -n "/r/${APIVERSION}/${API}.json" >> $STRING_TO_SIGN

SIGNATURE=`openssl dgst -sha256 -binary -hmac "$IIJAPI_SECRET_KEY" "$STRING_TO_SIGN" | base64`
echo $SIGNATURE
exit 0

実行例

$ export IIJAPI_ACCESS_KEY='アクセスキー'
$ export IIJAPI_SECRET_KEY='シークレットキー'
$ export IIJAPI_EXPIRE=`date -u -d '1 hours' +'%Y-%m-%dT%H:%M:%SZ'` 

$ ./sign.sh 
blYqEogt4XNvvtTBvqNqPr96yRI/PxiJ4yZRRIOK76Q=