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

向 Azure 通信服务进行身份验证

需要对每个与 Azure 通信服务的客户端交互进行身份验证。 在典型的体系结构(见客户端和服务器体系结构)中,访问密钥或 Microsoft Entra 身份验证用于服务端身份验证。

另一种类型的身份验证使用用户访问令牌对需要用户参与的服务进行身份验证。 例如,聊天或呼叫服务使用用户访问令牌,便于用户被添加到会话中,并彼此进行对话。

身份验证选项

下表列出了 Azure 通信服务 SDK 及其身份验证选项:

SDK 验证选项
标识 访问密钥或 Microsoft Entra 身份验证
短信 访问密钥或 Microsoft Entra 身份验证
电话号码 访问密钥或 Microsoft Entra 身份验证
电子邮件 访问密钥或 Microsoft Entra 身份验证
高级消息传送 访问密钥或 Microsoft Entra 身份验证
调用 用户访问令牌
聊天 用户访问令牌

下面简要介绍每个授权选项:

访问密钥

访问密钥身份验证适用于在受信任的服务环境中运行的服务应用程序。 访问密钥可以在 Azure 通信服务门户中找到。 服务应用程序将其用作初始化相应 SDK 的凭据。 请参阅有关如何在标识 SDK 中使用它的示例。

由于访问密钥是资源连接字符串的一部分,因此使用连接字符串进行身份验证等同于使用访问密钥进行身份验证。

若要使用访问密钥手动调用 Azure 通信服务的 API,则需要对请求进行签名。 这篇教程中详细介绍了如何对请求进行签名。

若要创建服务主体,请使用 Azure CLI 创建已注册的应用程序。 然后,可以使用终结点和凭据对 SDK 进行身份验证。 请参阅示例,了解如何使用服务主体

通信服务支持为通信服务资源进行 Microsoft Entra ID 身份验证。 有关托管标识支持的更多详细信息,请参阅如何将托管标识与 Azure 通信服务配合使用

Microsoft Entra ID 身份验证

Azure 平台提供基于角色的访问 (Azure RBAC) 来控制对资源的访问。 Azure RBAC 安全主体表示请求访问 Azure 资源的用户、组、服务主体或托管标识。 Microsoft Entra ID 身份验证的安全性和易用性优于其他授权选项。

  • 托管标识:

    • 通过使用托管标识,你不必像使用访问密钥授权那样在代码中存储帐户访问密钥。 托管标识凭据由平台完全托管、轮换和保护,从而减少凭据泄露的风险。
    • 托管标识可以向支持 Microsoft Entra ID 身份验证的 Azure 服务和资源进行身份验证。 此方法提供了一种无缝且安全的方法来管理凭据。
    • 有关如何将托管标识与 Azure 通信服务配合使用的详细信息,请参阅本指南
  • 服务主体:

通信服务支持 Microsoft 通信服务资源的 Entra ID 身份验证,尽管你可以继续对通信服务应用程序使用访问密钥授权,但 Microsoft 建议尽可能迁移到 Microsoft Entra ID。

使用我们的受信任的身份验证服务特大示例,将 Azure 通信服务访问令牌与你的 Microsoft Entra ID 进行映射。

用户访问令牌

用户访问令牌是使用标识 SDK 生成,并与在标识 SDK 中创建的用户相关联。 请参阅有关如何创建用户和生成令牌的示例。 然后,用户访问令牌用于对添加到聊天或呼叫 SDK 中对话的参与者进行身份验证。 有关详细信息,请参阅向应用中添加聊天。 用户访问令牌身份验证与访问密钥和 Microsoft Entra 身份验证的不同之处在于,它用于对用户进行身份验证,而不是对受保护的 Azure 资源进行身份验证。

使用标识获取监视和指标数据

用户标识可充当主键,用于获取通过 Azure Monitor 收集的日志和指标。 例如,如果希望获取特定用户所有通话的视图,则应以将一个或多个特定 Azure 通信服务标识映射到单个用户的方式来设置身份验证。 详细了解可用的日志分析指标

后续步骤

有关详细信息,请参阅以下文章: