MQTT クライアント認証は、Azure Event Gridの MQTT ブローカー機能がクライアントの ID を検証してから、メッセージの接続と交換を許可するプロセスです。 MQTT ブローカーは、接続ハンドシェイク中にクライアントを認証します。 認証は、発行操作とサブスクライブ操作を制御する承認チェックの前提条件です。
MQTT ブローカーは複数の認証モードをサポートしているため、メソッドをクライアントの機能、デプロイ場所、ID プロバイダーと一致させることができます。
証明書ベースの認証
証明機関 (CA) で署名された証明書または自己署名証明書を使用してクライアントを認証できます。 MQTT ブローカーは、相互 TLS (mTLS) 接続ハンドシェイクの一部としてクライアント証明書を検証します。
詳細については、「証明書を 使用した MQTT クライアント認証」を参照してください。
Microsoft Entra ID 認証
Microsoft Entra JSON Web トークン (JWT) を使用して、Microsoft Entra ID を持つ MQTT クライアントを認証できます。 Azure ロールベースのアクセス制御 (Azure RBAC) は、クライアントが特定のトピック スペースに対して発行またはサブスクライブできるかどうかを決定します。 このメソッドは、AzureまたはMicrosoft Entra トークンを取得できる環境で実行されるクライアントに適しています。
詳しくは、MQTT メッセージを発行またはサブスクライブするための Microsoft Entra JWT 認証と Azure RBAC 認可に関する記事をご覧ください。
OAuth 2.0 JWT 認証
サードパーティの OpenID Connect (OIDC) ID プロバイダーによって発行された JWT を使用して MQTT クライアントを認証できます。 このメソッドは、Azureでプロビジョニングされていないが、既に外部 ID プロバイダーに ID を持っている MQTT クライアントに使用します。
詳細については、「 OAuth 2.0 JWT を使用してクライアントを認証する」を参照してください。
カスタム Webhook 認証
Webhook 認証を使用すると、Webhook や制御するAzure関数などの外部 HTTPS エンドポイントで MQTT 接続を動的に認証できます。 webhook は、Microsoft Entra IDによって発行された JWT を検証し、認証の決定を Event Grid 名前空間に返します。 MQTT ブローカーをカスタム認証システム、サードパーティ ID プロバイダー、またはエンタープライズ セキュリティ ポリシーと統合する必要がある場合は、このモードを使用します。
認証フローは次のように動作します。
- MQTT クライアントが Event Grid 名前空間への接続を試みます。
- Event Grid は、構成された Webhook に接続の詳細を送信します。
- Webhook は認証要求を評価し、接続を許可または拒否する応答を返します。
- Webhook は、応答にメタデータを含めることができます。 Event Grid では、このメタデータを使用して後続の MQTT パケットを承認します。これにより、トピック アクセスとメッセージの発行をきめ細かく制御できます。
詳細については、 カスタム Webhook 認証を使用した MQTT ブローカーによる認証を参照してください。