サンプルコード
下記のコードを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= |