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

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.

Screenshot shows the System assigned tab for a virtual machine where you can turn on the System assigned status.

Para habilitar uma identidade gerenciada atribuída ao sistema em uma nova VM:

  1. Inicie sessão no portal do Azure

  2. 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.

  1. Entre no portal do Azure com sua conta de administrador.
  2. Navegue até ao separador para Grupos de Recursos.
  3. Selecione o Grupo de Recursos ao qual você deseja conceder acesso à identidade gerenciada da VM.
  4. No painel esquerdo, selecione Controle de acesso (IAM).
  5. Selecione Adicionar e, em seguida, selecione Adicionar atribuição de função.
  6. Na guia Função, selecione Leitor. Essa função permite exibir todos os recursos, mas não permite que você faça alterações.
  7. Na guia Membros, para Atribuir acesso a, selecione Identidade gerenciada. Em seguida, selecione + Selecionar membros.
  8. Verifique se a assinatura adequada está listada na lista suspensa Assinatura . Para Grupo de Recursos, selecione Todos os grupos de recursos.
  9. Na lista suspensa Gerenciar identidade, selecione Máquina Virtual.
  10. 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.

  1. No portal, navegue até Máquinas Virtuais e vá para sua máquina virtual do Windows e, na Visão Geral, selecione Conectar.

  2. Introduza o seu Nome de Utilizador e a Palavra-passe que adicionou quando criou a VM do Windows.

  3. Agora que você criou uma Conexão de Área de Trabalho Remota com a máquina virtual, abra o PowerShell na sessão remota.

  4. 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: