你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

标识模型

Azure 通信服务是一种与标识无关的服务,可提供多种优势:

  • 重复使用标识管理系统中的现有标识,只需使用Azure 通信服务标识对其进行映射。
  • 提供集成灵活性,因为与标识无关的模型适用于现有标识系统。
  • 可以保留用户的数据(如其名称),因为无需在Azure 通信服务中复制它。

Azure 通信服务标识模型适用于两个关键概念。

用户标识/映射

通过用户标识符唯一标识用户,该标识符由创建用户时Azure 通信服务生成。 电话号码、用户、设备、应用程序和 GUID 等外部标识符不可用于 Azure 通信服务中的标识。 可以免费创建 Azure 通信服务用户标识。 仅当用户使用聊天或通话等通信形式时,才会产生费用。 可以在 1:1、1:N、N:1、N:1、N:1、N:N 配置中将用户标识映射到Azure 通信服务用户标识。 用户可以使用多个设备同时参与多个通信会话。 Azure 通信服务用户标识与客户的专用用户标识之间的映射由客户保留和维护。 例如,客户可以在其用户表中添加一个CommunicationServicesId列来存储关联的Azure 通信服务标识。

访问令牌

创建用户标识后,用户有权使用访问令牌通过聊天或呼叫参与通信。 例如,只有具有聊天令牌的用户才能参与聊天,而具有 VoIP 令牌的用户可以参与 VoIP 呼叫。 用户可以同时具有多个令牌。 Azure 通信服务支持多种类型的令牌,以考虑需要完全访问权限的用户与受限访问权限的用户。 访问令牌具有以下属性。

properties 说明
标识 唯一标识令牌
过期日期 访问令牌有效期是 1 到 24 小时。 过期后,访问令牌将会失效,不可用于访问任何基元。 若要生成具有自定义有效性的令牌,请在生成令牌时指定所需的有效期。 如果未指定自定义有效性,令牌的有效期为 24 小时。 建议对一次性会议使用短生存期令牌,为使用应用程序长时间的代理使用更长的生存期令牌
范围 范围参数定义一组可用于的基元(Chat/VoIP)。

访问令牌是 JSON Web 令牌(JWT),具有完整性保护。 也就是说,颁发该令牌后不能更改其声明。 因此,手动更改标识、过期时间或范围等属性会使访问令牌失效。 如果通过已失效的令牌使用基元,将拒绝访问基元。 Azure 通信服务支持以下访问令牌范围。

聊天令牌范围

支持三种类型的聊天令牌范围。 下面描述了每个令牌的权限。

  • 聊天
  • chat.join
  • chat.join.limited
功能/令牌范围 聊天 chat.join chat.join.limited
创建聊天线程 Y N N
使用 ID 更新聊天线程 Y N N
删除 ID 的聊天线程 Y N N
将参与者添加到聊天线程 Y Y N
删除聊天会话中的参与者 Y Y N
获取聊天线程 Y Y Y
使用 ID 获取聊天线程 Y Y Y
获取 ReadReceipt Y Y Y
创建 ReadReceipt Y Y Y
为 ID 的聊天线程创建消息 Y Y Y
获取包含消息 ID 的消息 Y Y Y
使用消息 ID 更新自己的消息 Y Y Y
使用消息 ID 删除自己的消息 Y Y Y
发送键入指示符 Y Y Y
获取线程 ID 的参与者 Y Y Y

VoIP 令牌范围

支持两种类型的 VoIP 令牌范围。 下面描述了每个令牌的权限。

  • Voip
  • voip.join
功能/令牌范围 Voip voip.join
启动 VoIP 呼叫 Y N
当用户已受邀加入会议室时,在虚拟会议室中启动 VoIP 呼叫 Y Y
加入 InProgress VoIP 调用 Y Y
在虚拟会议室中加入 InProgress VoIP 呼叫,当用户已受邀加入会议室时 Y Y
所有其他呼叫内操作,例如静音/取消静音、屏幕共享等。 Y Y
虚拟会议室中所有其他呼叫内操作,例如静音/取消静音、屏幕共享等 由用户角色确定 由用户角色确定

撤销或更新访问令牌

  • Azure 通信服务标识库可用于在过期前撤销访问令牌。 令牌吊销不是立即生效的。 传播最多可能需要 15 分钟。
  • 删除标识、资源或订阅会吊销所有访问令牌。
  • 若要消除用户访问特定功能的能力,请吊销所有访问令牌。 然后颁发具有一组受限程度更高的范围的新访问令牌。
  • 轮换访问密钥会撤销使用以前的访问密钥创建的所有活动访问令牌。 在这种情况下,所有标识都无法访问Azure 通信服务,并且必须颁发新的访问令牌。

注意事项

  • 建议在服务器端服务而不是客户端应用程序中颁发访问令牌。 原因是颁发需要访问密钥或 Microsoft Entra 身份验证。 出于安全原因,不建议与客户端应用程序共享机密。
  • 客户端应用程序应使用可对客户端进行身份验证的受信任服务终结点。 该终结点应代表客户端颁发访问令牌。 有关详细信息,请参阅客户端和服务器体系结构
  • 如果在后备存储中缓存访问令牌,我们建议使用加密。 访问令牌属于敏感数据。 如果不受保护,访问令牌可能会被用于恶意活动。 拥有访问令牌的用户可以启动 SDK 并访问 API。 只能根据访问令牌的作用范围限制可访问的 API。
  • 建议颁发仅具有必需范围的访问令牌。

后续步骤