产品百科 |Ali RTC 生成 Token 的两种方式

简介: 阿里云 RTC 为您提供两种生成 Token 方式,您可以根据业务需求选择在控制台生成或服务端生成。

音视频通信 RTC(Real-Time Communication)是阿里云覆盖全球的实时音视频开发平台,依托核心音视频编解码、信道传输、网络调度技术,提供高可用、高品质、超低延时的音视频通信服务,让用户快速搭建多端实时应用,适用于在线教育、视频会议、互动娱乐、音视频社交等场景。


产品链接:https://www.aliyun.com/product/rtc


阿里云 RTC 为您提供两种生成 Token 方式,您可以根据业务需求选择在控制台生成或服务端生成。

前提条件

在生成 Token 前,您需要完成以下操作:

背景信息

Token 是阿里云设计的一种安全保护签名,目的是为了阻止恶意攻击者盗用您的云服务使用权。您需要在相应 SDK 的登录函数中提供 AppIDUserIDChannelIdNonceTimeStampGSLB Token 信息。其中 AppID 用于标识您的应用,UserID 用于标识您的用户,而 Token 则是基于前两者计算出的安全签名,它由 SHA256 加密算法计算得出。只要攻击者不能伪造 Token,就无法盗用您的云服务流量。

控制台

  1. 登录音视频通信 RTC 控制台
  2. 在左侧导航栏,单击接入工具
  3. Token 生成器页签下,输入生成 Token 所需要的参数。
参数 描述
AppID 应用 ID,在控制台应用管理页面创建和查看。
AppKey 应用 AppKey,在控制台应用管理页面查询。
ChannelId 频道 ID。1~64 位,支持大小写字母、数字、下划线(_)、中划线(-)。
UserId 用户 ID。1~64 位,支持大小写字母、数字、下划线(_)、中划线(-)。
Nonce 随机码。需要加上前缀 AK-,由字母 [a-zA-Z] 和数字 [0-9] 组成,不包含特殊字符,最大 64 字节。例如:AK-2b9be4b25c2d38c409c376ffd2372be1。
TimeStamp 过期时间戳。可以选择 12 小时、24 小时、3 天和 7 天,代表令牌有效时间为当前时间 + 所选择小时数。
  1. 单击生成image.png

服务端

采用服务端计算 Token 的方案,可以最大限度地保障计算 Token 的密钥不被泄露,具体的流程如下所示。

  1. 您的 App 在调用 SDK 的初始化函数之前,首先要向您的服务器请求 Token
  2. 您的服务器根据如下参数计算 Token
token = sha256(appId + appKey + channelId + userId + nonce + timestamp)
  1. 服务器将计算好的鉴权信息返回给您的 App。
  2. 您的 App 将获得的鉴权信息通过特定 API 传递给 SDK。
  3. SDK 将鉴权信息提交给阿里云服务器进行校验。
  4. 阿里云校验鉴权信息,确认合法性。
  5. 校验通过后,即可开始提供实时音视频服务。

image.png

参数 说明
AppID 应用 ID,通过控制台创建。
UserID 您的唯一标识,AppServer 生成。同一个 UserId 的用户在其他端登录,先入会的端会被后入会的端踢出房间。

由字母 [a-zA-Z] 和数字 [0-9] 组成,不包含特殊字符,最大 64 字节。例如:2b9be4b25c2d38c409c376ffd2372be1。

ChannelID 频道 ID,AppServer 生成。

由字母 [a-zA-Z] 和数字 [0-9] 组成,不包含特殊字符,可以用连接号(-)分隔,最大 64 字节。例如:181-218-3406。不支持设置 ChannelID 为 0。ChannelID 不可以重复,需要保持 ChannelID 的唯一性。

Nonce 令牌随机码,由 AppServe 生成。

需要加上前缀 AK-,以标识采用应用鉴权私钥(AppKey)方案。格式推荐您用 UUID,由字母 [a-zA-Z] 和数字 [0-9] 组成,不包含特殊字符,最大 64 字节。例如:AK-2b9be4b25c2d38c409c376ffd2372be1。

Timestamp 令牌过期时间戳,由您生成指定令牌过期时间。为 Unix 时间格式,AppServer 所运行的服务器需保持时间同步。例如:当前时间戳为 1560415794(2019-06-13 16:49:54)令牌 2 天后过期,Timestamp 设置为 1560588594(2019-06-15 16:49:54)。
Token 加入频道 Token,可以通过 AppServer 生成。实际算法为 sha256(appId + appKey + channelId + userId + nonce + timestamp)
GSLB 服务地址,该参数是数组类型,当前请使用:["https://rgslb.rtc.aliyuncs.com"],请您通过业务服务器下发到客户端 SDK,不建议您将该地址固化在客户端代码。

服务端生成 Token 的签名算法为 SHA256,您可以参见如下版本的生成 Token 函数:

  • Golang 程序实例请查看 CreateToken 函数,详情请参见 Golang Demo
  • Java 程序实例请查看 createToken 函数,详情请参见 Java Demo
  • Python 程序实例请查看 create_token 函数,详情请参见 Python Demo
  • C# 程序实例请查看 CreateToken 函数,详情请参见 C# Demo
  • Nodejs 程序实例请查看 CreateToken 函数,详情请参见 Node.js Demo
  • PHP 程序实例请参查看 CreateToken 函数,详情请参见 PHP Demo


「视频云技术」你最值得关注的音视频技术公众号,每周推送来自阿里云一线的实践技术文章,在这里与音视频领域一流工程师交流切磋。

image.png


相关文章
|
Web App开发 缓存 安全
电脑屏幕上的广告太多怎么解决?
安装一个广告拦截扩展或软件,如AdBlock Plus、uBlock Origin等。这些工具可以帮助拦截网页广告,在浏览器的扩展商店中搜索并添加这些扩展。例如,在Chrome中,你可以访问Chrome网上应用店来安装。
|
5月前
|
存储 Kubernetes 调度
Kubernetes、Docker和Containerd的关系解析
总的来说,Docker、Containerd和Kubernetes之间的关系可以用一个形象的比喻来描述:Docker就像是一辆装满货物的卡车,Containerd就像是卡车的引擎,而Kubernetes就像是调度中心,负责指挥卡车何时何地送货。
254 12
|
7月前
|
Cloud Native 安全 Serverless
云原生应用实战:基于阿里云Serverless的API服务开发与部署
随着云计算的发展,Serverless架构日益流行。阿里云函数计算(Function Compute)作为Serverless服务,让开发者无需管理服务器即可运行代码,按需付费,简化开发运维流程。本文从零开始,介绍如何使用阿里云函数计算开发简单的API服务,并探讨其核心优势与最佳实践。通过Python示例,演示创建、部署及优化API的过程,涵盖环境准备、代码实现、性能优化和安全管理等内容,帮助读者快速上手Serverless开发。
|
开发工具 数据安全/隐私保护 git
记录一次使用git工具拉取coding上代码密码账号错误的经历
这篇文章记录了作者在使用Git工具从Coding平台克隆项目时遇到的账号密码错误问题,并分享了通过清除电脑凭证中错误记录的账号密码来解决这个问题的方法。
记录一次使用git工具拉取coding上代码密码账号错误的经历
|
Oracle 关系型数据库 BI
ORACLE Apex: EBS多组织结构 理解与配置
【8月更文挑战第11天】在Oracle Apex中理解和配置与EBS多组织结构相关内容需掌握:1) EBS多组织结构概念及组成部分,如法律实体、业务单位与库存组织;2) Oracle Apex与EBS集成的目的与方式,包括提供友好界面及自定义业务流程;3) 在Apex中配置多组织结构应用,涉及数据访问控制、页面报表设计及业务流程集成。整体而言,需精通EBS架构与Apex开发技术,以实现高效灵活的企业解决方案。
264 2
|
安全 API 网络安全
API接口安全加固:应对黑客攻击的实战指南
**API安全摘要:** API成为黑客目标,攻击类型包括未授权访问、CSRF、DDoS、数据泄露和注入攻击。防御策略包括使用OAuth 2.0和JWT进行认证授权,防止CSRF攻击,限制请求速率,避免数据泄露,以及实施注入攻击防护。开发者应定期更新安全措施,确保API安全性。示例代码展示了Node.js中JWT认证的实现。
432 0
|
安全 网络安全 数据安全/隐私保护
网络信息安全之基于时间的安全模型(PDR和PPDR模型)
基于时间的安全模型是基于"**任何安全防护措施都是基于时间的,超过该时间段,这种防护措施是可能被攻破的**"这样的前提。该模型主要给出了信息系统的攻防时间表。攻击时间指的是在系统采取某种防守措施,通过不同的攻击手段来计算攻破该防守措施所需要的时间。防守时间指的是,对于某种固定攻击手法,通过采取不同的安全防护措施,来计算该防护措施所能坚守的时间。
1462 0
网络信息安全之基于时间的安全模型(PDR和PPDR模型)
|
SQL 监控 安全
代码审计之洞态IAST 0day挖掘
代码审计之洞态IAST 0day挖掘
|
Java API 微服务
认证鉴权与API权限控制在微服务架构中的设计与实现(一)
作者: [Aoho’s Blog] 引言: 本文系《认证鉴权与API权限控制在微服务架构中的设计与实现》系列的第一篇,本系列预计四篇文章讲解微服务下的认证鉴权与API权限控制的实现。
5812 0
|
缓存 算法 PyTorch
YOLOv5的Tricks | 【Trick12】YOLOv5使用的数据增强方法汇总
YOLOv5的Tricks | 【Trick12】YOLOv5使用的数据增强方法汇总
4051 0
YOLOv5的Tricks | 【Trick12】YOLOv5使用的数据增强方法汇总