シグネチャーについて
ニフクラではシグネチャー(署名文字列)を使用して認証を行います。
APIを使用する際のリクエストには、シグネチャーを付与する必要があります。
サポートしているシグネチャーバージョン
シグネチャーバージョン2〜4があり、機能ごとに対応バージョンが異なります。
機能 | 対応バージョン |
---|---|
ニフクラ(コンピューティング) | 2 |
オブジェクトストレージサービス | 4 |
NAS | 2/4 |
RDB | 2/4 |
DNS | 3 |
ESS(メール配信) | 3/4 |
DevOps with GitLab | 4 |
サービスアクティビティ | 4 |
Catalog | 4 |
シグネチャー生成方法
シグネチャーバージョン 2
ニフクラコンピューティングAPIの共通パラメーターと認証方式をご覧ください。
シグネチャーバージョン 3
ニフクラ DNS及びESS(メール配信)をご利用の場合は、下記の方法で生成してください。
リクエストの特定情報に基づいた文字列を作成します。身元証明のための最初の手順として、文字列を作成します。
この文字列の作成方法は、リクエストのdate headerを、UTF-8エンコード(例:Thu, 19 Nov 2009 19:37:58 GMT)するだけです。
リクエストは、Date header、X-Nifty-Date headerを含めるか、両方を含める必要があります。
両方含めた場合は、ニフクラ側でdate headerが無視されます。ヘッダー値の形式はタイムスタンプとして定められた以下フォーマットのどれかでなければなりません。
Sun, 10 Nov 2013 08:49:37 GMT (RFC 822, updated by RFC 1123) Sunday, 10-Nov-13 08:49:37 GMT (RFC 850, obsoleted by RFC 1036) Sun Nov 10 08:49:37 2013 (ANSI C's asctime() format)
シグネチャーを算出します。
Secret Access Key と手順(1)で作成した文字列を使用してシグネチャーを生成します。
この時のアルゴリズムは、HmacSHA1またはHmacSHA256を使用します。算出結果をbase64エンコード変換します。
date header StringSun, 10 Nov 2013 17:08:48 GMT
Secret Access Key
wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
エンコード化したシグネチャー
4cP0hCJsdCxTJ1jPXo7+EXAMPLE=
リクエストにシグネチャーを含め、HTTPSを使用してリクエストをニフクラに送信します。 (HTTP通信は受け入れられません。)
X-Nifty-Authorization headerの一部としてシグネチャーを含めます。
シグネチャーとAccess Key IDの両方を含める必要があります。NIFTY3-HTTPS NiftyAccessKeyId=MyAccessKey,Algorithm=ALGORITHM,Signature=Base64( Algorithm((ValueOfDateHeader), SigningKey) )
シグネチャーバージョン 4
シグネチャーバージョン 4の生成方法は、下記ページをご覧ください。