ISDP-鉴权原理

时间:2023-11-01 16:15:15

鉴权原理

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 + "@#@" + HMA CS HA256(signature))

最终的signature值为:

示例:

eyJ0aW1lU3RhbXAiOjE2NDg2NDE0NzQxNzEsInJvbGUiOiIxIiwicG9ydCI6IjQ0MyIsImFwcElkIjoic2RjcGZXcU1jTUdKSDVsa2lFakNmcEd0TXpsWlBNMFQiLCJob3N0IjoiMTEuMjIuMzMuNDQiLCJ0ZW5hbnRJZCI6IjIwMTIiLCJ1c2VySWQiOiIxMjEyMzEyMzEyMzEyMyIsImNoYW5uZWxJZCI6IjIyMjUwNzMwMjUzMTE0MSJ9QCNAbTJ1UGJDdFBtSzdJQ2J1bHp6ZnptVFQ3RXZTbG9WY0lhcldyMWlWOUkzMD0=
support.huaweicloud.com/isdp_video/iRTC_007_04-1.html