Événements
31 mars, 23 h - 2 avr., 23 h
Le plus grand événement d’apprentissage Fabric, Power BI et SQL. 31 mars au 2 avril. Utilisez le code FABINSIDER pour économiser 400 $.
Inscrivez-vous aujourd’huiCe navigateur n’est plus pris en charge.
Effectuez une mise à niveau vers Microsoft Edge pour tirer parti des dernières fonctionnalités, des mises à jour de sécurité et du support technique.
Les identités managées pour les ressources Azure fournissent aux services Azure une identité automatiquement gérée dans Microsoft Entra ID. Vous pouvez utiliser cette identité pour vous authentifier sur n’importe quel service, comme Azure Service Bus, prenant en charge l’authentification Microsoft Entra, sans avoir d’informations d’identification dans votre code. Si vous ne maîtrisez pas les identités managées, consultez Identités managées pour les ressources Azure avant de lire cet article.
Voici la procédure générale à suivre pour utiliser une identité managée afin d’accéder à une entité Service Bus :
Activez une identité managée pour votre application cliente ou votre environnement. Par exemple, activez une identité managée pour votre application Azure App Service ou Azure Functions, ou une machine virtuelle sur laquelle votre application s’exécute. Voici les articles qui vous permettent d’effectuer cette étape :
Attribuez un rôle Propriétaire de données Azure Service Bus, Expéditeur de données Azure Service Bus ou Destinataire de données Azure Service Bus à l’identité managée de l’étendue appropriée (abonnement Azure, groupe de ressources, espace de noms Service Bus ou file d’attente ou rubrique Service Bus). Pour obtenir des instructions sur l’attribution d’un rôle à une identité managée, consultez Attribuer des rôles Azure en tirant parti du Portail Azure.
Dans votre application, utilisez l’identité managée et le point de terminaison dans l’espace de noms Service Bus pour vous connecter à l’espace de noms.
Par exemple, dans .NET, vous utilisez le constructeur ServiceBusClient qui prend des paramètres TokenCredential
et fullyQualifiedNamespace
(une chaîne, par exemple : cotosons.servicebus.windows.net
) pour vous connecter à Service Bus en utilisant l’identité managée. Vous transmettez DefaultAzureCredential qui dérive de TokenCredential
et utilise l’identité managée. Dans DefaultAzureCredentialOptions
, définissez ManagedIdentityClientId
sur l’ID de l’identité managée du client.
string fullyQualifiedNamespace = "<your namespace>.servicebus.windows.net>";
string userAssignedClientId = "<your managed identity client ID>";
var credential = new DefaultAzureCredential(
new DefaultAzureCredentialOptions
{
ManagedIdentityClientId = userAssignedClientId
});
var sbusClient = new ServiceBusClient(fullyQualifiedNamespace, credential);
Important
Vous pouvez désactiver l’authentification locale ou l’authentification de clé SAS pour un espace de noms Service Bus, et autoriser uniquement l’authentification Microsoft Entra. Pour obtenir des instructions étape par étape, consultez Désactiver l’authentification locale.
Microsoft Entra autorise l’accès à des ressources sécurisées sur la base du contrôle d’accès en fonction du rôle Azure (RBAC Azure). Azure Service Bus définit un ensemble de rôles intégrés Azure qui englobent les ensembles courants d’autorisations utilisés pour accéder aux entités de Service Bus. Vous pouvez également définir des rôles personnalisés pour l’accès aux données.
Azure fournit les rôles Azure intégrés suivants pour autoriser l’accès à un espace de noms Service Bus :
Pour attribuer un rôle à une identité managée dans le Portail Azure, utilisez la page Contrôle d’accès (IAM). Accédez à cette page en sélectionnant Contrôle d’accès (IAM) dans la page Espace de noms Service Bus, la page File d’attente Service Bus ou la page Rubrique Service Bus. Pour obtenir des instructions pas à pas sur l’attribution d’un rôle, consultez Attribuer des rôles Azure en tirant parti du Portail Azure.
Avant d’attribuer un rôle Azure à une identité managée, déterminez l’étendue d’accès que doit avoir l’identité managée. Selon les bonnes pratiques, il est toujours préférable d’accorder la plus petite étendue possible.
La liste suivante décrit les niveaux auxquels vous pouvez étendre l’accès aux ressources Service Bus, en commençant par la plus petite étendue :
File d’attente, rubrique ou abonnement : l’attribution de rôle s’applique à l’entité Service Bus spécifique.
Espace de noms Service Bus : l’attribution de rôle couvre toute la topologie de Service Bus sous l’espace de noms.
Groupe de ressources : l’attribution de rôle s’applique à toutes les ressources Service Bus sous le groupe de ressources.
Abonnement: l’attribution de rôle s’applique à toutes les ressources Service Bus dans tous les groupes de ressources de l’abonnement.
Notes
Gardez à l’esprit que la propagation des attributions de rôles Azure peut prendre cinq minutes.
Actuellement, le Portail Azure ne prend pas en charge l’affectation d’utilisateurs, de groupes ou d’identités managées aux rôles Azure Service Bus au niveau de l’abonnement de la rubrique. Voici un exemple d’utilisation de la commande Azure CLI : az-role-assignment-create pour attribuer une identité à un rôle Azure Service Bus :
az role assignment create \
--role $service_bus_role \
--assignee $assignee_id \
--scope /subscriptions/$subscription_id/resourceGroups/$resource_group/providers/Microsoft.ServiceBus/namespaces/$service_bus_namespace/topics/$service_bus_topic/subscriptions/$service_bus_subscription
Pour plus d’informations sur la définition des rôles intégrés, consultez Comprendre les définitions de rôles. Pour plus d’informations sur la création de rôles personnalisés Azure, consultez Rôles personnalisés Azure.
Notes
Si le service source ou l’application ne redémarre pas une fois que l’accès à une entité Service Bus est désactivé en supprimant l’identité managée de la source du rôle RBAC Service Bus, l’application source peut continuer à envoyer/recevoir des messages vers/depuis l’entité Service Bus jusqu’à ce que le jeton expire (la validité du jeton par défaut est de 24 heures). Ce comportement est normal.
Par conséquent, après avoir supprimé l’identité managée de la source du rôle RBAC, redémarrez l’application ou le service source pour expirer immédiatement le jeton et empêchez-le d’envoyer des messages à l’entité Service Bus ou de les recevoir.
Dans .NET, l’objet ServiceBusClient est initialisé en utilisant un constructeur qui prend un espace de noms complet et un TokenCredential
.
DefaultAzureCredential
dérive de TokenCredential
qui utilise automatiquement l’identité managée configurée pour l’application. Le flux du contexte de l’identité managée vers Service Bus et l’établissement d’une liaison d’autorisation sont gérés automatiquement par les informations d’identification du jeton. C’est un modèle plus simple que l’utilisation de SAP.
var client = new ServiceBusClient('cotosons.servicebus.windows.net', new DefaultAzureCredential());
Vous envoyez et recevez des messages comme d’habitude en utilisant ServiceBusSender et ServiceBusReceiver ou ServiceBusProcessor.
Pour obtenir des instructions détaillées sur l’envoi et la réception de messages en tirant parti d’une identité managée, consultez les démarrages rapides suivants. Ces démarrages rapides disposent du code permettant d’utiliser un principal de service pour envoyer et recevoir des messages, mais le code est le même pour l’utilisation d’une identité managée.
Notes
L’identité managée ne fonctionne qu’au sein de l’environnement Azure, d’App Services, des machines virtuelles Azure et des groupes identiques. Pour les applications .NET, la bibliothèque Microsoft.Azure.Services.AppAuthentication, utilisée par le package NuGet Service Bus, représente une abstraction sur ce protocole et prend en charge une expérience de développement local. Elle vous permet également de tester votre code localement sur votre ordinateur de développement, avec votre compte d’utilisateur issu de Visual Studio, d’Azure CLI 2.0 ou de l’authentification intégrée Azure Active Directory. Pour plus d’informations sur les options de développement local avec cette bibliothèque, voir Authentification de service à service à Azure Key Vault avec .NET.
Consultez cet exemple d’application web .NET sur GitHub qui utilise une identité managée pour se connecter à Service Bus afin d’envoyer et de recevoir des messages. Ajoutez l’identité du service d’application au rôle Propriétaire de données Azure Service Bus.
Événements
31 mars, 23 h - 2 avr., 23 h
Le plus grand événement d’apprentissage Fabric, Power BI et SQL. 31 mars au 2 avril. Utilisez le code FABINSIDER pour économiser 400 $.
Inscrivez-vous aujourd’huiEntrainement
Module
Comment implémenter le contrôle d’accès en fonction du rôle et l’authentification par identité managée dans Azure OpenAI avec .NET.
Certification
Microsoft Certified: Identity and Access Administrator Associate - Certifications
Expliquez les fonctionnalités de Microsoft Entra ID pour moderniser des solutions d’identité, implémenter des solutions hybrides et une gouvernance des identités.
Documentation
Authentifier une application pour accéder aux entités Azure Service Bus - Azure Service Bus
Cet article fournit des informations sur l’authentification d’une application avec Microsoft Entra ID pour accéder aux entités Azure Service Bus (files d’attente, rubriques, etc.).
Authentification et autorisation Azure Service Bus - Azure Service Bus
Découvrez comment authentifier et autoriser en toute sécurité l’accès à Azure Service Bus, notamment les meilleures pratiques pour la gestion des clés d’accès et l’utilisation de Microsoft Entra ID.
Désactiver l’authentification locale avec Azure Service Bus - Azure Service Bus
Cet article explique comment désactiver l’authentification locale ou l’authentification SAP (par signature d’accès partagé) pour un espace de noms Service Bus.