ワンタイム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
注釈
スマートストリーミングオプションをご契約の場合は、自動で付与されます。