Compartilhar via


Autenticar aplicativos .NET nos serviços do Azure durante o desenvolvimento local usando contas de desenvolvedor

Os desenvolvedores precisam depurar e testar aplicativos de nuvem nas suas estações de trabalho locais. Quando um aplicativo é executado na estação de trabalho de um desenvolvedor durante o desenvolvimento local, ele ainda deve se autenticar em todos os serviços do Azure usados pelo aplicativo. Este artigo trata de como usar as credenciais do Azure de um desenvolvedor para autenticar o aplicativo no Azure durante o desenvolvimento local.

Um diagrama mostrando um aplicativo em execução no desenvolvimento local usando uma identidade de ferramenta de desenvolvedor para se conectar aos recursos do Azure.

Para que um aplicativo se autentique no Azure durante o desenvolvimento local usando as credenciais do Azure do desenvolvedor, ele deve estar conectado ao Azure em uma das seguintes ferramentas de desenvolvedor:

  • Visual Studio
  • CLI do Azure
  • CLI do Desenvolvedor do Azure
  • PowerShell do Azure

A biblioteca de Identidade do Azure pode detectar que o desenvolvedor está conectado por uma dessas ferramentas. Assim, a biblioteca pode obter o token de acesso do Microsoft Entra pela ferramenta para autenticar o aplicativo no Azure como o usuário conectado.

Essa abordagem é mais fácil de configurar para uma equipe de desenvolvimento, pois aproveita as contas existentes do Azure dos desenvolvedores. Porém, é provável que a conta de um desenvolvedor tenha mais permissões do que as exigidas pelo aplicativo, excedendo, portanto, as permissões com as quais o aplicativo é executado na produção. Como alternativa, você pode criar entidades de serviço de aplicativo para usar durante o desenvolvimento local, que podem ter o escopo para terem apenas o acesso necessário pelo aplicativo.

1 – Criar um grupo do Microsoft Entra para desenvolvimento local

Como quase sempre há vários desenvolvedores trabalhando em um aplicativo, recomenda-se a criação de um grupo Microsoft Entra para encapsular as funções (permissões) de que o aplicativo precisa no desenvolvimento local. Essa abordagem oferece as seguintes vantagens:

  • Cada desenvolvedor deve ter as mesmas funções atribuídas, já que as funções são atribuídas no nível do grupo.
  • Se for necessária uma nova função para o aplicativo, ela só precisará ser adicionada ao grupo do aplicativo.
  • Se um novo desenvolvedor ingressar na equipe, ele obterá as permissões necessárias para trabalhar no aplicativo depois de ser adicionado ao grupo.

Se você tiver um grupo existente do Microsoft Entra para sua equipe de desenvolvimento, poderá usar esse grupo. Caso contrário, conclua as etapas a seguir para criar um grupo do Microsoft Entra.

Instruções Captura de tela
Navegue até a página do Microsoft Entra ID no portal do Azure digitando Microsoft Entra ID na caixa de pesquisa na parte superior da página. Selecione Microsoft Entra ID na seção Serviços. Uma captura de tela mostrando como usar a barra de pesquisa superior no portal do Azure para pesquisar e navegar até a página do Microsoft Entra ID.
Na página Microsoft Entra ID, selecione Grupos no menu à esquerda. Uma captura de tela mostrando o local do item de menu Grupos no menu à esquerda da página Diretório Padrão do Microsoft Entra ID.
Na página Todos os grupos, selecione Novo grupo. Uma captura de tela que mostra a localização do botão Novo grupo na página Todos os grupos.
Na página Novo grupo:
  1. Selecione Segurança na lista suspensa Tipo de Grupo.
  2. Nome do grupo → Um nome para o grupo de segurança, normalmente criado com base no nome do aplicativo. Também é útil incluir uma cadeia de caracteres como desenvolvimento local no nome do grupo para indicar a finalidade do grupo.
  3. Descrição do grupo → Uma descrição da finalidade do grupo.
  4. Selecione o link Nenhum membro selecionado em Membros para adicionar membros ao grupo.
Uma captura de tela mostrando como criar um novo grupo do Microsoft Entra. O local do link a ser selecionado para adicionar membros a esse grupo está realçado.
Na caixa de diálogo Adicionar membros:
  1. Use a caixa de pesquisa para filtrar a lista de nomes de usuário.
  2. Escolha um ou mais usuários para desenvolvimento local para esse aplicativo. À medida que você escolhe um objeto, o objeto se move para a lista Itens selecionados na parte inferior da caixa de diálogo.
  3. Quando terminar, escolha o botão Selecionar.
Uma captura de tela da caixa de diálogo Adicionar membros que mostra como selecionar contas de desenvolvedor a serem incluídas no grupo.
De volta à página Novo Grupo, selecione Criar para criar o grupo. O grupo será criado e você será levado de volta à página Todos os grupos. Pode levar até 30 segundos para que o grupo apareça e talvez seja necessário atualizar a página devido ao cache no portal do Azure. Uma captura de tela da página Novo Grupo que mostra como concluir o processo selecionando o botão Criar.

Observação

Por padrão, a criação de grupos do Microsoft Entra é limitada a determinadas funções privilegiadas em um diretório. Se não for possível criar um grupo, entre em contato com um administrador do seu diretório. Se você não puder adicionar membros a um grupo existente, entre em contato com o proprietário do grupo ou com um administrador de diretório. Para saber mais, consulte Gerenciar grupos do Microsoft Entra e associação de grupo.

2 – Atribuir funções ao grupo Microsoft Entra

Em seguida, determine quais funções (permissões) seu aplicativo precisa em quais recursos e atribua essas funções ao seu aplicativo. Nesse exemplo, as funções são atribuídas ao grupo do Microsoft Entra criado na etapa 1. Os grupos podem receber uma função em um recurso, grupo de recursos ou escopo de assinatura. Esse exemplo mostra como atribuir funções no grupo de recursos, pois a maioria dos aplicativos agrupa todos os recursos do Azure em um único grupo de recursos.

Instruções Captura de tela
Localize o grupo de recursos no seu aplicativo pesquisando o nome do grupo de recursos usando a caixa de pesquisa na parte superior do portal do Azure. Navegue até o grupo de recursos selecionando o nome do grupo de recursos no título Grupos de recursos na caixa de diálogo. Uma captura de tela que mostra como usar a caixa de pesquisa na parte superior do portal do Azure para localizar e navegar até o grupo de recursos ao qual você deseja atribuir funções (permissões).
Na página do grupo de recursos, selecione Controle de acesso (IAM) no menu à esquerda. Uma captura de tela da página do grupo de recursos que mostra a localização do item de menu Controle de acesso (IAM).
Na página Controle de acesso (IAM):
  1. Selecione a guia Atribuições de função.
  2. Selecione + Adicionar no menu superior e, em seguida, Adicionar atribuição de função no menu suspenso resultante.
Uma captura de tela que mostra como navegar até a guia de atribuições de função e o local do botão usado para adicionar atribuições de função a um grupo de recursos.
A página Adicionar atribuição de função lista todas as funções que podem ser atribuídas ao grupo de recursos.
  1. Use a caixa de pesquisa para filtrar a lista para obter um tamanho mais gerenciável. Este exemplo mostra como filtrar as funções do Blob de Armazenamento.
  2. Selecione a função que você deseja atribuir.
Selecione Avançar para ir para a próxima tela.
Uma captura de tela que mostra como filtrar e selecionar atribuições de função a serem adicionadas ao grupo de recursos.
A próxima página Adicionar atribuição de função permite especificar a qual usuário atribuir a função.
  1. Selecione Usuário, grupo ou entidade de serviço emAtribuir acesso a.
  2. Selecione + Selecionar membros em Membros.
Uma caixa de diálogo é aberta no lado direito do portal do Azure.
Uma captura de tela mostrando o botão de opção a ser selecionado para atribuir uma função a um grupo do Microsoft Entra e o link usado para selecionar o grupo ao qual atribuir a função.
Na caixa de diálogo Selecionar membros:
  1. A caixa de texto Selecionar pode ser usada para filtrar a lista de usuários e grupos em sua assinatura. Se necessário, digite os primeiros caracteres do grupo de desenvolvimento local do Microsoft Entra que você criou para o aplicativo.
  2. Selecione o grupo de desenvolvimento local do Microsoft Entra associado ao seu aplicativo.
Para continuar, selecione Selecionar na parte inferior da caixa de diálogo.
Uma captura de tela mostrando como filtrar e selecionar o grupo do Microsoft Entra do aplicativo na caixa de diálogo Selecionar membros.
O grupo Microsoft Entra é exibido como selecionado na tela Adicionar atribuição da função. Selecione Revisar + atribuir para ir para a página final e, em seguida, Revisar + atribuir novamente para concluir o processo. Uma captura de tela que mostra a página Adicionar atribuição de função concluída e o local do botão Revisar + atribuir usado para concluir o processo.

3 – Entrar no Azure usando as ferramentas de desenvolvedor

Em seguida, entre no Azure usando uma das várias ferramentas de desenvolvedor. A conta autenticada também deve existir no grupo do Microsoft Entra que você criou e configurou anteriormente.

  1. Navegue até Ferramentas>Opções para abrir a caixa de diálogo de opções.

  2. Na caixa Opções de Pesquisa na parte superior, digite Azure para filtrar as opções disponíveis.

  3. Em Autenticação de Serviço do Azure, escolha Seleção da Conta.

  4. Selecione o menu suspenso em Escolher uma conta e escolha adicionar uma conta da Microsoft. Uma janela é aberta, solicitando que você escolha uma conta. Insira as credenciais da conta desejada do Azure e selecione a confirmação.

    Uma captura de tela que mostra como entrar no Azure usando o Visual Studio.

  5. Selecione OK para fechar a caixa de diálogo de opções.

4 – Implementar DefaultAzureCredential no seu aplicativo

DefaultAzureCredential é uma sequência opinativa e ordenada de mecanismos para autenticação no Microsoft Entra. Cada mecanismo de autenticação é uma classe derivada da classe TokenCredential e é conhecida como credenciais. No runtime, DefaultAzureCredential tenta autenticar usando a primeira credencial. Se essa credencial não conseguir adquirir um token de acesso, a próxima credencial na sequência será tentada e assim por diante, até que um token de acesso seja obtido com êxito. Dessa forma, seu aplicativo pode usar credenciais diferentes em ambientes diferentes sem escrever código específico para cada ambiente.

A ordem e os locais em que DefaultAzureCredential procura credenciais são encontrados em DefaultAzureCredential.

Para usar DefaultAzureCredential, adicione os pacotes Azure.Identity e, opcionalmente, os pacotes Microsoft.Extensions.Azure ao seu aplicativo:

Em um terminal da sua escolha, navegue até o diretório do projeto de aplicativo e execute os seguintes comandos:

dotnet add package Azure.Identity
dotnet add package Microsoft.Extensions.Azure

Os serviços do Azure são acessados usando classes de cliente especializadas das várias bibliotecas de clientes do SDK do Azure. Essas classes e seus próprios serviços personalizados devem ser registrados para que possam ser acessados pela injeção de dependência no aplicativo. Em Program.cs, conclua as seguintes etapas para registrar uma classe cliente e DefaultAzureCredential:

  1. Inclua os namespaces Azure.Identity e Microsoft.Extensions.Azure com pelas diretivas using.
  2. Registre o cliente de serviço do Azure usando o método de extensão com prefixo Addcorrespondente.
  3. Passe uma instância do DefaultAzureCredential para o método UseCredential.

Por exemplo:

using Microsoft.Extensions.Azure;
using Azure.Identity;

builder.Services.AddAzureClients(clientBuilder =>
{
    clientBuilder.AddBlobServiceClient(
        new Uri("https://<account-name>.blob.core.windows.net"));
    clientBuilder.UseCredential(new DefaultAzureCredential());
});

Uma alternativa para UseCredential é criar uma instância DefaultAzureCredential diretamente:

using Azure.Identity;

builder.Services.AddSingleton<BlobServiceClient>(_ =>
    new BlobServiceClient(
        new Uri("https://<account-name>.blob.core.windows.net"),
        new DefaultAzureCredential()));

Quando o código anterior é executado na sua estação de trabalho de desenvolvimento local, ele procura nas variáveis de ambiente uma entidade de serviço de aplicativo ou nas ferramentas de desenvolvedor instaladas localmente, como o Visual Studio, para um conjunto de credenciais de desenvolvedor. Qualquer abordagem pode ser usada para autenticar o aplicativo nos recursos do Azure durante o desenvolvimento local.

Quando implantado no Azure, esse mesmo código também pode autenticar seu aplicativo em outros recursos do Azure. DefaultAzureCredential pode recuperar configurações de ambiente e configurações de identidade gerenciada para autenticar-se em outros serviços automaticamente.