トークン作成の概要
セッションに接続するユーザーを認証するために、ユーザーページはApp IDとともにトークンを渡さなければなりません。セッションに接続しようとするユーザーごとにトークンを生成します。
接続の詳細については、以下のドキュメントを参照してください。 セッション参加.
役割
各トークンには 役割そのトークンを使って接続するクライアントの能力を決定します。3つの役割があります:
- 購読者 - サブスクライバートークンで接続するクライアントは、セッションに接続し、他 のクライアントのストリームをサブスクライブできる。自分のストリームをセッションに公開することはできない。
- 出版社 - パブリッシャートークンで接続したクライアントは、セッションに接続し、 オーディオ・ビデオストリームをセッションに公開し、他のクライアントのストリーム を購読することができる。
- 出版社のみ - パブリッシャ専用トークンで接続したクライアントは、セッションに接続し、 オーディオ・ビデオストリームをセッションにパブリッシュできる、 しかし、他のクライアントのストリームをサブスクライブすることはできない。さらに パブリッシャー・オンリー・トークンで接続したクライアントは、以下のことが制限される。 はっしん. 注: 現在、発行者専用トークンの作成はサーバーSDKでサポートされています。
- 司会 - ストリームの公開と購読に加えて、モデレーターはクライアントで クライアントSDK は、他のクライアントにセッションからの切断を強制したり、オーディオ・ビデオ・ストリームの公開を停止させたりすることができます。(どのクライアントにも切断や公開の停止を強制できますが、これらのモデレーション機能を実行できるのは、クライアントSDKを使用するモデレーターだけです)。さらに、接続しているモデレーターは、セッション内の1つまたは複数のストリームに対して、公開されているオーディオをミュートするように強制できます。
有効期限
トークンは、設定された期間が経過すると失効します。トークンの最大TTLは 24時間. トークンを生成する際に、有効期限を指定することができます。
長時間継続するセッションにおけるトークンのローテーション
トークンの有効期限は最大24時間であるため、この期間を超えてセッションを維持する必要があるApplicationsでは、トークンを積極的に更新する必要があります。推奨されるパターンは以下の通りです:
- クライアントにトークンを発行する際は、その有効期限も併せて通知してください。
- クライアント側では、現在のトークンの有効期限が切れる数分前(たとえば、有効期限の5分前)に、新しいトークンをリクエストするようタイマーを設定してください。
- サーバーにリクエストを送信して、同じセッションID用の新しいトークンを生成してください。
- クライアントが再接続する必要が生じた場合に備え、新しいトークンを保存しておいてください。
注:アクティブで接続中のクライアントは、トークンの有効期限が切れても切断されません。トークンの有効期限は、接続時のみ確認されます。つまり、トークンのローテーションは再接続の場面で重要となります。有効期間の長いトークンに依存するのではなく、再接続を試みる前に、常に新しいトークンが利用可能であることを確認してください。
接続データ
各トークンに対して、クライアントを説明するメタデータを含む文字列を追加できます。例えば、ユーザIDや名前など、クライアントを表すデータを渡すことができます。このデータは、アプリケーションに応じて、サーバ側のデータベースから取得することも、クライアントから提供されたデータから取得することもできます。文字列の長さは1000文字に制限されています。このデータは一度設定すると更新できません。
トークン・データに個人情報を使用しない - トークンのメタデータはセッションの他の参加者に公開される可能性があり、またVonageの内部ログでも読み取れる可能性があります。そのため、トークン・データには暗号化されていない機密情報や個人情報を決して使用しないでください。参照 セキュリティのベストプラクティス.
Vonage VideoクライアントSDKには、セッションに接続されたクライアントの接続データを検査するためのプロパティが含まれています。
トークン生成時のベストプラクティス
トークンは安価に生成できる。トークンはハッシュ関数とあなたの秘密を使って生成されます。トークンを生成する際に、私たちのサーバーへのAPIコールは使用されません。私たちはお勧めします:
- すべてのユーザーが接続しようとするときに、新しいトークンを生成します。トークンには有効期限があり、デフォルトでは 24時間 トークン作成後トークンの有効期限が切れると、そのトークンを使用してセッションに接続することはできません。
- トークンを保管したり、再利用しようとしたりしないでください。
- で生成されたトークンを使用しないでください。 遊び場ツール を本番アプリケーションで使用することはできません。Playgroundトークンの構造は多少異なっており、本番アプリケーションで使用すると問題が発生します。
- 接続データを使ってユーザーを識別する。接続データは、ユーザーに関する情報(ユーザーIDなど、アプリケーション内でユーザーを識別するのに役立つ情報)を安全に保存する方法です。
トークンの生成
のいずれかを使用してトークンを生成できます。 サーバーサイドSDK.