Azure Web PubSub 可以通过共享专用终结点连接访问专用网络中的密钥保管库。 本文介绍如何配置 Web PubSub 资源,以通过共享专用终结点而不是公用网络将出站调用路由到密钥保管库。
通过 Azure Web PubSub API 创建的安全资源的专用终结点称为“共享专用链接资源”。 可以“共享”对与 Azure 专用链接集成的资源(例如 Azure Key Vault 实例)的访问权限。 这些专用终结点在 Web PubSub 执行环境中创建,不会直接显示出来。
备注
本文中的示例使用以下资源 ID:
- 此 Azure Web PubSub 实例的资源 ID 为
_/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contoso/providers/Microsoft.SignalRService/webpubsub/contoso-webpubsub
。
- Azure Key Vault 实例的资源 ID 为
/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contoso/providers/Microsoft.KeyVault/vaults/contoso-kv
。
若要使用以下示例中的步骤,请将这些值替换为自己的订阅 ID、Web PubSub 资源的名称和 Azure Key Vault 资源的名称。
- 具有活动订阅的 Azure 帐户。 创建试用版订阅。
- Azure CLI 2.25.0 或更高版本(如果使用 Azure CLI)。
- 最低标准定价层中的 Azure Web PubSub 实例。
- 一个 Azure 密钥保管库资源。
在 Azure 门户中,转到 Azure Web PubSub 资源。
在左侧菜单中选择“网络”。
选择“专用访问”选项卡。
选择“添加共享专用终结点”。
对于“名称”,请输入要用于共享专用终结点的名称。
若要选择密钥保管库资源,请完成以下步骤之一:
- 选择“从资源中选择”,然后从列表中选择资源。
- 选择“指定资源 ID”并输入密钥保管库资源 ID。
对于“请求消息”,输入“请批准”。
选择 添加 。
共享专用终结点资源的预配状态为“成功”。 连接状态为“挂起”,正在等待对目标资源的审批。
可以使用 Azure CLI 进行以下 API 调用,以创建共享专用链接资源。 将值 uri
替换为实际 URI。
az rest --method put --uri https://management.chinacloudapi.cn/subscriptions/{subscription_id}/resourceGroups/contoso/providers/Microsoft.SignalRService/webpubsub/contoso-webpubsub/sharedPrivateLinkResources/kv-pe?api-version=2022-08-01-preview --body @create-pe.json
代表 API 请求正文的 create-pe.json 文件的内容如下所示:
{
"name": "contoso-kv",
"properties": {
"privateLinkResourceId": "/subscriptions/{subscription_id}/resourceGroups/contoso/providers/Microsoft.KeyVault/vaults/contoso-kv",
"groupId": "vault",
"requestMessage": "please approve"
}
}
创建出站专用终结点的过程是一个长期(异步)操作。 与所有异步 Azure 操作一样,PUT 调用会返回 Azure-AsyncOperation
标头值,如以下示例所示:
"Azure-AsyncOperation": "https://management.chinacloudapi.cn/subscriptions/{subscription_id}/resourceGroups/contoso/providers/Microsoft.SignalRService/webpubsub/contoso-webpubsub/operationStatuses/c0786383-8d5f-4554-8d17-f16fcf482fb2?api-version=2022-08-01-preview"
可以定期轮询此 URI 以获取操作的状态。 等待状态更改为“成功”,然后继续下一部分。
若要轮询状态,请手动查询 Azure-AsyncOperationHeader
值:
az rest --method get --uri https://management.chinacloudapi.cn/subscriptions/{subscription_id}/resourceGroups/contoso/providers/Microsoft.SignalRService/webpubsub/contoso-webpubsub/operationStatuses/c0786383-8d5f-4554-8d17-f16fcf482fb2?api-version=2022-08-01-preview
创建专用终结点连接后,必须在 Key Vault 资源中批准来自 Web PubSub 的连接请求。
在 Azure 门户中,转到密钥保管库资源。
在左侧菜单中选择“网络”。
选择“专用终结点连接”。
选择 Web PubSub 创建的专用终结点。
选择“批准”,然后选择“是”进行确认。
将专用终结点连接状态更改为“已批准”可能需要几分钟时间。
列出专用终结点连接:
az network private-endpoint-connection list --name <key-vault-resource-name> --resource-group <key-vault-resource-group-name> --type 'Microsoft.KeyVault/vaults'
检查挂起的专用终结点连接。 记下连接 ID。
[
{
"id": "<id>",
"location": "",
"name": "",
"properties": {
"privateLinkServiceConnectionState": {
"actionRequired": "None",
"description": "Please approve",
"status": "Pending"
}
}
}
]
批准专用终结点连接:
az network private-endpoint-connection approve --id <private-endpoint-connection-ID>
批准状态需要在几分钟后才会传播到 Azure Web PubSub 服务。 你可以使用 Azure 门户或 Azure CLI 来检查状态。 容器处于已批准状态后,Azure Web PubSub 服务和 Azure 密钥保管库之间的共享专用终结点将处于活动状态。
在 Azure 门户中,转到 Azure Web PubSub 资源。
在左侧菜单中选择“网络”。
选择“共享专用链接资源”。
az rest --method get --uri https://management.chinacloudapi.cn/subscriptions/{subscription_id}/resourceGroups/contoso/providers/Microsoft.SignalRService/webpubsub/contoso-webpubsub/sharedPrivateLinkResources/func-pe?api-version=2022-08-01-preview
此命令会返回 JSON。 properties
下面的 status
会指示连接状态。
{
"name": "contoso-kv",
"properties": {
"privateLinkResourceId": "/subscriptions/{subscription_id}/resourceGroups/contoso/providers/Microsoft.KeyVault/vaults/contoso-kv",
"groupId": "vaults",
"requestMessage": "please approve",
"status": "Approved",
"provisioningState": "Succeeded"
}
}
如果 properties.provisioningState
为 Succeeded
且 properties.status
(连接状态)为 Approved
,则表示共享专用链接资源正常运行,Web PubSub 可以通过专用终结点进行通信。
现在可以像往常一样配置自定义域等功能。 不必对密钥保管库使用特殊域。 Web PubSub 会自动处理域名系统 (DNS) 解析。