認証¶
概要¶
Sora Cloud では JWT 形式のアクセストークンを
Sora の "type": "connect"
時の metadata
に access_token
を含めて認証を行います。
metadata¶
type: connnect
の metadata
に "access_token": "<JWT>"
を含めます。
{
"type": "connect",
"role": "sendrecv",
"channel_id": "sora-cloud@shiguredo#1490",
"multistream": "true",
"metadata": {
"access_token": "<JWT>"
}
}
JWT 仕様¶
- typ:
JWT
- alg:
HS256
JWT 利用の注意点¶
Sora Cloud で利用する特定のトークンの失効させる方法は API キーを再生成するしか方法がありません。
そのため、本番環境向けには必ず nbf
/ exp
を付けて短い時間しか利用できないトークンを発行するようにしてください。
Sora Cloud の認証では JWT 的なチェックのみで iss
の存在有無などのチェックは行いません。
認証ウェブフックを設定し、プロジェクト側でのチェックを行うようにしてください。
利用可能な登録済みクレーム¶
exp¶
- クレーム:
exp
- 型:
integer
- 要求:
オプション
- RFC:
トークンが利用できなくなる時間 (UTC) を指定できます。
nbf¶
- クレーム:
nbf
- 型:
integer
- 要求:
オプション
- RFC:
トークンが利用できるようになる時間 (UTC) を指定できます。
jti¶
- クレーム:
jti
- 型:
string
- 要求:
オプション
オプションプライベートクレーム¶
channel_id¶
危険
channel_id クレーム
を指定しない場合すべてのチャネルにアクセス可能になるため、本番環境では channel_id クレーム
を指定する実装にしてください。
- クレーム:
channel_id
- 型:
string
- 要求:
オプション
channel_id クレームが含まれていた場合、Sora Cloud が認証時に channel_id と一致しているかどうかを確認します。
role¶
- クレーム:
role
- 型:
string
- 要求:
オプション
role クレームが含まれていた場合、Sora Cloud が認証時に role と一致しているかどうかを確認します。
指定可能な文字列は sendrecv / recvonly / sendonly です。
max_channel_connections¶
- クレーム:
max_channel_connections
- 型:
integer
- 要求:
オプション
認証時にチェックするチャネルの最大接続数を指定できます。
参考¶
シーケンス図¶
アクセストークンでの認証成功¶
アクセストークン生成 API 利用あり
Sora 認証ウェブフックの設定あり