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

Zarządzane tożsamości dla zasobów platformy Azure to funkcja usługi Azure Active Directory. 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 Azure Resource Manager przy użyciu Windows wirtualnej 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. Umożliwiają uwierzytelnianie w usługach obsługujących uwierzytelnianie usługi Azure AD bez potrzeby wprowadzania poświadczeń do kodu. Omawiane kwestie:

  • 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

  • Podstawowa wiedza na temat tożsamości zarządzanych. Jeśli nie znasz funkcji tożsamości zarządzanych dla zasobów platformy Azure, zobacz to omówienie.
  • Konto platformy Azure, zarejestruj się, aby uzyskać bezpłatne konto.
  • Uprawnienia "Właściciel" w odpowiednim zakresie (Twojej subskrypcji lub grupie zasobów) do wykonywania wymaganych kroków tworzenia zasobów i zarządzania rolami. Jeśli potrzebujesz pomocy w przypisaniu ról, zobacz Przypisywanie ról platformy Azure w celu zarządzania dostępem do zasobów subskrypcji platformy Azure.
  • Potrzebujesz również maszyny Windows wirtualnej z włączonymi tożsamościami zarządzanymi przypisanymi przez system.
    • Jeśli musisz utworzyć maszynę wirtualną na potrzeby tego samouczka, możesz wykonać czynności z artykułu zatytułowanego Tworzenie maszyny wirtualnej z włączoną tożsamością przypisaną przez system

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

Przy użyciu tożsamości zarządzanych dla zasobów platformy Azure kod może uzyskać tokeny dostępu w celu uwierzytelniania w zasobach, które obsługują uwierzytelnianie usługi Azure AD, Azure Resource Manager obsługuje uwierzytelnianie usługi Azure AD. Musimy udzielić przypisanej przez system tożsamości zarządzanej tej maszyny wirtualnej dostępu do zasobu Resource Manager, w tym przypadku do grupy zasobów, w której utworzono maszynę wirtualną. Przypisz rolę Czytelnik do tożsamości zarządzanej w zakresie grupy zasobów utworzonej dla maszyny Windows wirtualnej.

Aby uzyskać szczegółowe instrukcje, zobacz Przypisywanie ról platformy Azure przy użyciu Azure Portal.

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 musisz użyć programu PowerShell. Jeśli program PowerShell nie został zainstalowany, pobierz go stąd.

  1. W portalu przejdź do pozycji Maszyny wirtualne, a następnie przejdź do swojej maszyny wirtualnej z systemem Windows i w pozycji Przegląd kliknij przycisk Połącz.

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

  3. Teraz, po utworzeniu serwera Podłączanie 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ładnie dopasowana do tego, czego oczekujemy od usługi Azure AD. 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: