更新时间:2022-07-29 GMT+08:00
分享

鉴权原理

iRTC系统使用HmacSHA256加密生成签名作为接入鉴权方式,需要在SDK加入房间时设置“signature”和“timeStamp”。“signature”为标识签名,由租户使用ISDPRTC提供的 “accessKey”、“appId”以及当前的“channelId”,“userId”,“timeStamp”,按照ISDPRTC的签名生成样例自行生成。

accessKey获取方式:

应用管理页面查看accessKey

图7.4.1-1 查看accessKey

Token由两部分组成(payload+signature):

1.PAYLOAD部分,包含以下字段。

{
  "userId": "1234567890",
  "timeStamp": 123456789,  
"channelId": "",
"appId": "",  
"host": "",
"port": "",
"role": "",
"tenantId": ""
}

字段解析:

  • userId:String类型,
  • timeStamp:Long类型,签名UTC时间戳,单位:毫秒
  • channelId:String类型,频道ID
  • appId:String类型,应用ID,创建应用获取
  • host: String类型,媒体服务器接入IP
  • port: String类型,媒体服务器接入端口
  • tenantId: String类型,租户ID
  • userRole:String类型, 用户角色,可以标识媒体方向,取值如下:

1:joiner(发布并观看)。

0:publisher(只发布不观看)。

2.SIGNATURE部分,由PAYLOAD进行HmacSHA256加密,对PAYLOAD+SIGNATURE进行Base64转码,得到入会token。

Token原理:
base64Encode(payload + "@#@" + HMACSHA256(signature))

最终的signature值为:

示例:

eyJ0aW1lU3RhbXAiOjE2NDg2NDE0NzQxNzEsInJvbGUiOiIxIiwicG9ydCI6IjQ0MyIsImFwcElkIjoic2RjcGZXcU1jTUdKSDVsa2lFakNmcEd0TXpsWlBNMFQiLCJob3N0I
joiMTEuMjIuMzMuNDQiLCJ0ZW5hbnRJZCI6IjIwMTIiLCJ1c2VySWQiOiIxMjEyMzEyMzEyMzEyMyIsImNoYW5uZWxJZCI6IjIyMjUwNzMwMjUzMTE0MSJ9QCNAbT
J1UGJDdFBtSzdJQ2J1bHp6ZnptVFQ3RXZTbG9WY0lhcldyMWlWOUkzMD0=

相关文档