トークン作成の概要
OpenTokセッションに接続するユーザーを認証するには、ユーザーページからAPIキーとともにトークンを送信する必要があります。OpenTokセッションに接続するユーザーごとに、トークンを生成します。接続に関する詳細については、セッションへの参加に関するドキュメントを参照してください: OpenTok.js, アンドロイド, iOS.
役割
各トークンには 役割、これはトークンを使用して接続するクライアントの機能を決定するものです。役割は3つあります:
- 購読者 — サブスクライバー・トークンを使用して接続するクライアントは、セッションに接続し、他のクライアントのストリームを購読することができます。ただし、セッションに対して独自のストリームを配信することはできません。
- 出版社 — パブリッシャートークンを使用して接続するクライアントは、セッションに接続し、そのセッションに音声・動画ストリームを配信し、他のクライアントのストリームを購読することができます。
- 出版社のみ — パブリッシャー専用トークンで接続するクライアントは、セッションに接続してオーディオ・ビデオストリームをセッションに配信することはできますが、他のクライアントのストリームを購読することはできません。さらに、パブリッシャー専用トークンで接続するクライアントは、以下のことが制限されています。 はっしん. 注: 現在、パブリッシャー専用トークンの作成は、OpenTok Node、OpenTok Java、およびOpenTok Ruby SDKでサポートされています。
- 司会 — ストリームの配信や購読に加え、OpenTok.js を使用してクライアントに接続しているモデレーターは、他のクライアントに対してセッションからの切断や、音声・動画ストリームの配信停止を強制することができます。 (どのクライアントに対しても強制切断や配信停止を行うことは可能ですが、これらのモデレーション機能を実行できるのはOpenTok.jsを使用しているモデレーターのみです。)さらに、OpenTokクライアントSDKのいずれかを介して接続しているモデレーターは、セッション内の1つまたは複数のストリームに対して、配信中の音声のミュートを強制することができます。詳細については、 モデレーション.
有効期限
OpenTokトークンは、設定された期間(最長30日間)が経過すると失効します。トークンを生成する際に、有効期限を指定することができます。
接続データ
各トークンに対して、クライアントを説明するメタデータを含む文字列を追加できます。例えば、ユーザIDや名前など、クライアントを表すデータを渡すことができます。このデータは、アプリケーションに応じて、サーバ側のデータベースから取得することも、クライアントから提供されたデータから取得することもできます。文字列の長さは1000文字に制限されています。このデータは一度設定すると更新できません。
トークン・データに個人情報を使用しない — トークンのメタデータは、セッションの他の参加者に公開される可能性があり、またVonageの内部ログを通じて読み取られる可能性もあるため、トークンデータには暗号化されていない機密情報や個人情報を絶対に含めないでください。詳しくは セキュリティのベストプラクティス.
OpenTokのクライアントライブラリには、セッションに接続しているクライアントの接続データを調べるためのプロパティが含まれています。
トークン生成時のベストプラクティス
トークンの生成にはほとんどコストがかかりません。ハッシュ関数と秘密鍵さえあれば生成できます。トークンの生成時に、当社のサーバーへのAPI呼び出しは一切行われません。以下の方法をお勧めします:
- ユーザーが接続を試みるたびに、そのユーザー専用の新しいトークンを生成します。トークンには有効期限があり、デフォルトではトークン生成から24時間後となります。有効期限が切れた後は、そのトークンを使用してセッションに接続することはできません。
- トークンを保存したり、再利用しようとしたりしないこと。
- 接続データを使ってユーザーを識別する。接続データは、ユーザーに関する情報(ユーザーIDなど、アプリケーション内でユーザーを識別するのに役立つ情報)を安全に保存する方法です。
トークンの生成
アプリのテスト版の開発中は、プロジェクトページでテストトークンを取得できます。 Video APIアカウント。ただし、アプリの最終的な本番環境版では、トークンの生成には「プロジェクトページ」ではなく、OpenTokのサーバーサイドライブラリのいずれかを使用することをお勧めします: