使用 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”部分,对于“本地身份验证”选择“启用”。

    Image showing the Overview page of a Service Bus namespace with Local Authentication set to Enabled.

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

    Disable location.

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

可以通过将 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 policy to disable location authentication.

后续步骤

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