Ver.1.00.01
1. トークン認証機能における詳細シーケンス
本ガイドラインではCDNextのトークン認証機能における、対サーバートークン発行時、対クライアントトークン発行時のシーケンスについて説明します。
1-1 詳細シーケンス(対サーバートークン発行)
■利用ケース
認証トークン発行時はお客様サーバー CDNextサーバー間でIPアドレス制限にてアクセス制御を行いながらトークン発行を行い、お客様サーバーにてトークンを取得した後、サーバーサイドの処理でトークン付きURLにてCDNextサーバーにファイルダウンロードのリクエストを行います。
■特徴
トークン発行時にアクセス制御を行うことで、よりセキュアに認証ページ内でのコンテンツ認証配信の実現が可能となります。
1-2 詳細シーケンス(対クライアントトークン発行)
■利用ケース
認証トークン発行時はブラウザ/アプリ CDNextサーバー間でリファラ制限/User-Agent制限にてアクセス制御を行いながらトークン発行を行い、ブラウザ/アプリにてトークンを取得した後、クライアントサイドの処理でトークン付きURLにてCDNextサーバーにファイルダウンロードのリクエストを行います。
■特徴
ブラウザ/アプリの処理のみで認証配信が行えますので、直リンク露出防止策として簡易な配信制限の実施が可能となります。
補足
■トークン発行時におけるリクエスト記載例について
トークン発行リクエストの記載例は下記となります。
・時間制限の場合
https://example.cdnext.stream.ne.jp/make_token?ttl=600
※ttlは秒数で指定してください。
・リファラ制限の場合
https://example.cdnext.stream.ne.jp/make_token?referer=http://example.com/
・IPアドレス制限の場合
https://example.cdnext.stream.ne.jp/make_token?IP=192.168.1.0/24
・パス制限の場合
https://example.cdnext.stream.ne.jp/make_token?path=/members1/
時間制限以外はカンマ区切りで複数指定することが可能です。
・リファラ制限(複数指定)の場合
https://example.cdnext.stream.ne.jp/make_token?referer=http://example01.com/,http://example02.com/
・IPアドレス制限(複数指定)の場合
https://example.cdnext.stream.ne.jp/make_token?IP=192.168.1.0/24,192.168.2.0/24
・パス制限(複数指定)の場合
https://example.cdnext.stream.ne.jp/make_token?&path=/members1/,/members2/
また、これらを組み合わせて指定することも可能です。
・組み合わせの場合
https://example.cdnext.stream.ne.jp/make_token?ttl=600&referer=https://example.com/
■トークン認証のサンプルプログラム
サンプルプログラムは以下にございます。
2. サンプルプログラムの補足説明
本項ではサンプルプログラムの記載内容について補足説明を行います。お客様環境に合わせて設定する際にご参考ください。
※下記はPHPの場合の例となります
【設定情報:PHP版】
// CDN ホストを指定してください。【設定値①】
$cdn_host = 'https://XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.cdnext.stream.ne.jp';
// トークン発行用仮想パスの「仮想ベースパス」+「拡張パス」を指定してください。【設定値②】
$path_make_token = '/auth-publish/make_token';
// トークン認証パラメータのキー名を指定してください。【設定値③】
$param_key_token = '_token';
// コンテンツ URL を指定してください。【設定値④】
$url_content = $cdn_host. '/auth/member/allowed.html';
// 時間制限をしたい場合、秒数を指定してください。
// 使用しない場合、"を指定してください。
$auth_ttl = 300;
// リファラー制限をしたい場合、要素を編集のうえ有効化してください。
$auth_referer = array(
// 'https://www1.example.com/',
// 'https://www2.example.com/',
);
// IP 制限をしたい場合、要素を編集のうえ有効化してください。
$auth_ip = array(
// '192.168.1.0/24',
// '192.168.2.0/24',
);
// パス制限をしたい場合、要素を編集のうえ有効化してください。
$auth_path = array(
// '/auth/member/premium1/',
// '/auth/member/premium2/',
);
// デバッグモード
// 0: デバッグ出力せず、リダイレクトします。
// 1: デバッグ出力して、リダイレクトしません。
$debug = 0;
2-1. サンプルプログラムの補足説明
【設定値①】
管理画面より基本設定後、「基本設定」-「基本」タブにて、サービスURLを確認し、サンプルプログラムの設定値①に同じ情報を設定する。(最後の ”/” は不要です)
【設定値②】
管理画面「仮想パス追加」を押下し、「基本」タブにて以下の情報を選択 入力する サンプルプログラムの設定値② に「仮想ベースパス」と「拡張パス」の連結した値を設定する。
◆管理画面
・仮想パス名 : Token発行(名称任意)
・仮想パスタイプ : 個別パス+ファイル名にチェック
・仮想ベースパス : /auth-publish/(名称任意)
・拡張パス : make_token (名称任意)
※拡張パスは、お客様が実際にファイルを格納する必要はありません。
【設定値③】
「トークン認証」タブにて以下の情報を選択・入力し、設定保存・実行ボタンを押下する。サンプルプログラムの設定値③に「クエリ文字列」の情報を設定する。
◆管理画面
・トークン認証機能 : トークン認証にチェック
・クエリ文字列 : __token (任意)
・トークン鍵リスト : 作成したトークン鍵リスト名を選択
・エラーページ指定 : 認証失敗時のエラーページがあれば指定
【設定値④】
再度「仮想パス追加」を押下し、「基本」タブにて以下の情報を選択・入力し、設定保存・実行ボタンを押下する。「仮想ベースパス」の情報が含まれているURLを設定する。
◆管理画面
・仮想パス名 : Token認証 (任意)
・仮想パスタイプ : 個別パスにチェック
・仮想ベースパス : /auth/member/
(認証後、配信コンテンツのパス)