禁止将本地(访问密钥)身份验证与 Azure SignalR 服务配合使用

可通过以下两种方式向 Azure SignalR 服务资源进行身份验证:Microsoft Entra ID 和访问密钥。 与访问密钥方法相比,Microsoft Entra ID 提供卓越的安全性和易用性。

使用 Microsoft Entra ID,你无需在代码中存储令牌,从而降低了潜在安全漏洞的风险。 强烈建议尽可能对 Azure SignalR 服务资源使用 Microsoft Entra ID。

重要

禁用本地身份验证可能会产生以下后果:

  • 当前访问密钥集会被永久删除。
  • 使用当前访问密钥集签名的令牌将变得不可用。

使用 Azure 门户

本部分介绍如何使用 Azure 门户禁用本地身份验证。

  1. Azure 门户中,转到你的 Azure SignalR 服务资源。

  2. 在菜单边栏的“设置”部分,选择“密钥”

  3. 对于“访问密钥”,请选择“禁用”。

  4. 选择“保存”按钮。

Screenshot of selections for disabling local authentication in the Azure portal.

使用 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/SignalR",
      "apiVersion": "2022-08-01-preview",
      "name": "[parameters('resource_name')]",
      "location": "chinanorth3",
      "sku": {
        "name": "Premium_P1",
        "tier": "Premium",
        "size": "P1",
        "capacity": 1
      },
      "kind": "SignalR",
      "properties": {
        "tls": {
          "clientCertEnabled": false
        },
        "features": [
          {
            "flag": "ServiceMode",
            "value": "Default",
            "properties": {}
          },
          {
            "flag": "EnableConnectivityLogs",
            "value": "True",
            "properties": {}
          }
        ],
        "cors": {
          "allowedOrigins": ["*"]
        },
        "serverless": {
          "connectionTimeoutInSeconds": 30
        },
        "upstream": {},
        "networkACLs": {
          "defaultAction": "Deny",
          "publicNetwork": {
            "allow": [
              "ServerConnection",
              "ClientConnection",
              "RESTAPI",
              "Trace"
            ]
          },
          "privateEndpoints": []
        },
        "publicNetworkAccess": "Enabled",
        "disableLocalAuth": true,
        "disableAadAuth": false
      }
    }
  ]
}

使用 Azure 策略

要强制禁用 Azure 订阅或资源组中所有 Azure SignalR 服务资源的本地身份验证,可以分配以下 Azure 策略:Azure SignalR 服务应禁用本地身份验证方法

Screenshot that shows disabling local authentication by using a policy.

后续步骤

请参阅以下文档,了解身份验证方法: