RICOH Live Streaming Access Token 外部仕様

本文書はRICOH Live Streamingがアプリケーションに要求するAccess Tokenの仕様について記載する。

Access Token は client_id に対応する client_secret で HS256 で署名された JWTである。セキュリティ上 client_secret はアプリケーションのユーザに漏れてはならないため、アプリケーションが保有するサーバで生成することを想定する。

シーケンス

シーケンス

JWT仕様

  • ヘッダの"alg"属性および署名アルゴリズムは"HS256"のみ可
  • クレームセット(署名されるJSONオブジェクト)は以下のオブジェクト、サブオブジェクトを含むこと。記載されていない属性が含まれていた場合無視される

オブジェクト

属性名                 必須  説明
nbf int このトークンの有効期限の開始時刻。Unixtime。RFC7519で定義されている。
exp - nbf <= 3600(expとnbfの差は1時間以内)でなければならない
exp int このトークンの有効期限の終了時刻。Unixtime。RFC7519で定義されている
room_id IDString 入室するRoomの ID
room_spec RoomSpec 入室するRoomの仕様。同時に同じRoomに入室するConnectionは同じRoomSpecが指定されていなければならない
connection_id IDString 自Connection の ID。同じroom_idのRoom内に同じconnection_idのConnectionが同時に複数存在することはできない

サブオブジェクト

RoomSpec

属性名 必須 デフォルト 説明
type "sfu" |
"p2p" |
"p2p_turn"
- Roomの種類。SFURoom型もしくはP2PRoom型のどちらかを選択
max_connections int - 10000 Roomに入室できる最大Connection数。1以上10000以下
media_control MediaControl - type="p2p" または "p2p_turn" の場合 : なし

type="sfu" の場合 : {"bitrate_reservation_mbps": 10}
メディア制御設定
classification_label IDString - "default" 課金分類ラベル(※)

※ 「利用量の内訳を取得するためのラベル」です。詳細は利用量の内訳を取得するにはを参照ください。

MediaControl

属性名 必須 デフォルト 説明
bitrate_reservation_mbps int - 10 Room ごとに利用可能な帯域幅の最大値を Mbps 単位で指定

Room の利用帯域幅は、すべての接続の送信と受信の合計値であり、各接続が利用する帯域は、合計が bitrate_reservation_mbps の設定内に収まるように調整される

1 以上 250 以下

利用シナリオに応じた値の見積り/決定方法については想定利用シーン別料金を参照

JSONで定義されている型定義に加えてTypeScript由来と独自定義により以下の型を導入する。

TypeScriptから導入する型

  • String Literal Type
  • Union Type

独自定義

  • int
    • 整数型
  • サブオブジェクト名が記載されている場合はそのサブオブジェクト

参考情報

TypeScriptから導入する型

  • String Literal Type
    • 概要: 指定された特定の文字列リテラルのみ許可
    • 例: "sfu"
  • Union Type
    • 概要: | の右辺と左辺の両方の型を許可
    • 例: "sfu" | "p2p"