Usar uma identidade gerenciada atribuída pelo sistema da VM do Windows para acessar o Resource Manager
Identidades gerenciadas para recursos do Azure é um recurso do Microsoft Entra ID. Cada um dos serviços do Azure que dão suporte a identidades gerenciadas para recursos do Azure está sujeito à própria linha do tempo. Não deixe de examinar o status de disponibilidade das identidades gerenciadas do seu recurso e os problemas conhecidos antes de começar.
Este tutorial mostra como acessar a API do Azure Resource Manager usando uma máquina virtual do Windows com a identidade gerenciada atribuída pelo sistema habilitada. As identidades gerenciadas para recursos do Azure são gerenciadas automaticamente pelo Azure e permitem a você autenticar os serviços que dão suporte à autenticação do Microsoft Entra sem necessidade de inserir as credenciais em seu código. Você aprenderá como:
- Conceder o acesso da VM a um Grupo de Recursos no Azure Resource Manager
- Obter um token de acesso usando a identidade da máquina virtual e usá-la para chamar o Azure Resource Manager
Pré-requisitos
- Conhecimento básico de identidades gerenciadas. Se você não estiver familiarizado com as identidades gerenciadas para funcionalidades de recursos do Azure, veja esta visão geral.
- Uma conta do Azure, inscreva-se em uma conta gratuita.
- Permissões de "Proprietário" no escopo apropriado (sua assinatura ou grupo de recursos) para executar a criação de recursos e o gerenciamento de função necessários. Se precisar de ajuda com a atribuição de função, confira Atribuir funções do Azure para gerenciar o acesso aos recursos de assinatura do Azure.
- Você também precisa de uma máquina virtual do Windows com identidades gerenciadas atribuídas ao sistema habilitadas.
- Se for necessário criar uma máquina virtual para este tutorial, siga o artigo intitulado Criar uma máquina virtual com a identidade atribuída pelo sistema habilitada
Habilitar
Habilitar uma identidade gerenciada atribuída pelo sistema é uma experiência de um clique. Você pode habilitá-la durante a criação de uma VM ou nas propriedades de uma VM existente.
Para habilitar a identidade gerenciada atribuída pelo sistema em uma nova VM:
Conceder acesso a um Grupo de Recursos no Azure Resource Manager para sua VM
Dica
As etapas neste artigo podem variar ligeiramente com base no portal do qual você começa.
Usando as identidades gerenciadas para recursos do Azure, seu aplicativo pode obter tokens de acesso para se autenticar nos recursos que dão suporte à autenticação do Microsoft Entra. A API do Azure Resource Manager oferece suporte à autenticação do Microsoft Entra. Permitimos o acesso de identidade desta VM a um recurso no Azure Resource Manager, neste caso, um grupo de recursos. Atribuímos a função Leitor à identidade gerenciada no escopo do grupo de recursos.
- Entre no Portal do Azure com sua conta de administrador.
- Navegue até a guia para Grupos de Recursos.
- Selecione o Grupo de recursos que deseja conceder acesso à identidade gerenciada da VM.
- No painel esquerdo, selecione Controle de acesso (IAM).
- Selecione Adicionar e selecione Adicionar atribuição de função.
- Na guia Função, selecione Leitor. Essa função permite exibir todos os recursos, mas não permite que você faça alterações.
- Na guia Membros, para Atribuir acesso a, selecione Identidade gerenciada. Em seguida, escolha + Selecionar membros.
- Certifique-se de que a assinatura correta esteja listada na lista suspensa Assinatura. E para Grupo de Recursos, selecione Todos os grupos de recursos.
- Para a lista suspensa Gerenciar identidade, selecione Máquina virtual.
- Por fim, em Selecionar, escolha sua Máquina Virtual do Windows na lista suspensa e escolha Salvar.
Obter um token de acesso usando a identidade gerenciada atribuída pelo sistema da VM e usá-lo para chamar o Azure Resource Manager
Você precisará usar o PowerShell nesta parte. Se você não tiver o PowerShell instalado, baixe-o aqui.
No portal, navegue até Máquinas Virtuais e vá para a máquina virtual do Windows; em Visão geral, clique em Conectar.
Insira o seu Nome de usuário e Senha que você adicionou quando criou a VM do Windows.
Agora que você criou uma Conexão de Área de Trabalho Remota com a máquina virtual, abra o PowerShell na sessão remota.
Usando o cmdlet Invoke-WebRequest, faça uma solicitação para a identidade gerenciada local do ponto de extremidade de recursos do Azure para obter um token de acesso para o Azure Resource Manager.
$response = Invoke-WebRequest -Uri 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https://management.azure.com/' -Method GET -Headers @{Metadata="true"}
Observação
O valor do parâmetro “resource” precisa ser uma correspondência exata do que é esperado pela ID do Microsoft Entra. Ao usar a ID de recurso do Azure Resource Manager, você deve incluir a barra à direita no URI.
Em seguida, extraia a resposta completa, que é armazenada como uma cadeia de caracteres JSON (JavaScript Object Notation) formatada no objeto $response.
$content = $response.Content | ConvertFrom-Json
Em seguida, extraia o token de acesso da resposta.
$ArmToken = $content.access_token
Por fim, chame o Azure Resource Manager usando o token de acesso. Neste exemplo, também estamos usando o cmdlet Invoke-WebRequest para fazer a chamada ao Azure Resource Manager e incluir o token de acesso no cabeçalho de Autorização.
(Invoke-WebRequest -Uri https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>?api-version=2016-06-01 -Method GET -ContentType "application/json" -Headers @{ Authorization ="Bearer $ArmToken"}).content
Observação
A URL diferencia maiúsculas de minúsculas, portanto, verifique se você está usando letras maiúsculas e minúsculas exatamente da mesma forma que você usou anteriormente ao nomear o Grupo de Recursos e a letra maiúscula "G" em "resourceGroups".
O comando a seguir retorna os detalhes do Grupo de Recursos:
{"id":"/subscriptions/98f51385-2edc-4b79-bed9-7718de4cb861/resourceGroups/DevTest","name":"DevTest","location":"westus","properties":{"provisioningState":"Succeeded"}}
Próximas etapas
Neste início rápido, você aprendeu a usar uma identidade gerenciada atribuída pelo sistema para acessar a API do Azure Resource Manager. Para saber mais sobre o Azure Resource Manager, confira: