禁用本地(访问密钥)身份验证

Azure Web PubSub 资源可以通过两种方式对请求进行身份验证:

  • Microsoft Entra ID(推荐)
  • 访问密钥

Microsoft Entra ID 提供了优于访问密钥的卓越安全性和易用性。 如果使用 Microsoft Entra ID,则无需将令牌存储在代码中,从而避免潜在的安全漏洞。 建议尽可能为 Web PubSub 资源使用 Microsoft Entra ID。

重要

禁用本地身份验证可能导致以下结果:

  • 当前访问密钥集会被永久删除。
  • 使用当前访问密钥集签名的令牌将变得不可用。
  • 签名不会附加在上游请求头中。 了解如何验证访问令牌

关闭本地身份验证

你可以使用以下方法禁用本地身份验证:

  • Azure 门户
  • Azure 资源管理器模板
  • Azure Policy

Azure 门户

若要使用 Azure 门户禁用本地身份验证,请执行以下操作:

  1. Azure 门户中转到你的 Web PubSub 资源。

  2. 在左侧菜单中的“设置”下,请选择“密钥”。

  3. 对于本地身份验证,请选择“禁用”

  4. 选择“保存”。

显示如何禁用本地身份验证的屏幕截图。

Azure 资源管理器模板

你可以通过将 disableLocalAuth 属性设置为 true 来禁用本地身份验证,如以下 Azure 资源管理器模板中所示:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "resource_name": {
      "defaultValue": "test-for-disable-aad",
      "type": "String"
    }
  },
  "variables": {},
  "resources": [
    {
      "type": "Microsoft.SignalRService/WebPubSub",
      "apiVersion": "2022-08-01-preview",
      "name": "[parameters('resource_name')]",
      "location": "chinaeast",
      "sku": {
        "name": "Premium_P1",
        "tier": "Premium",
        "size": "P1",
        "capacity": 1
      },
      "properties": {
        "tls": {
          "clientCertEnabled": false
        },
        "networkACLs": {
          "defaultAction": "Deny",
          "publicNetwork": {
            "allow": [
              "ServerConnection",
              "ClientConnection",
              "RESTAPI",
              "Trace"
            ]
          },
          "privateEndpoints": []
        },
        "publicNetworkAccess": "Enabled",
        "disableLocalAuth": true,
        "disableAadAuth": false
      }
    }
  ]
}

Azure Policy

你可以将 Azure Policy 中的策略“Azure Web PubSub 服务应禁用本地身份验证方法”分配到 Azure 订阅或资源组。 分配此策略会为相应订阅或资源组中的所有 Web PubSub 资源禁用本地身份验证。

显示如何禁用本地身份验证策略的屏幕截图。