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

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

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

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

身份验证选项

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

SDK 中 IsInRole 中的声明 验证选项
标识 访问密钥或 Microsoft Entra 身份验证
短信 访问密钥或 Microsoft Entra 身份验证
电话号码 访问密钥或 Microsoft Entra 身份验证
电子邮件 访问密钥或 Microsoft Entra 身份验证
呼叫 用户访问令牌
聊天 用户访问令牌

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

访问密钥

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

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

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

Microsoft Entra 身份验证

Azure 平台提供基于角色的访问 (Azure RBAC) 来控制对资源的访问。 Azure RBAC 安全主体表示请求访问 Azure 资源的用户、组、服务主体或托管标识。 Microsoft Entra 身份验证提供优于其他授权选项的安全性和易用性。 例如,通过使用托管标识,你不必像使用访问密钥授权那样在代码中存储帐户访问密钥。 虽然你可以继续对通信服务应用程序使用访问密钥授权,但 Microsoft 建议尽可能迁移到 Microsoft Entra ID。

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

通信服务支持 Microsoft Entra 身份验证,但不支持通信服务资源的托管标识。 可以在 Microsoft Entra 文档中找到有关托管标识支持的更多详细信息。

使用受信任的身份验证服务 hero 示例,使用 Microsoft Entra ID 映射Azure 通信服务访问令牌。

用户访问令牌

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

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

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

后续步骤

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