Azure Web PubSub 服务数据平面 REST API 参考
如上述工作流图和内部情况中描述的详细工作流所示,应用服务器可以使用 Web PubSub 服务公开的 REST API 向客户端发送消息或管理连接的客户端。 本文详细介绍了 REST API。
重要
本文中出现的原始连接字符串仅用于演示目的。
连接字符串包括应用程序访问 Azure Web PubSub 服务所需的授权信息。 连接字符串中的访问密钥类似于服务的根密码。 在生产环境中,请始终保护访问密钥。 使用 Azure Key Vault 安全地管理和轮换密钥,并使用 WebPubSubServiceClient
对连接进行保护。
避免将访问密钥分发给其他用户、对其进行硬编码或将其以纯文本形式保存在其他人可以访问的任何位置。 如果你认为访问密钥可能已泄露,请轮换密钥。
使用 REST API
通过 Azure Web PubSub 服务 AccessKey 进行身份验证
在每个 HTTP 请求中,需要使用带 JSON Web 令牌 (JWT) 的授权标头才能使用 Azure Web PubSub 服务进行身份验证。
签名算法和签名
HS256
,即 HMAC-SHA256,用作签名算法。
应在 Azure Web PubSub 服务实例的连接字符串中使用 AccessKey
对生成的 JWT 令牌进行签名。
声明
以下声明需要包含在 JWT 令牌中。
声明类型 | 是否必需 | 说明 |
---|---|---|
aud |
是 | 应与你的 HTTP 请求 URL 相同。 例如,广播请求的受众类似于 https://example.webpubsub.azure.com/api/hubs/myhub/:send?api-version=2022-11-01 。 |
exp |
是 | 此令牌过期的纪元时间。 |
JS 中的伪代码:
本文中出现的原始连接字符串仅用于演示目的。 在生产环境中,请始终保护访问密钥。 使用 Azure Key Vault 安全地管理和轮换密钥,并使用 WebPubSubServiceClient
对连接进行保护。
const bearerToken = jwt.sign({}, connectionString.accessKey, {
audience: request.url,
expiresIn: "1h",
algorithm: "HS256",
});
通过 Microsoft Entra 令牌进行身份验证
与使用 AccessKey
一样,还需要 JSON Web 令牌 (JWT) 对 HTTP 请求进行身份验证。
区别在于,在此方案中,JWT 令牌由 Microsoft Entra ID 生成。
凭据的使用范围应为 https://webpubsub.azure.cn/.default
。
还可以使用基于角色的访问控制 (RBAC),为从服务器发出的针对 Azure Web PubSub 服务的请求授权。
API
操作组 | 说明 |
---|---|
服务状态 | 提供用于检查服务状态的操作 |
中心操作 | 提供用于管理连接并向其发送消息的操作。 |