ワンタイムURL

ワンタイムURLをご利用頂くと、URLに所定の期限をつけることができます。

対象リクエストの指定

ワンタイムURLの対象とするリクエストを以下の2種類から選択することができます。

  • URL内の所定の文字列 (secure)
  • ドメイン名全体 (content.redbox.ne.jp)

判定処理とレスポンス

ワンタイムURL判定後のレスポンスは以下の通りです。

ワンタイムURL レスポンス
無効なSignature 403 (invalid token)
有効期限切れ 410(expired token)

注釈

判定順序: Signature > 有効期限

トークンのフォーマット

Tokenはクエリストリングとして以下のフォーマットで付与する必要があります。

?token=[expiration]_[signature]

生成するURLフォーマット:
http(s)://ドメイン名/パス/ファイル名?token=有効期限(Epoch)_トークン

注釈

[expiration]フォーマット: Epoch Time(秒) 11~12桁
例:Epoch Time:[1262271600] (2010年1月1日 00:00:00)

クライアント側でトークンの生成

ワンタイムURLをご利用頂くためには、クライアント側のアプリやプログラムで以下のルールに従った signatureを生成いただく必要が御座います。

signature生成に必要な情報
暗号方式 HMAC-SHA256
シークレットキー サポートからご連絡した値
文字列 フルパス+有効期限(EPOCH TIME)

注釈

文字列のフルパスは、アクセスする公開URLのパス部を指定してください。
アクセスさせるファイル:http(s)://ドメイン名 /secure/test/test.html
EPOCH TIME:1262271600
文字列:/secure/test/test.html1262271600

警告

シークレットキーは外部に漏れないよう、大切に保管頂くようお願い致します。

トークン生成サンプルプログラム(PHP)

<?php

date_default_timezone_set('Asia/Tokyo');

$domain = "DOMAINNAME.com"; //ドメイン名
$key = "YOURSECRETKEY"; //SecretKey
$path = "/secure/index.html"; //配信ファイルのフルパス
$token_lifetime = 10;  //有効期限を指定する。(秒単位)


$expiration = time() + $token_lifetime;
$string_to_sign = $path . $expiration;
$signature = hash_hmac("sha256", $string_to_sign, $key);
$token = $expiration . "_" . $signature;

$URL= "http://" . $domain . $path . "?token=" . $token;

print("Token:   " . $token);
print "<br />\n";
print "<a href=" . $URL . ">ワンタイムURL</a>";
print "<br />\n";
print date('Y-m-d H:i:s',$expiration)."まで有効";

?>

動画配信(HLS)とワンタイムURLの連携

HLS形式の動画配信とワンタイムURLを連携する場合は、オリジンサーバー側で以下のヘッダーをレスポンスに含めてい頂くようお願い致します。

  • Access-Control-Allow-Origin
  • Access-Control-Allow-Credentials

注釈

スマートストリーミングオプションをご契約の場合は、自動で付与されます。