分享方式:


Microsoft Entra JWT 驗證和 Azure RBAC 授權以發佈或訂閱 MQTT 訊息

您可以使用 Microsoft Entra JWT 對 MQTT 用戶端進行驗證,以連線到事件方格命名空間。 您可以使用 Azure 角色型存取控制 (Azure RBAC) 來讓具有 Microsoft Entra 身分識別的 MQTT 用戶端可以發佈或訂閱對特定主題空間的存取。

重要

  • 只有在使用 MQTT v5 通訊協定版本時才支援此功能
  • 只針對受控識別和服務主體支援 JWT 驗證

必要條件

使用 Microsoft Entra JWT 進行驗證

您可以使用 MQTT v5 CONNECT 封包來提供 Microsoft Entra JWT 權杖以對您的用戶端進行驗證,並且可以使用 MQTT v5 AUTH 封包來重新整理該權杖。

在 CONNECT 封包中,您可以在下列欄位中提供必要的值:

欄位
驗證方法 OAUTH2-JWT
驗證資料 JWT 權杖

在 AUTH 封包中,您可以在下列欄位中提供必要的值:

欄位
驗證方法 OAUTH2-JWT
驗證資料 JWT 權杖
驗證原因碼 25

值為 25 的驗證原因碼表示重新驗證。

注意

  • Audience: “aud” claim 必須設定為 "https://eventgrid.azure.net/"。

授與存取權限的授權

使用 Microsoft Entra ID 型 JWT 驗證的用戶端必須獲得授權,才能與事件方格命名空間通訊。 您可以指派下列兩個內建角色,以向具有 Microsoft Entra 身分識別的用戶端提供發佈或訂閱權限。

  • 使用 EventGrid TopicSpaces 發佈者角色來提供 MQTT 訊息發佈者存取權
  • 使用 EventGrid TopicSpaces 訂閱者角色來提供 MQTT 訊息訂閱者存取權

您可以使用這些角色來提供訂閱、資源群組、事件方格命名空間或事件方格主題空間範圍的權限。

將發佈者角色指派給 topicspace 範圍中的 Microsoft Entra 身分識別

  1. 在 Azure 入口網站中,瀏覽到您的事件方格命名空間
  2. 瀏覽至您要將存取權授權給它的 topicspace。
  3. 移至該 topicspace 的存取控制 (IAM) 頁面
  4. 選取 [角色指派] 索引標籤,以檢視此範圍中的角色指派。
  5. 選取 [+ 新增] 和 [新增角色指派]。
  6. 在 [角色] 索引標籤上,選取 [事件方格 TopicSpaces 發佈者] 角色。
  7. 在 [成員] 索引標籤上,針對 [將存取權指派給] 選取 [使用者、群組或服務主體] 選項,以將選取的角色指派給一個或多個服務主體 (應用程式)。
  8. 選取 + 選取成員
  9. 尋找並選取服務主體。
  10. 選取下一個
  11. 在 [檢閱 + 指派] 索引標籤上選取 [檢閱 + 指派]

注意

您可以遵循類似的步驟,在 topicspace 範圍內指派內建的 EventGrid TopicSpaces 訂閱者角色。

下一步