Fonctionnement de l’identité managée avec Azure Communication Services

Azure Communication Services est une plateforme de communication entièrement managée qui permet aux développeurs de créer des fonctionnalités de communication en temps réel dans leurs applications. En utilisant Managed Identity avec Azure Communication Services, vous pouvez simplifier le processus d’authentification pour votre application, tout en augmentant sa sécurité. Ce document explique comment utiliser Managed Identity avec Azure Communication Services.

Utiliser l’identité managée avec Azure Communication Services

Azure Communication Services prend en charge l’utilisation de l’identité managée pour s’authentifier auprès du service. En utilisant l’identité managée, vous pouvez éliminer la nécessité de gérer vos propres jetons d’accès et informations d’identification.

Votre ressource Azure Communication Services peut être affectée à deux types d’identité :

  1. Une Identité affectée par le système qui est liée à votre ressource et supprimée lorsque votre ressource est supprimée. Une ressource ne peut avoir qu’une seule identité affectée par le système.
  2. Une Identité affectée par l’utilisateur qui est une ressource Azure qui peut être affectée à votre ressource Azure Communication Services. Cette identité n’est pas supprimée lorsque votre ressource est supprimée. Le service peut avoir plusieurs identités affectées par l’utilisateur.

Pour utiliser Managed Identity avec Azure Communication Services, procédez comme suit :

  1. Accordez à votre identité managée l’accès à la ressource Communication Services. Cette affectation peut être effectuée via le portail Azure, Azure CLI et les kits SDK Azure Communication Management.
  2. Utilisez l’identité managée pour vous authentifier auprès d'Azure Communication Services. L’authentification peut être effectuée via les SDK Azure ou les API REST qui prennent en charge Managed Identity.

Ajouter une identité affectée par le système

  1. Dans le volet de navigation gauche de la page de votre application, faites défiler la page vers le bas jusqu’au groupe Paramètres.

  2. Sélectionnez Identité.

  3. Dans l’onglet Attribuée par le système, définissez État sur Activé. Sélectionnez Enregistrer. Capture d’écran montrant comment activer l’identité managée affectée par le système.

Ajouter une identité attribuée par l’utilisateur

L’attribution d’une identité affectée par l’utilisateur à votre ressource Azure Communication Services nécessite de créer d’abord l’identité, puis d’ajouter son identificateur de ressource à votre ressource Communication Service.

Tout d’abord, vous devez créer une identité managée affectée par l’utilisateur en tant que ressource autonome.

  1. Créez une ressource d’identité managée attribuée par l’utilisateur en suivant ces instructions.

  2. Dans le volet de navigation gauche de la page de votre application, faites défiler la page vers le bas jusqu’au groupe Paramètres.

  3. Sélectionnez Identité.

  4. Sélectionnez Attribuée par l’utilisateur>Ajouter.

  5. Recherchez l’identité précédemment créée, sélectionnez-la, puis sélectionnez Ajouter. Capture d’écran montrant comment activer l’identité managée affectée par l’utilisateur.

Identité managée à l’aide des kits SDK de gestion Azure Communication Services

L’identité managée peut également être affectée à votre ressource Azure Communication Services à l’aide des Kits de développement logiciel (SDK) Azure Communication Management. Cette affectation peut être obtenue en introduisant la propriété d’identité dans la définition de ressource lors de la création ou lors de la mise à jour de la ressource.

Vous pouvez affecter votre identité managée à votre ressource Azure Communication Services à l’aide du Kit de développement logiciel (SDK) Azure Communication Management pour .NET en définissant la Identity propriété sur le CommunicationServiceResourceData .

Par exemple :

public async Task CreateResourceWithSystemAssignedManagedIdentity()
{
    ArmClient armClient = new ArmClient(new DefaultAzureCredential());
    SubscriptionResource subscription = await armClient.GetDefaultSubscriptionAsync();

    //Create Resource group
    ResourceGroupCollection rgCollection = subscription.GetResourceGroups();
    // With the collection, we can create a new resource group with an specific name
    string rgName = "myRgName";
    AzureLocation location = AzureLocation.WestUS2;
    ArmOperation<ResourceGroupResource> lro = await rgCollection.CreateOrUpdateAsync(WaitUntil.Completed, rgName, new ResourceGroupData(location));
    ResourceGroupResource resourceGroup = lro.Value;

    // get resource group collection
    CommunicationServiceResourceCollection collection = resourceGroup.GetCommunicationServiceResources();
    string communicationServiceName = "myCommunicationService";
    
    // Create Communication Service Resource
    var identity = new ManagedServiceIdentity(ManagedServiceIdentityType.SystemAssigned);
    CommunicationServiceResourceData data = new CommunicationServiceResourceData("global")
    {
        DataLocation = "UnitedStates",
        Identity = identity
    };
    var communicationServiceLro = await collection.CreateOrUpdateAsync(WaitUntil.Completed, communicationServiceName, data);
    var resource = communicationServiceLro.Value;
}

Pour plus d’informations sur l’utilisation du Kit de développement logiciel (SDK) de gestion .NET, consultez le Kit de développement logiciel (SDK) Azure Communication Management pour .NET.

Pour plus d’informations spécifiques à la gestion de votre instance de ressource, consultez Gestion de votre instance de ressource Communication Service

Remarque

Un espace de noms peut avoir en même temps une identité affectée par le système et une identité affectée par l’utilisateur. Dans ce cas, la propriété type est SystemAssigned,UserAssigned.

La suppression de toutes les attributions d’identité managée d’une ressource peut également être obtenue en spécifiant la type propriété en tant que None.

Étapes suivantes

Maintenant que vous avez appris à activer l’identité managée avec Azure Communication Services. Envisagez d’implémenter cette fonctionnalité dans vos propres applications pour simplifier votre processus d’authentification et améliorer la sécurité.