使用 Azure 服务总线禁用本地或共享访问密钥身份验证

可通过两种方式向 Azure 服务总线资源进行身份验证:

  • Microsoft Entra ID
  • 共享访问签名 (SAS)

与共享访问签名 (SAS) 相比,Microsoft Entra ID 提供了更高的安全性和易用性。 使用 Microsoft Entra ID,不需要在代码中存储令牌,也不需要冒潜在的安全漏洞风险。 我们建议你尽可能通过 Azure 服务总线应用程序使用 Microsoft Entra ID。

本文说明了如何禁用 SAS 密钥身份验证(或本地身份验证),仅使用 Microsoft Entra ID 进行身份验证。

使用门户禁用本地身份验证

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

  1. 在 Azure 门户中,导航到“服务总线命名空间”。

  2. 在“概述”页的“Essentials”部分,对于“本地身份验证”选择“启用”。

    屏幕截图显示服务总线命名空间的“概述”页,其中的“本地身份验证”设置为“启用”。

  3. 在“本地身份验证”页上,选择“禁用”,然后选择“确定”。

    屏幕截图显示在“本地身份验证”页上选择了“禁用”选项。

使用资源管理器模板禁用本地身份验证

可以通过将 disableLocalAuth 属性设置为 true 来禁用服务总线命名空间的本地身份验证,如以下 Azure 资源管理器模板中所示。

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "namespace_name": {
            "defaultValue": "spcontososbusns",
            "type": "String"
        }
    },
    "variables": {},
    "resources": [
        {
            "type": "Microsoft.ServiceBus/namespaces",
            "apiVersion": "2021-06-01-preview",
            "name": "[parameters('namespace_name')]",
            "location": "China East",
            "sku": {
                "name": "Standard",
                "tier": "Standard"
            },
            "properties": {
                "disableLocalAuth": true,
                "zoneRedundant": false
            }
        }
    ]
}

Parameters.json

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "namespace_name": {
            "value": null
        }
    }
}

Azure Policy

可以将禁用本地身份验证 Azure 策略分配给 Azure 订阅或资源组,以强制禁用订阅或资源组中所有服务总线命名空间的本地身份验证。

屏幕截图显示用于禁用位置身份验证的 Azure 策略。

请参阅以下内容,了解 Microsoft Entra ID 和 SAS 身份验证。