Używanie przypisanej przez system tożsamości zarządzanej maszyny wirtualnej z systemem Windows do uzyskiwania dostępu do usługi Resource Manager

Tożsamości zarządzane dla zasobów platformy Azure to funkcja identyfikatora Entra firmy Microsoft. Każda usługa platformy Azure obsługująca tożsamości zarządzane dla zasobów platformy Azure ma własną oś czasu. Pamiętaj, aby przed rozpoczęciem sprawdzić stan dostępności tożsamości zarządzanych dla swojego zasobu i znane problemy.

W tym samouczku pokazano, jak uzyskać dostęp do interfejsu API usługi Azure Resource Manager przy użyciu maszyny wirtualnej z systemem Windows z włączoną tożsamością zarządzaną przypisaną przez system. Tożsamości zarządzane dla zasobów platformy Azure są automatycznie zarządzane przez platformę Azure i umożliwiają uwierzytelnianie w usługach obsługujących uwierzytelnianie firmy Microsoft Entra bez konieczności wstawiania poświadczeń do kodu. Dowiedz się, jak odbywa się:

  • Udzielanie maszynie wirtualnej dostępu do grupy zasobów w usłudze Azure Resource Manager
  • Uzyskiwanie tokenu dostępu przy użyciu tożsamości maszyny wirtualnej oraz używanie go do wywołania usługi Azure Resource Manager

Wymagania wstępne

Włącz

Włączenie tożsamości zarządzanej przypisanej przez system jest jednym kliknięciem. Można ją włączyć podczas tworzenia maszyny wirtualnej lub we właściwościach istniejącej maszyny wirtualnej.

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

Aby włączyć tożsamość zarządzaną przypisaną przez system na nowej maszynie wirtualnej:

  1. Zaloguj się do witryny Azure Portal.

  2. Create a virtual machine with system-assigned identity enabled (Tworzenie maszyny wirtualnej z tożsamością przypisaną przez system)

Udzielanie maszynie wirtualnej dostępu do grupy zasobów w usłudze Resource Manager

Napiwek

Kroki opisane w tym artykule mogą się nieznacznie różnić w zależności od portalu, od którego zaczynasz.

Korzystając z tożsamości zarządzanych dla zasobów platformy Azure, aplikacja może uzyskać tokeny dostępu do uwierzytelniania w zasobach obsługujących uwierzytelnianie firmy Microsoft Entra. Interfejs API usługi Azure Resource Manager obsługuje uwierzytelnianie firmy Microsoft Entra. Udzielamy tożsamości tej maszyny wirtualnej dostępu do zasobu w usłudze Azure Resource Manager, w tym przypadku grupy zasobów. Przypisujemy rolę Czytelnik do tożsamości zarządzanej w zakresie grupy zasobów.

  1. Zaloguj się do witryny Azure Portal przy użyciu konta administratora.
  2. Przejdź do karty Grupy zasobów.
  3. Wybierz grupę zasobów, której chcesz udzielić tożsamości zarządzanej maszyny wirtualnej.
  4. W panelu po lewej stronie wybierz pozycję Kontrola dostępu (zarządzanie dostępem i tożsamościami).
  5. Wybierz pozycję Dodaj, a następnie wybierz pozycję Dodaj przypisanie roli.
  6. Na karcie Rola wybierz pozycję Czytelnik. Ta rola umożliwia wyświetlanie wszystkich zasobów, ale nie pozwala na wprowadzanie żadnych zmian.
  7. Na karcie Członkowie w polu Przypisz dostęp do wybierz pozycję Tożsamość zarządzana. Następnie wybierz pozycję + Wybierz członków.
  8. Upewnij się, że na liście rozwijanej Subskrypcja znajduje się odpowiednia subskrypcja. W pozycji Grupa zasobów wybierz opcję Wszystkie grupy zasobów.
  9. Z listy rozwijanej Zarządzanie tożsamościami wybierz pozycję Maszyna wirtualna.
  10. Na koniec na liście rozwijanej Wybierz maszynę wirtualną z systemem Windows wybierz pozycję Zapisz.

Uzyskiwanie tokenu dostępu przy użyciu przypisanej przez system tożsamości zarządzanej maszyny wirtualnej i używanie jej do wywołania usługi Azure Resource Manager

W tej części należy użyć programu PowerShell . Jeśli program PowerShell nie został zainstalowany, pobierz go stąd.

  1. W portalu przejdź do pozycji Maszyny wirtualne i przejdź do maszyny wirtualnej z systemem Windows, a następnie w obszarze Przegląd wybierz pozycję Połączenie.

  2. Wprowadź nazwę użytkownika i hasło dodane podczas tworzenia maszyny wirtualnej z systemem Windows.

  3. Po utworzeniu Połączenie pulpitu zdalnego z maszyną wirtualną otwórz program PowerShell w sesji zdalnej.

  4. Używając polecenia cmdlet Invoke-WebRequest, wyślij żądanie do lokalnego punktu końcowego tożsamości zarządzanej dla zasobów platformy Azure, aby uzyskać token dostępu na potrzeby usługi 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"}
    

    Uwaga

    Wartość parametru "resource" musi być dokładnym dopasowaniem tego, czego oczekuje identyfikator Entra firmy Microsoft. W przypadku użycia identyfikatora zasobu usługi Azure Resource Manager należy uwzględnić końcowy ukośnik w identyfikatorze URI.

    Następnie wyodrębnij pełną odpowiedź, która jest przechowywana w ciągu w formacie JavaScript Object Notation (JSON) w obiekcie $response.

    $content = $response.Content | ConvertFrom-Json
    

    Następnie wyodrębnij token dostępu z odpowiedzi.

    $ArmToken = $content.access_token
    

    Na koniec wywołaj usługę Azure Resource Manager przy użyciu tokenu dostępu. W tym przykładzie używamy również polecenia cmdlet Invoke-WebRequest, aby wysłać wywołanie do usługi Azure Resource Manager i uwzględnić token dostępu w nagłówku autoryzacji.

    (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
    

    Uwaga

    W adresie URL rozróżniana jest wielkość liter, więc upewnij się, że użyto takich samych wartości jak wcześniej, podczas nazywania grupy zasobów — z wielką literą „G” w nazwie „resourceGroups”.

    Poniższe polecenie zwraca szczegóły grupy zasobów:

    {"id":"/subscriptions/98f51385-2edc-4b79-bed9-7718de4cb861/resourceGroups/DevTest","name":"DevTest","location":"westus","properties":{"provisioningState":"Succeeded"}}
    

Następne kroki

W tym przewodniku Szybki start przedstawiono sposób używania tożsamości zarządzanej przypisanej przez system w celu uzyskania dostępu do interfejsu API usługi Azure Resource Manager. Aby dowiedzieć się więcej o usłudze Azure Resource Manager, zobacz: