各種操作
セキュリティと認証
ストリームのエイリアス
ストリームのエイリアスはオンラインコンテンツを保護する為のメカニズムです。
インバウンドストリーム毎に各々エイリアスを指定する事が出来ます。ストリームのエイリアスが有効な場合、インバウンドストリームに直接アクセスする事が出来なくなり、その代わりにクライアントは各ストリームに割り当てられたエイリアスを指定してストリームを取得します。
エイリアス機能が有効の場合、 localStreamName
を使用してストリームのリクエストや再生が出来なくなる事に注意してください。また、エイリアス機能はシングルユース(使い捨て)です。エイリアスを使用したストリームがリクエストされると、そのエイリアスは削除され、以降は使用できません。
これにより、より厳密なオンラインコンテンツへのアクセスコントロールが可能となります。
ストリームのエイリアスを使用すると、一般に公開されているサーバー上のストリームを保護できます。従って、指定のウェブサイトやプレーヤー/クライアントが使用する為のストリームエイリアスを生成する事が出来ます。クライアントがそのエイリアスを使用すると、許可されたユーザーに新しいエイリアスを発行するまでストリームが再び保護されることを保証できます。
ストリームのエイリアスは config.lua
内のhasStreamAliases値を"true"に変更することで有効化します。
エイリアスは以下の4つのAPIコマンドを使用して管理します。
エイリアスの有効期限
エイリアスは通常シングルユース(使い捨て/一回の使用のみ)ですが、 ExpirePeriod
という追加パラメータを使用して、有効期限が過ぎるとシステムによりエイリアスを自動削除させることができます。
ExpirePeriod
は整数値で正の整数の他に負の整数も使用できます。
1. 正の整数の場合、エイリアスは1回限りの使用ではなくなり、有効期限がくるまで何度も使用できます。
以下の例の場合、エイリアスは10秒間有効で、その間何度でもエイリアス経由でのアクセスが可能となります。
2. 負の整数の場合、エイリアスは1回限りの使用となり、指定値の絶対数での秒数後に自動で削除されます。
以下の例の場合、エイリアスが一度も使われなければ10秒後に自動で削除されます。
3. 値が"0"の場合、エイリアスが自動的に期限切れになることはありません。
これはストリーム名を変更する際に使用する事ができます。
一般的なエイリアス設定
例)課金/登録ユーザーセクション
ストリームのエイリアスを使用すると、ユーザーはWebサイトやモバイルアプリを経由して、またはその他の方法でログインする必要があるかどうかに関わらず、様々なクライアント認証方式に対応しています。
既存の方式でクライエント認証が完了したら、EMSで addStreamAlias
コマンドを実行してクライアント向けのビデオリンクを発行します。
例として、ユーザーが自分のセキュリティアカウントにログインし、リンクをクリックして「フロントドアのカメラ」を表示すると、Webサーバーはそのリンクによって呼び出され、以下のような処理を行います。
1. ユーザーの現在のセッションを検証し、EMSに以下のコマンドを発行
2. 次のURIを使用して再生用のページをクライアントに送信(例ではflashを使用)
ユーザーアプリもしくはブラウザでプレーヤーをロードしてストリームが再生されると、エイリアスは自動的に削除されます。従って第三者が盗聴などなんらかの方法で再生用のリンクを得たり、ユーザー本人が再生用リンクをコピーして保存しておき後でもう一度再生しようとアクセスした場合、再生は失敗します。
グループ名のエイリアス
ストリームのエイリアスは接続ベースのプロトコル(RTMP,RTSP)でのみ使用可能ですが、HLS、DASH、その他HTTPベースのプロトコルの場合はグループ名のエイリアスを使用します。
EMS Webサーバー(EWS)API関数を使用して、グループ名のエイリアスの追加/削除/確認/リスト表示が可能です。ストリームのエイリアスと同様に、グループ名のエイリアスはソースストリームを保護または非表示するように設計されています。グループ名エイリアスが生成されると、元のグループ名はストリーム再生用リクエストには使用できなくなります。また、グループ名のエイリアスがリクエストされると、そのエイリアスは削除されます。
グループ名のエイリアスは webconfig.lua
内のhasGroupNameAliasesオプションを"true"に変更することで有効化します。HLS/HDS/MSS/DASHストリームはグループ名のエイリアスを追加する前に予め作成しておく必要があります。
エイリアスは以下の5つのAPIコマンドを使用して管理します。
- addGroupNameAlias
- removeGroupNameAlias
- getGroupNameByAlias
- listGroupNameAliases
- flushGroupNameAliases
グループ名エイリアスの一般的な使用例を以下に示します。この使用例はHDS、MSS、DASHストリームの場合にも適用されます(createHLSstreamの部分をcreateHDSstream,createMSSstream,createDASHstreamにそれぞれ置き換え、互換性のあるプレーヤーを使用します)。
HTTPストリームタイプごとの互換プレーヤーに関する詳細はInteroperabilityセクションをご確認ください。
1. HTTPストリームのセットアップ
・HLSストリームの生成
・アクティブなHTTPストリーミングセッションを一覧表示
・HTTPストリームにグループ名のエイリアスを追加
2. HTTPストリームの再生
・互換プレーヤーを起動しHTTPストリームのエイリアスURIを開く
上記の場合、実際には下記を再生していることになります。
http://localhost:8888/mygroup/mystream/playlist.m3u8
EWSはグループ名のエイリアスをプレイリストの正しいパスに変換します。
インバウンド認証
EvoStream Media Serverは、ストリームがサーバーにpushされる際にストリームの認証を求めるよう設定することができます。これは認証により外部ソースがサーバーに過負荷をかけないよう保護する為におこなわれます。
ストリームのpushはTCPベースのプロトコル(RTMP,RTSP)に対してのみ有効です。デフォルトでは、EMSで使用される認証設定は config/usrs.lua
ファイルに記述されています。
インバウンド認証を有効/無効にする
1. config/config.lua
ファイルの"Authentication"セクションをコメントアウトする
2. config/auth.xml
の設定値を"true"(有効)または"false"(無効)に設定する
RTMPインバウンド認証設定において重要なポイントは「エンコーダエージェント(Encoder Agent)」の検証です。これはストリームソースが自らを識別する為に使用する名前です。大半のエンコーダはAdobe社のFlash Media Encoderの機能を模倣している為、一般的に使用されるエンコーダエージェントはいくつかしか存在しません。EMSにストリームをpushする場合、Encoder Agent文字列に関しては2つの選択肢があります。
1. Encoder Agent文字列を以下のいずれかに変更する
- FMLE/3.0(FMSc/1.0との互換性あり)
- Wirecast/FM 1.0(FMSc/1.0との互換性あり)
- EvoStream Media Server(www.evostream.com)
2. Encoder Agent文字列を config.lua
ファイルの encoderAgents
リストに追加する
アウトバウンド認証
ストリームをpushする際に認証が必要な場合は、pushコマンドのURIの中にユーザー名とパスワードを指定してください。
サンプルURIフォーマット
使用した場合のpushstreamコマンド
クライアント認証
ユーザーはオプションでRTSPクライアントにクライアント認証を強制する事が出来ます。 config.lua
ファイルのauthentication>rtspノードセクションに AuthenticatePlay
パラメータを指定して有効化すると、全てのRTSPクライエントにおいて users.lua
で設定したユーザ名/パスワードを使用しなければならなくなります。
エンコーダ/ユーザーエージェント
RTMPストリームをpushする際、EMSで使用するエンコーダエージェントの変更が必要となる場合があります。
エンコーダエージェントは、ストリームソースとして機能しているソフトウェアを指定する文字列です。 一部のRTMPエンドポイントでは既知のソースからのストリームしか受け付けないものがあり、この場合は emulateUserAgent
パラメータを pushStream
コマンドに追加します。
多くの場合、FMLEエンコーダーエージェントを使用するのが最適です。
注:空白(スペース)はエスケープする必要があります。
EMSではいくつかの短縮形のUser-Agent文字列を使用できます。これらの短縮文字列は大文字と小文字を区別しません。
emulateUserAgent値 | 使用されるエンコーダエージェント | 説明 |
---|---|---|
evo | EvoStream Media Server(www.evostream.com) | デフォルト値 |
FMLE | FMLE/3.0(FMSc/1.0との互換性あり) | |
wirecast | Wirecast/FM 1.0(FMSc/1.0との互換性あり) | |
flash | MAC 11,3,300,265 |