Como usar a Identidade Gerenciada com os Serviços de Comunicação do Azure

Os Serviços de Comunicação do Azure são uma plataforma de comunicação totalmente gerenciada que permite que os desenvolvedores criem recursos de comunicação em tempo real em seus aplicativos. Ao usar a Identidade Gerenciada com os Serviços de Comunicação do Azure, você pode simplificar o processo de autenticação para seu aplicativo e, ao mesmo tempo, aumentar sua segurança. Este documento aborda como usar a Identidade Gerenciada com os Serviços de Comunicação do Azure.

Usando a identidade gerenciada com os Serviços de Comunicação do Azure

Os Serviços de Comunicação do Azure dão suporte ao uso da Identidade Gerenciada para autenticação com o serviço. Usando a Identidade Gerenciada, você pode eliminar a necessidade de gerenciar seus próprios tokens de acesso e credenciais.

Seu recurso dos Serviços de Comunicação do Azure pode receber dois tipos de identidade:

  1. Uma Identidade Atribuída ao Sistema que está vinculada ao seu recurso e é excluída quando o recurso é excluído. Seu recurso só pode ter uma identidade atribuída ao sistema.
  2. Uma Identidade Atribuída ao Usuário, que é um recurso do Azure que pode ser atribuído ao seu recurso dos Serviços de Comunicação do Azure. Essa identidade não é excluída quando o recurso é excluído. Seu recurso pode ter várias identidades atribuídas pelo usuário.

Para usar a Identidade Gerenciada com os Serviços de Comunicação do Azure, siga estas etapas:

  1. Conceda à sua Identidade Gerenciada acesso ao recurso Serviços de Comunicação. Essa atribuição pode ser feita por meio do portal do Azure, da CLI do Azure e dos SDKs de Gerenciamento de Comunicação do Azure.
  2. Use a Identidade Gerenciada para autenticar com os Serviços de Comunicação do Azure. A autenticação pode ser feita por meio dos SDKs do Azure ou APIs REST que dão suporte à Identidade Gerenciada.

Adicionar uma identidade atribuída ao sistema

  1. Na navegação à esquerda da página da sua aplicação, desloque-se para baixo até ao grupo Definições .

  2. Selecione Identidade.

  3. Na guia Sistema atribuído, alterne Status para Ativado. Selecione Guardar. Captura de tela que mostra como habilitar a identidade gerenciada atribuída ao sistema.

Adicionar uma identidade atribuída pelo usuário

A atribuição de uma identidade atribuída pelo usuário ao seu recurso dos Serviços de Comunicação do Azure requer que você primeiro crie a identidade e, em seguida, adicione seu identificador de recurso ao seu recurso de serviço de Comunicação.

Primeiro, você precisa criar um recurso de identidade gerenciado atribuído pelo usuário.

  1. Crie um recurso de identidade gerenciado atribuído pelo usuário de acordo com estas instruções.

  2. Na navegação à esquerda da página da sua aplicação, desloque-se para baixo até ao grupo Definições .

  3. Selecione Identidade.

  4. Selecione Adicionar atribuído ao> usuário.

  5. Procure a identidade criada anteriormente, selecione-a e selecione Adicionar. Captura de tela que mostra como habilitar a identidade gerenciada atribuída ao usuário.

Identidade gerenciada usando SDKs de gerenciamento dos Serviços de Comunicação do Azure

A Identidade Gerenciada também pode ser atribuída ao seu recurso dos Serviços de Comunicação do Azure usando os SDKs de Gerenciamento de Comunicação do Azure. Essa atribuição pode ser alcançada introduzindo a propriedade identity na definição de recurso na criação ou ao atualizar o recurso.

Você pode atribuir sua identidade gerenciada ao recurso dos Serviços de Comunicação do Azure usando o SDK de Gerenciamento de Comunicação do Azure para .NET definindo a Identity propriedade no CommunicationServiceResourceData .

Por exemplo:

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 obter mais informações sobre como usar o SDK de Gerenciamento do .NET, consulte SDK de Gerenciamento de Comunicação do Azure para .NET.

Para obter mais informações específicas para gerenciar sua instância de recurso, consulte Gerenciando sua instância de recurso de serviço de comunicação

Nota

Um recurso pode ter identidades atribuídas ao sistema e ao usuário ao mesmo tempo. Neste caso, a type propriedade seria SystemAssigned,UserAssigned.

A remoção de todas as atribuições de identidade gerenciadas de um recurso também pode ser obtida especificando a type propriedade como None.

Próximos passos

Agora que você aprendeu como habilitar a Identidade Gerenciada com os Serviços de Comunicação do Azure. Considere implementar esse recurso em seus próprios aplicativos para simplificar seu processo de autenticação e melhorar a segurança.