質問・問題
トークン (Token) とは何ですか ?
回答・解決方法
概要
本番環境のようなサービスに対して高いセキュリティが求められる場面でお使いいただけるよう、RTC (Voice/Video) チャンネルへの接続時および Agora Signaling(旧RTM) システムへのログイン時に、トークン認証の仕組みを提供しています。
役割
トークン認証でカバーされる情報は、お使いの Agora 製品によって決まります:
- RTC (Video/Voice) SDK、On-premise Recording SDK または Cloud Recording サービスの場合... Agora サーバーはトークンを使い、各ユーザーの App ID、権限 (チャンネルへの参加、異なるタイプのストリームの公開)、権限の有効期限、トークンの有効性を確認します。
- Signaling(旧RTM) SDK の場合... Agora サーバーはトークンを使い、各ユーザのApp ID、ユーザID、トークンの有効性を確認します。
トークンを生成するには
RTC/Signaling(旧RTM) SDK、On-premise Recording SDK および Cloud Recording サービス自体には、トークンを生成する仕組みは備わっていません。
トークン発行専用のサーバーを設置し、アプリユーザーが RTC チャンネル接続または RTM システムログインの際、サーバーから発行されたトークンをアプリに渡す処理が必要になります。
トークン生成プログラムは Github にて公開している Agora Dynamic Key をご利用いただけます。詳しくは下記リンク先をご覧ください:
- Agora RTC SDK向けにトークンを生成するには
- Agora Signaling(旧RTM) SDK 向けにトークンを生成するには (英文)
尚、アプリがまだテスト段階である、トークン発行の仕組みがまだ完成していない、といった場合は Agora Console 上から一時的にトークンを発行することが可能です。詳しくは「Generate an RTC temporary token」をご参照ください。
※ 但し、一時トークンは RTM SDK にはご利用できません。
Wildcard Token について
一部の SDK 対象に、Wildcard Token が利用できます。詳しくは別 FAQ をご覧ください:
トークンの有効期間について
トークンは 2 種類の有効期限情報 (privilege expiration period、validity period) を含みます。
1 つ目はユーザー権限に関する有効期間、2 つ目はトークン自身の有効期間 (デフォルトで 24 時間) となります。
トークン有効切れの場合における SDK の振る舞いについて
Agora RTC SDK、Agora On-premise SDK、または Agora Cloud Recording において、トークンが期限切れになった時点でユーザーはチャンネルから強制退出されます。
Agora Signaling(旧RTM) SDK の場合、Agora Signaling(旧RTM) system から退出されませんが、次回以降の Agora Signaling(旧RTM) system へのログインができなくなります。
ユーザー権限の有効期限が近くなった、トークンの期限切れが通知された、などの際は、できるだけ早く新しいトークンを発行することを推奨します。