共用方式為


設定事件中樞命名空間的最低 TLS 版本

Azure 事件中樞命名空間可讓用戶端使用 TLS 1.0 和更新版本來傳送及接收資料。 若要強制執行更嚴格的安全性措施,您可以設定您的事件中樞命名空間,要求用戶端以較新版本的 TLS 傳送和接收資料。 如果事件中樞命名空間需要最低版本的 TLS,則使用較舊版本提出的任何要求都會失敗。 如需關於此功能的概念資訊,請參閱對事件中樞命名空間的要求強制執行最低必要版本的傳輸層安全性 (TLS)

您可以使用 Azure 入口網站或 Azure Resource Manager (ARM) 範本來設定最低 TLS 版本。

在 Azure 入口網站中指定最低 TLS 版本

您可以在 Azure 入口網站的 [進階] 索引標籤上建立事件中樞命名空間時,指定最低 TLS 版本。

Screenshot showing the page to set the minimum TLS version when creating a namespace.

您也可以在 [組態] 頁面上指定現有命名空間的最小 TLS 版本。

Screenshot showing the page to set the minimum TLS version for an existing namespace.

建立範本以設定最低 TLS 版本

若要使用範本設定事件中樞命名空間的最低 TLS 版本,請建立 MinimumTlsVersion 屬性集為 1.0、1.1 或 1.2 的範本。 當您使用 Azure Resource Manager 範本建立事件中樞命名空間時,除非明確設定為另一個版本,否則 MinimumTlsVersion 屬性依預設會設定為 1.2。

注意

使用 2022-01-01-preview 之前 API 版本所建立的命名空間,將會有 1.0 作為 MinimumTlsVersion 的值。 此行為是先前的預設值,但仍有回溯相容性。

下列步驟描述如何在 Azure 入口網站中建立範本。

  1. 在 Azure 入口網站中,選擇 [建立資源]

  2. 在 [搜尋 Marketplace] 中,輸入自訂部署,然後按下 ENTER 鍵

  3. 選擇 [自訂部署 (使用自訂範本部署) (預覽版)],選擇 [建立],然後選擇 [在編輯器中建置您自己的範本]

  4. 在範本編輯器中,貼上下列 JSON 以建立新的命名空間,並將最低 TLS 版本設定為 TLS 1.2。 請記得以您自己的值取代角括弧中的預留位置。

    {
        "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
        "contentVersion": "1.0.0.0",
        "parameters": {},
        "variables": {
            "eventHubNamespaceName": "[concat(uniqueString(subscription().subscriptionId), 'tls')]"
        },
        "resources": [
            {
            "name": "[variables('eventHubNamespaceName')]",
            "type": "Microsoft.EventHub/namespaces",
            "apiVersion": "2022-01-01-preview",
            "location": "westeurope",
            "properties": {
                "minimumTlsVersion": "1.2"
            },
            "dependsOn": [],
            "tags": {}
            }
        ]
    }
    
  5. 儲存範本。

  6. 指定資源群組參數,然後選擇 [檢閱 + 建立] 按鈕來部署範本,並建立已設定 MinimumTlsVersion 屬性的命名空間。

注意

在您更新事件中樞命名空間的最低 TLS 版本之後,最多可能需要 30 秒的時間,變更才會完全傳播。

設定最低 TLS 版本需要 api-version 2022-01-01-preview 或更新版本的 Azure 事件中樞資源提供者。

檢查命名空間所需的最低 TLS 版本

若要檢查事件中樞命名空間所需的最低 TLS 版本,您可以查詢 Azure Resource Manager API。 您將需要持有人權杖才能查詢 API,您可以執行下列命令,使用 ARMClient 應用程式來擷取。

.\ARMClient.exe login
.\ARMClient.exe token <your-subscription-id>

擁有持有人權杖之後,您可以搭配使用下列指令碼和 REST Client 等項目來查詢 API。

@token = Bearer <Token received from ARMClient>
@subscription = <your-subscription-id>
@resourceGroup = <your-resource-group-name>
@namespaceName = <your-namespace-name>

###
GET https://management.azure.com/subscriptions/{{subscription}}/resourceGroups/{{resourceGroup}}/providers/Microsoft.EventHub/namespaces/{{namespaceName}}?api-version=2022-01-01-preview
content-type: application/json
Authorization: {{token}}

回應看起來應如下所示,其中 minimumTlsVersion 在屬性之下設定。

{
  "sku": {
    "name": "Premium",
    "tier": "Premium",
    "capacity": 1
  },
  "id": "/subscriptions/<your-subscription-id>/resourceGroups/<your-resource-group-name>/providers/Microsoft.EventHub/namespaces/<your-namespace-name>",
  "name": "<your-namespace-name>",
  "type": "Microsoft.EventHub/Namespaces",
  "location": "West Europe",
  "properties": {
    "minimumTlsVersion": "1.2",
    "publicNetworkAccess": "Enabled",
    "disableLocalAuth": false,
    "zoneRedundant": true,
    "isAutoInflateEnabled": false,
    "maximumThroughputUnits": 0,
    "kafkaEnabled": true,
    "provisioningState": "Succeeded",
    "status": "Active"
  }
}

從用戶端測試最低 TLS 版本

若要測試事件中樞名空間的必要最低 TLS 版本是否禁止使用舊版進行呼叫,您可以將用戶端設定為使用較舊版本的 TLS。 如需設定用戶端使用特定 TLS 版本的詳細資訊,請參閱設定用戶端應用程式的傳輸層安全性 (TLS)

當用戶端使用不符合為命名空間所設定最低 TLS 版本的 TLS 版本來存取事件中樞命名空間時,Azure 事件中樞會傳回錯誤碼 401 錯誤 (未經授權) 以及訊息,指出所使用的 TLS 版本不允許對此事件中樞命名空間提出要求。

注意

由於串連程式庫中的限制,透過 Kafka 通訊協定連線時,將不會呈現來自無效 TLS 版本的錯誤。 而是會顯示一般例外狀況。

注意

當您為事件中樞命名空間設定最低 TLS 版本時,會在應用程式層強制執行最低版本。 當您直接針對事件中樞命名空間端點執行時,嘗試在通訊協定層上判斷 TLS 支援的工具,可能還會傳回除了必要最低版本以外的 TLS 版本。

下一步

如需詳細資訊,請參閱下列文章。