Utilizar identidades geridas para aceder ao App Configuration

As identidades gerenciadas do Microsoft Entra simplificam o gerenciamento de segredos para seu aplicativo na nuvem. Com uma identidade gerenciada, seu código pode usar a entidade de serviço criada para o serviço do Azure em que é executado. Você usa uma identidade gerenciada em vez de uma credencial separada armazenada no Cofre da Chave do Azure ou em uma cadeia de conexão local.

A Configuração de Aplicativo do Azure e suas bibliotecas de cliente .NET, .NET Framework e Java Spring gerenciaram o suporte de identidade incorporado a elas. Embora você não seja obrigado a usá-lo, a identidade gerenciada elimina a necessidade de um token de acesso que contenha segredos. Seu código pode acessar a App Configuration Store usando apenas o ponto de extremidade de serviço. Você pode incorporar esse URL em seu código diretamente sem expor nenhum segredo.

Este artigo mostra como você pode aproveitar a identidade gerenciada para acessar a Configuração do aplicativo. Ele se baseia no aplicativo Web introduzido nos inícios rápidos. Antes de continuar, crie primeiro um aplicativo ASP.NET Core com a Configuração do aplicativo.

Este artigo mostra como você pode aproveitar a identidade gerenciada para acessar a Configuração do aplicativo. Ele se baseia no aplicativo Web introduzido nos inícios rápidos. Antes de continuar, crie primeiro um aplicativo Java Spring com a Configuração de Aplicativo do Azure.

Importante

A identidade gerenciada não pode ser usada para autenticar aplicativos em execução localmente. Seu aplicativo deve ser implantado em um serviço do Azure que ofereça suporte à Identidade Gerenciada. Este artigo usa o Serviço de Aplicativo do Azure como exemplo. No entanto, o mesmo conceito se aplica a qualquer outro serviço do Azure que ofereça suporte à identidade gerenciada. Por exemplo, Serviço Kubernetes do Azure, Máquina Virtual do Azure e Instâncias de Contêiner do Azure. Se sua carga de trabalho estiver hospedada em um desses serviços, você também poderá aproveitar o suporte de identidade gerenciada do serviço.

Você pode usar qualquer editor de código para executar as etapas neste tutorial. O Visual Studio Code é uma excelente opção disponível nas plataformas Windows, macOS e Linux.

Neste artigo, vai aprender a:

  • Conceda acesso a uma identidade gerenciada à Configuração do aplicativo.
  • Configure seu aplicativo para usar uma identidade gerenciada quando você se conectar à Configuração do aplicativo.

Pré-requisitos

Para concluir este tutorial, tem de ter:

Se não tiver uma subscrição do Azure, crie uma conta gratuita do Azure antes de começar.

Adicionar uma identidade gerenciada

Para configurar uma identidade gerenciada no portal, primeiro crie um aplicativo e, em seguida, habilite o recurso.

  1. Acesse seu recurso de Serviços de Aplicativo no portal do Azure. Se você não tiver um recurso existente dos Serviços de Aplicativo para usar, crie um.

  2. Role para baixo até o grupo Configurações no painel esquerdo e selecione Identidade.

  3. Na guia Sistema atribuído, alterne Status para Ativado e selecione Salvar.

  4. Quando solicitado, responda Sim para ativar a identidade gerenciada atribuída ao sistema.

    Captura de tela de como adicionar uma identidade gerenciada no Serviço de Aplicativo.

Conceder acesso à Configuração do Aplicativo

As etapas a seguir descrevem como atribuir a função Leitor de Dados de Configuração do Aplicativo ao Serviço de Aplicativo. Para obter os passos detalhados, veja o artigo Atribuir funções do Azure com o portal do Azure.

  1. No portal do Azure, selecione sua loja de Configuração de Aplicativos.

  2. Selecione Controlo de acesso (IAM) .

  3. Selecione Adicionar>Adicionar atribuição de função.

    Captura de tela que mostra a página Controle de acesso (IAM) com o menu Adicionar atribuição de função aberto.

    Se você não tiver permissão para atribuir funções, a opção Adicionar atribuição de função será desabilitada. Para obter mais informações, veja Funções incorporadas do Azure.

  4. No separador Função, selecione a função Leitor de Dados de Configuração da Aplicação e, em seguida, selecione Seguinte.

    Captura de ecrã que mostra a página Adicionar atribuição de função com o separador Função selecionado.

  5. No separador Membros, selecione Identidade gerida e, em seguida, selecione Selecionar membros.

    Captura de tela que mostra a página Adicionar atribuição de função com a guia Membros selecionada.

  6. Selecione sua assinatura do Azure, para Identidade gerenciada, selecione Serviço de Aplicativo e selecione o nome do Serviço de Aplicativo.

    Captura de tela que mostra a página selecionar identidades gerenciadas.

  7. No separador Rever + atribuir, selecione Rever + atribuir para atribuir a função.

Utilizar uma identidade gerida

  1. Adicione uma referência ao Azure.Identity pacote:

    dotnet add package Azure.Identity
    
  2. Encontre o ponto de extremidade na sua loja de configuração de aplicativos. Essa URL está listada na guia Chaves de acesso para a loja no portal do Azure.

  3. Abra o arquivo appsettings.json e adicione o seguinte script. Substitua <service_endpoint>, incluindo os parênteses, pelo URL da sua loja de Configuração de Aplicações.

    "AppConfig": {
        "Endpoint": "<service_endpoint>"
    }
    
  4. Abra o arquivo Program.cs e adicione uma referência ao Azure.Identity namespace:

    using Azure.Identity;
    
  5. Para acessar valores armazenados na Configuração do aplicativo, atualize a Builder configuração para usar o AddAzureAppConfiguration() método.

    var builder = WebApplication.CreateBuilder(args);
    
    builder.Configuration.AddAzureAppConfiguration(options =>
        options.Connect(
            new Uri(builder.Configuration["AppConfig:Endpoint"]),
            new ManagedIdentityCredential()));
    

    Nota

    Se você quiser usar uma identidade gerenciada atribuída pelo usuário, certifique-se de especificar a clientId ao criar a ManagedIdentityCredential.

    new ManagedIdentityCredential("<your_clientId>")
    

    Conforme explicado nas Perguntas frequentes sobre identidades gerenciadas para recursos do Azure, há uma maneira padrão de resolver qual identidade gerenciada é usada. Nesse caso, a biblioteca de Identidades do Azure impõe que você especifique a identidade desejada para evitar possíveis problemas de tempo de execução no futuro. Por exemplo, se uma nova identidade gerenciada atribuída pelo usuário for adicionada ou se a identidade gerenciada atribuída pelo sistema estiver habilitada. Portanto, você precisará especificar o clientId mesmo se apenas uma identidade gerenciada atribuída pelo usuário estiver definida e não houver nenhuma identidade gerenciada atribuída ao sistema.

  1. Encontre o ponto de extremidade na sua loja de configuração de aplicativos. Essa URL está listada na guia Visão geral da loja no portal do Azure.

  2. Abra bootstrap.properties, remova a propriedade connection-string e substitua-a por endpoint para System Assigned Identity:

spring.cloud.azure.appconfiguration.stores[0].endpoint=<service_endpoint>

para Identidade Atribuída pelo Utilizador:

spring.cloud.azure.appconfiguration.stores[0].endpoint=<service_endpoint>
spring.cloud.azure.credential.managed-identity-enabled= true
spring.cloud.azure.credential.client-id= <client_id>

Nota

Para obter mais informações, consulte Autenticação do Azure do Spring Cloud.

Implementar a sua aplicação

Você deve implantar seu aplicativo em um serviço do Azure ao usar identidades gerenciadas. As identidades gerenciadas não podem ser usadas para autenticação de aplicativos em execução local. Para implantar o aplicativo .NET Core que você criou no início rápido Criar um aplicativo ASP.NET Core com Configuração de Aplicativo e modificado para usar identidades gerenciadas, siga as orientações em Publicar seu aplicativo Web.

O uso de identidades gerenciadas exige que você implante seu aplicativo em um serviço do Azure. As identidades gerenciadas não podem ser usadas para autenticação de aplicativos em execução local. Para implantar o aplicativo Spring que você criou no início rápido Criar um aplicativo Java Spring com Configuração de Aplicativo do Azure e modificou para usar identidades gerenciadas, siga as orientações em Publicar seu aplicativo Web.

Além do Serviço de Aplicativo, muitos outros serviços do Azure oferecem suporte a identidades gerenciadas. Para obter mais informações, consulte Serviços que dão suporte a identidades gerenciadas para recursos do Azure.

Clean up resources (Limpar recursos)

Se não quiser continuar a utilizar os recursos criados neste artigo, elimine o grupo de recursos que criou aqui para evitar cobranças.

Importante

A eliminação de um grupo de recursos é irreversível. O grupo de recursos e todos os recursos nele contidos são excluídos permanentemente. Certifique-se de não excluir acidentalmente o grupo de recursos ou recursos errados. Se você criou os recursos para este artigo dentro de um grupo de recursos que contém outros recursos que deseja manter, exclua cada recurso individualmente de seu respetivo painel em vez de excluir o grupo de recursos.

  1. Entre no portal do Azure e selecione Grupos de recursos.
  2. Na caixa Filtrar por nome, introduza o nome do seu grupo de recursos.
  3. Na lista de resultados, selecione o nome do grupo de recursos para ver uma visão geral.
  4. Selecione Eliminar grupo de recursos.
  5. É-lhe pedido que confirme a eliminação do grupo de recursos. Insira o nome do grupo de recursos a ser confirmado e selecione Excluir.

Após alguns momentos, o grupo de recursos e todos os seus recursos são excluídos.

Próximos passos

Neste tutorial, você adicionou uma identidade gerenciada do Azure para simplificar o acesso à Configuração do Aplicativo e melhorar o gerenciamento de credenciais para seu aplicativo. Para saber mais sobre como usar a Configuração do Aplicativo, continue para os exemplos da CLI do Azure.