Uso de identidad administrada con Azure Communication Services

Azure Communication Services es una plataforma de comunicación totalmente administrada que permite a los desarrolladores crear características de comunicación en tiempo real en sus aplicaciones. Mediante el uso de identidad administrada con Azure Communication Services, puede simplificar el proceso de autenticación de la aplicación, a la vez que aumenta su seguridad. En este documento se explica cómo usar la identidad administrada con Azure Communication Services.

Uso de identidad administrada con Azure Communication Services

Azure Communication Services admite el uso de identidad administrada para autenticarse con el servicio. Mediante la identidad administrada, puede eliminar la necesidad de administrar sus propios tokens de acceso y credenciales.

El recurso de Azure Communication Services se puede asignar dos tipos de identidad:

  1. Una identidad asignada por el sistema que está vinculada al recurso y se elimina cuando se elimina el recurso. Su recurso puede tener solo una identidad asignada por el sistema.
  2. Una identidad asignada por el usuario que es un recurso de Azure que se puede asignar al recurso de Azure Communication Services. Esta identidad no se elimina cuando se elimina el recurso. El recurso puede tener varias identidades asignadas por el usuario.

Para usar la identidad administrada con Azure Communication Services, siga estos pasos:

  1. Conceda a la identidad administrada acceso al recurso de Communication Services. Esta asignación puede ser a través de Azure Portal, la CLI de Azure y los SDK de Administración de comunicaciones de Azure.
  2. Use la identidad administrada para autenticarse con Azure Communication Services. La autenticación se puede realizar a través de los SDK de Azure o las API REST que admiten la identidad administrada.

Adición de una identidad asignada por el sistema

  1. En el panel de navegación izquierdo de la página de la aplicación, desplácese hacia abajo hasta el grupo Configuración.

  2. Seleccione Identidad.

  3. En la pestaña Asignado por el sistema, cambie Estado a Activado. Seleccione Guardar. Captura de pantalla que muestra cómo habilitar la identidad administrada asignada por el sistema.

Adición de una identidad asignada por el usuario

La asignación de una identidad asignada por el usuario al recurso de Azure Communication Services requiere que cree primero la identidad y agregue su identificador de recurso al recurso de Communication Service.

En primer lugar, debe crear un recurso de identidad administrada asignada por el usuario.

  1. Cree un recurso de identidad administrada asignada por el usuario según estas instrucciones.

  2. En el panel de navegación izquierdo de la página de la aplicación, desplácese hacia abajo hasta el grupo Configuración.

  3. Seleccione Identidad.

  4. Seleccione Asignado por el usuario>Agregar.

  5. Busque la identidad que ha creado anteriormente, selecciónela y seleccione Agregar. Captura de pantalla que muestra cómo habilitar la identidad administrada asignada por el usuario.

Identidad administrada mediante SDK de administración de Azure Communication Services

La identidad administrada también se puede asignar al recurso de Azure Communication Services mediante los SDK de Azure Communication Management. Esta asignación se puede lograr mediante la introducción de la propiedad de identidad en la definición de recurso en la creación o al actualizar el recurso.

Puede asignar la identidad administrada al recurso de Azure Communication Services mediante el SDK de Azure Communication Management para .NET estableciendo la Identity propiedad en CommunicationServiceResourceData .

Por ejemplo:

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;
}

Para más información sobre el uso del SDK de administración de .NET, consulte SDK de Azure Communication Management para .NET.

Para obtener más información específica para administrar la instancia de recurso, consulte Administración de la instancia de recursos de Communication Service.

Nota:

Un recurso puede tener identidades asignadas por el sistema y por el usuario de manera simultánea. En este caso, la propiedad type sería SystemAssigned,UserAssigned.

La eliminación de todas las asignaciones de identidad administrada de un recurso también se puede lograr especificando la type propiedad como None.

Pasos siguientes

Ahora que ha aprendido a habilitar la identidad administrada con Azure Communication Services. Considere la posibilidad de implementar esta característica en sus propias aplicaciones para simplificar el proceso de autenticación y mejorar la seguridad.