Consultez Authentification JWT Microsoft Entra et Autorisation RBAC Azure pour publier ou s’abonner aux messages MQTT
Vous pouvez authentifier les clients MQTT avec JWT Microsoft Entra pour la connexion à l’espace de noms Event Grid. Vous pouvez utiliser le contrôle d’accès en fonction du rôle Azure (RBAC Azure) pour permettre aux clients MQTT disposant d’une identité Microsoft Entra de publier ou de s’abonner à des espaces de rubrique spécifiques.
Important
- Cette fonctionnalité est prise en charge uniquement avec la version du protocole MQTT v5
- L’authentification JWT est prise en charge uniquement pour les identités managées et les principaux de service
Prérequis
- Vous avez besoin d’un espace de noms Event Grid avec le MQTT activé. En savoir plus sur la création de l’espace de noms Event Grid
Authentification avec JWT Microsoft Entra
Vous pouvez utiliser le paquet MQTT v5 CONNECT pour fournir le jeton JWT Microsoft Entra afin d’authentifier votre client, et vous pouvez utiliser le paquet MQTT v5 AUTH pour actualiser le jeton.
Dans le paquet CONNECT, vous pouvez fournir les valeurs requises dans les champs suivants :
Champ | Value |
---|---|
Méthode d'authentification | OAUTH2-JWT |
Données d’authentification | Jeton JWT |
Dans le paquet AUTH, vous pouvez fournir les valeurs requises dans les champs suivants :
Champ | Value |
---|---|
Méthode d'authentification | OAUTH2-JWT |
Données d’authentification | Jeton JWT |
Code de motif d’authentification | 25 |
Le code de motif d’authentification avec la valeur 25 signifie une réauthentification.
Remarque
- Audience : la revendication « aud » doit être définie sur « https://eventgrid.azure.net/" ;.
Autorisation d’accorder des autorisations d’accès
Un client utilisant l’authentification JWT basée sur Microsoft Entra ID doit être autorisé à communiquer avec l’espace de noms Event Grid. Vous pouvez attribuer les deux rôles intégrés suivants pour fournir des autorisations de publication ou d’abonnement aux clients disposant d’identités Microsoft Entra.
- Utiliser le rôle Éditeur EventGrid TopicSpaces pour fournir l’accès aux éditeurs de messages MQTT
- Utiliser le rôle Abonné EventGrid TopicSpaces pour fournir l’accès aux abonnés aux messages MQTT
Vous pouvez utiliser ces rôles pour fournir des autorisations dont l’étendue peut être un abonnement, un groupe de ressources, un espace de noms Event Grid ou un espace de rubrique Event Grid.
Attribution du rôle d’éditeur à votre identité Microsoft Entra sur l’étendue d’un espace de rubrique
- Dans le Portail Azure, accéder à votre espace de noms Event Grid
- Accédez à l’espace de rubriques auquel vous souhaitez autoriser l’accès.
- Accéder à la page Contrôle d’accès (IAM) dans l’espace de rubriques
- Sélectionnez l’onglet Attributions de rôles afin d’afficher les attributions de rôles pour cette étendue.
- Sélectionnez + Ajouter, puis Ajouter une attribution de rôle.
- Sous l’onglet Rôle, sélectionnez le rôle « Event Grid TopicSpaces Publisher ».
- Sous l’onglet Membres, pour Attribuer l’accès à, sélectionnez l’option Utilisateur, groupe ou principal de service pour attribuer le rôle sélectionné à un ou plusieurs principaux de service (applications).
- Sélectionnez + Sélectionner des membres.
- Recherchez et sélectionnez les principaux de service.
- Sélectionnez Suivant.
- Dans l’onglet Vérifier + attribuer, sélectionnez Vérifier + attribuer.
Remarque
Vous pouvez suivre des étapes similaires pour affecter le rôle Abonné EventGrid TopicSpaces intégré sur l’étendue d’un espace de rubrique.
Étapes suivantes
- Consultez Publier et s’abonner à un message MQTT à l’aide d’Event Grid
- Pour en savoir plus sur le fonctionnement des identités managées, consultez Fonctionnement des identités managées pour les ressources Azure avec des machines virtuelles Azure - Microsoft Entra
- Pour en savoir plus sur l’obtention de jetons à partir de Microsoft Entra ID, reportez-vous à Obtenir des jetons Microsoft Entra
- Pour en savoir plus sur la bibliothèque cliente Azure Identity, vous pouvez vous reporter à l’utilisation de la bibliothèque cliente Azure Identity
- Pour en savoir plus sur l’implémentation d’une interface pour les informations d’identification pouvant fournir un jeton, vous pouvez vous référer à l’interface TokenCredential
- Pour en savoir plus sur l’authentification à l’aide d’Azure Identity, vous pouvez consulter des exemples
- Si vous préférez utiliser des rôles personnalisés, vous pouvez passer en revue le processus pour créer un rôle personnalisé