Azure Web PubSub 服务利用 Microsoft Entra ID,允许对 Azure Web PubSub 资源的请求授权。
通过将基于角色的访问控制 (RBAC) 与 Microsoft Entra ID 一起使用,可以向安全主体[1]授予权限。 Microsoft Entra 授权此安全主体并返回 OAuth 2.0 令牌,然后 Web PubSub 资源可以使用该令牌来授权请求。
与访问密钥授权相比,使用 Microsoft Entra ID 进行 Web PubSub 请求的授权可以提高安全性和易用性。 Azure 建议尽可能使用 Microsoft Entra 授权来访问 Web PubSub 资源,以确保访问权限为最低必要权限。
[1] 安全主体:用户/资源组、应用程序或服务主体,例如系统分配的标识和用户分配的标识。
Web PubSub 的 Microsoft Entra ID 概述
使用 Microsoft Entra ID 时,必须进行身份验证才能访问 Web PubSub 资源。 此身份验证涉及两个步骤:
- 首先,Azure 对安全主体进行身份验证,并颁发 OAuth 2.0 令牌。
- 其次,将令牌添加到对 Web PubSub 资源的请求中。 Web PubSub 服务使用令牌来检查服务主体是否有权访问资源。
使用 Microsoft Entra ID 时进行客户端身份验证
协商服务器/Function App 与 Web PubSub 资源共享访问密钥,使 Web PubSub 服务能够使用访问密钥生成的客户端令牌对客户端连接请求进行身份验证。
但是,使用 Microsoft Entra ID 来提高安全性时,通常会禁用访问密钥。
为了解决此问题,我们开发了一个生成客户端令牌的 REST API。 此令牌可用于连接到 Azure Web PubSub 服务。
若要使用此 API,协商服务器必须首先从 Azure 获取 Microsoft Entra 令牌 才能对自身进行身份验证。 然后,服务器可以使用 Microsoft Entra 令牌 调用 Web PubSub 身份验证 API 来检索 客户端令牌。 然后, 客户端令牌 将返回到客户端,该客户端可以使用该令牌连接到 Azure Web PubSub 服务。
我们为支持的编程语言提供了帮助程序函数(例如“GenerateClientAccessUri”。
分配 Azure 角色以授予访问权限
Microsoft Entra 通过 Azure 基于角色的访问控制授权访问安全资源的权限。 Azure Web PubSub 定义了一组 Azure 内置角色,其中包含用于访问 Web PubSub 资源的常见权限集。 还可以定义用于访问 Web PubSub 资源的自定义角色。
资源范围
将 Azure RBAC 角色分配给安全主体之前,必须确定主体应具有的适当访问级别。 建议将角色授予最小的范围。 其中的资源将继承分配给作用域的 Azure RBAC 角色。
可以在以下级别限定对 Azure Web PubSub 资源的访问范围,从最窄的范围开始:
单个资源。
在此范围内,角色分配仅适用于目标资源。
资源组。
在此范围内,角色分配适用于资源组中的所有资源。
订阅。
在此范围内,角色分配适用于订阅中所有资源组中的所有资源。
管理组。
在此范围内,角色分配适用于管理组中所有订阅的所有资源组内的所有资源。
Web PubSub 资源的 Azure 内置角色
角色 | DESCRIPTION | 用例 |
---|---|---|
Web PubSub 服务所有者 | 对数据平面 API(包括读/写 REST API 和身份验证 API)的完全访问权限。 | 最常用于生成处理协商请求和客户端事件的上游服务器。 |
Web PubSub 服务读取器 | 对数据平面 API 的只读访问权限。 | 在编写调用只读 REST API 的监视工具时使用它。 |
了解如何创建自定义角色(如果内置角色不符合要求)。
后续步骤
若要了解如何将 Microsoft Entra 身份验证与基于角色的访问控制配合使用,请参阅
若要了解有关基于角色的访问控制的详细信息,请参阅
若要了解如何禁用连接字符串并仅使用 Microsoft Entra 身份验证,请参阅