使用 Microsoft Entra ID 授予对 Web PubSub 资源的访问权限
Azure Web PubSub 服务通过利用 Microsoft Entra ID 可以对 Azure Web PubSub 资源请求进行授权。
利用 Microsoft Entra ID 基于角色的访问控制 (RBAC),可以向安全主体授予权限[1]。 Microsoft Entra 对此安全主体进行授权并返回一个 OAuth 2.0 令牌,然后,Web PubSub 资源可以使用该令牌来为请求授权。
与访问密钥授权相比,使用 Microsoft Entra ID 为 Web PubSub 请求授权的安全性更高且更方便。 Azure 建议尽可能对 Web PubSub 资源使用 Microsoft Entra 授权,以确保使用最低的特权进行访问。
[1] 安全主体:用户/资源组、应用程序或服务主体,例如系统分配的标识和用户分配的标识。
Web PubSub 的 Microsoft Entra ID 概述
使用 Microsoft Entra ID 时,必须执行身份验证才能访问 Web PubSub 资源。 这种身份验证包括两个步骤:
- 首先,Azure 对安全主体进行身份验证并颁发 OAuth 2.0 令牌。
- 接下来,将该令牌添加到 Web PubSub 资源请求。 Web PubSub 服务使用该令牌来检查服务主体是否有权访问资源。
使用 Microsoft Entra ID 时的客户端身份验证
协商服务器/函数应用与 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 内置角色
Web PubSub Service Owner
对数据平面权限的完全访问权限,包括读取/写入 REST API 和身份验证 API。
此角色最常用于构建上游服务器。
Web PubSub Service Reader
使用以向 Web PubSub 资源授予只读 REST API 权限。
编写仅调用 Web PubSub 数据平面只读 REST API 的监视工具时,会使用该角色。
后续步骤
若要了解如何创建 Azure 应用程序和使用 Microsoft Entra 授权,请参阅
若要了解如何配置托管标识和使用 Microsoft Entra 授权,请参阅
若要了解有关角色和角色分配的详细信息,请参阅
若要了解如何创建自定义角色,请参阅
若要了解如何仅使用 Microsoft Entra 授权,请参阅
- “禁用本地身份验证”