MQTT メッセージを発行またはサブスクライブするための Microsoft Entra JWT 認証と Azure RBAC 認可

Microsoft Entra JWT を使用して MQTT クライアントを認証して、Event Grid 名前空間に接続できます。 Azure ロールベースのアクセス制御 (Azure RBAC) を使用すると、特定のトピック空間に対する発行またはサブスクライブのアクセスを、Microsoft Entra ID を使って MQTT クライアントに対して、許可できます。

重要

  • この機能は、MQTT v5 プロトコル バージョンを使用している場合にのみサポートされます
  • JWT 認証は、マネージド ID とサービス プリンシパルでのみサポートされます

前提条件

Microsoft Entra JWT を使用した認証

MQTT v5 CONNECT パケットを使用して、クライアントを認証するための Microsoft Entra JWT トークンを提供し、MQTT v5 AUTH パケットを使用してトークンを更新できます。

CONNECT パケットでは、次のフィールドに必須の値を指定できます。

フィールド Value
認証方法 OAUTH2-JWT
認証データ JWT トークン

CONNECT パケットでは、次のフィールドに必須の値を指定できます。

フィールド Value
認証方法 OAUTH2-JWT
認証データ JWT トークン
認証理由コード 25

値 25 を持つ理由コードを認証すると、再認証が示されます。

Note

  • 対象ユーザー: "aud" 要求は "https://eventgrid.azure.net/"" に設定する必要があります。

アクセス許可を付与するための承認

Microsoft Entra ID ベースの JWT 認証を使用するクライアントには、Event Grid 名前空間と通信する権限が必要です。 次の 2 つの組み込みロールを割り当てて、Microsoft Entra ID を持つクライアントに発行またはサブスクライブのアクセス許可を提供できます。

  • EventGrid TopicSpaces パブリッシャー ロールを使用して MQTT メッセージ パブリッシャーアクセスを提供する
  • EventGrid TopicSpaces サブスクライバー ロールを使用して MQTT メッセージ サブスクライバー アクセスを提供する

これらのロールを使用して、サブスクリプション、リソース グループ、Event Grid 名前空間、または Event Grid トピック空間スコープでアクセス許可を提供できます。

トピック空間スコープで Microsoft Entra ID へのパブリッシャー ロールの割り当て

  1. Azure portal で、Event Hubs 名前空間に移動する
  2. アクセスを承認するトピック空間に移動します。
  3. トピック空間の [アクセス制御 (IAM)] ページに移動します
  4. [ロールの割り当て] タブを選択して、このスコープのロールの割り当てを表示します。
  5. [+ 追加] を選択し、[ロールの割り当ての追加] を選択します。
  6. [ロール] タブで、[Event Grid TopicSpaces Publisher] ロールを選択します。
  7. [メンバー] タブの [アクセスの割り当て] で、ユーザー、グループ、またはサービス プリンシパル オプションを選択して、選択したロールを 1 つ以上のサービス プリンシパル (アプリケーション) に割り当てます。
  8. [+ メンバーの選択] を選択します。
  9. サービス プリンシパルを検索して選択します。
  10. [次へ] を選択します
  11. [確認と割り当て] タブで、[確認と割り当て] を選択します。

Note

同様の手順に従って、 トピック空間スコープに組み込みの EventGrid TopicSpaces サブスクライバー ロールを割り当てることができます。

次のステップ