Utilizar uma identidade gerida atribuída pelo sistema de VM do Windows para aceder ao Resource Manager
Identidades gerenciadas para recursos do Azure é um recurso do Microsoft Entra ID. Cada um dos serviços do Azure que suportam as identidades geridas para os recursos do Azure estão sujeitos à sua própria linha de tempo. Certifique-se de que revê o estado de disponibilidade das identidades geridas para o seu recurso e 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 que você se autentique em serviços que oferecem suporte à autenticação do Microsoft Entra sem a necessidade de inserir credenciais em seu código. Sabe como:
- Conceder o acesso da VM a um Grupo de Recursos no Azure Resource Manager
- Obter um token de acesso com a identidade da VM e utilizá-lo para chamar o Azure Resource Manager
Pré-requisitos
- Uma compreensão básica de identidades gerenciadas. Se não estiver familiarizado com a funcionalidade das identidades geridas para os recursos do Azure, veja esta descrição geral.
- Uma conta do Azure, inscreva-se para obter uma conta gratuita.
- Permissões de "proprietário" no escopo apropriado (sua assinatura ou grupo de recursos) para executar as etapas necessárias de criação de recursos e gerenciamento de funções. Se precisar de ajuda com a atribuição de funções, consulte Atribuir funções do Azure para gerir o acesso aos seus recursos de subscrição do Azure.
- Você também precisa de uma máquina virtual do Windows que tenha identidades gerenciadas atribuídas ao sistema habilitadas.
- Se precisar criar uma máquina virtual para este tutorial, siga o artigo intitulado Criar uma máquina virtual com a identidade atribuída ao sistema habilitada
Ativar
Habilitar uma identidade gerenciada atribuída ao sistema é uma experiência de um clique. Você pode habilitá-lo durante a criação de uma VM ou nas propriedades de uma VM existente.
Para habilitar uma identidade gerenciada atribuída ao sistema em uma nova VM:
Inicie sessão no portal do Azure
Criar uma máquina virtual com a identidade atribuída pelo sistema habilitada
Conceder o acesso da VM a um grupo de recursos no Resource Manager
Gorjeta
As etapas neste artigo podem variar ligeiramente com base no portal a partir do qual você começou.
Usando identidades gerenciadas para recursos do Azure, seu aplicativo pode obter tokens de acesso para autenticar recursos que dão suporte à autenticação do Microsoft Entra. A API do Azure Resource Manager dá suporte à autenticação do Microsoft Entra. Concedemos à identidade desta VM acesso 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é ao separador para Grupos de Recursos.
- Selecione o Grupo de Recursos ao qual você deseja conceder acesso à identidade gerenciada da VM.
- No painel esquerdo, selecione Controle de acesso (IAM).
- Selecione Adicionar e, em seguida, 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, selecione + Selecionar membros.
- Verifique se a assinatura adequada está listada na lista suspensa Assinatura . Para Grupo de Recursos, selecione Todos os grupos de recursos.
- Na lista suspensa Gerenciar identidade, selecione Máquina Virtual.
- Finalmente, em Selecionar , escolha sua máquina virtual do Windows na lista suspensa e selecione Salvar.
Obter um token de acesso através da identidade gerida atribuída pelo sistema da VM do Linux e utilizá-lo para chamar o Azure Resource Manager
Você precisará usar o PowerShell nesta parte. Se não tiver o PowerShell instalado, transfira-o aqui.
No portal, navegue até Máquinas Virtuais e vá para sua máquina virtual do Windows e, na Visão Geral, selecione Conectar.
Introduza o seu Nome de Utilizador e a Palavra-passe que 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 à identidade gerenciada local para o ponto de extremidade de recursos do Azure para obter um token de acesso para o Gerenciador de Recursos do Azure.
$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"}
Nota
O valor do parâmetro "resource" deve ser uma correspondência exata para o que é esperado pelo Microsoft Entra ID. Ao utilizar o ID de recurso do Azure Resource Manager, tem de incluir a barra à direita no URI.
Em seguida, extraia a resposta completa, que é armazenada como uma cadeia formatada do JavaScript Object Notation (JSON) 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 com o token de acesso. Neste exemplo, também estamos usando o cmdlet Invoke-WebRequest para fazer a chamada para o Gerenciador de Recursos do Azure e incluir o token de acesso no cabeçalho Authorization.
(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
Nota
O URL é sensível às maiúsculas de minúsculas, por isso, certifique-se de que utiliza as mesmas maiúsculas e minúsculas que utilizou anteriormente, quando atribuiu o nome ao Grupo de Recursos e a maiúscula "G" em "resourceGroups".
O comando seguinte devolve os detalhes do Grupo de Recursos:
{"id":"/subscriptions/98f51385-2edc-4b79-bed9-7718de4cb861/resourceGroups/DevTest","name":"DevTest","location":"westus","properties":{"provisioningState":"Succeeded"}}
Próximos passos
Este início rápido mostra como utilizar uma identidade gerida atribuída pelo sistema para aceder à API do Azure Resource Manager. Para saber mais sobre o Azure Resource Manager, veja: