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
- 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, utwórz bezpłatne konto.
- Uprawnienia "Właściciel" w odpowiednim zakresie (subskrypcja lub grupa zasobów) do wykonania wymaganych kroków tworzenia zasobów i zarządzania rolami. Jeśli potrzebujesz pomocy dotyczącej przypisywania ról, zobacz Przypisywanie ról platformy Azure w celu zarządzania dostępem do zasobów subskrypcji platformy Azure.
- Potrzebna jest również maszyna wirtualna z systemem Windows z włączoną przypisaną przez system tożsamościami zarządzanymi.
- Jeśli musisz utworzyć maszynę wirtualną na potrzeby tego samouczka, możesz skorzystać z artykułu zatytułowanego Tworzenie maszyny wirtualnej z włączoną tożsamością przypisaną przez system
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.
Aby włączyć tożsamość zarządzaną przypisaną przez system na nowej maszynie wirtualnej:
Zaloguj się do witryny Azure Portal.
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.
- Zaloguj się do witryny Azure Portal przy użyciu konta administratora.
- Przejdź do karty Grupy zasobów.
- Wybierz grupę zasobów, której chcesz udzielić tożsamości zarządzanej maszyny wirtualnej.
- W panelu po lewej stronie wybierz pozycję Kontrola dostępu (zarządzanie dostępem i tożsamościami).
- Wybierz pozycję Dodaj, a następnie wybierz pozycję Dodaj przypisanie roli.
- Na karcie Rola wybierz pozycję Czytelnik. Ta rola umożliwia wyświetlanie wszystkich zasobów, ale nie pozwala na wprowadzanie żadnych zmian.
- Na karcie Członkowie w polu Przypisz dostęp do wybierz pozycję Tożsamość zarządzana. Następnie wybierz pozycję + Wybierz członków.
- Upewnij się, że na liście rozwijanej Subskrypcja znajduje się odpowiednia subskrypcja. W pozycji Grupa zasobów wybierz opcję Wszystkie grupy zasobów.
- Z listy rozwijanej Zarządzanie tożsamościami wybierz pozycję Maszyna wirtualna.
- 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.
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.
Wprowadź nazwę użytkownika i hasło dodane podczas tworzenia maszyny wirtualnej z systemem Windows.
Po utworzeniu Połączenie pulpitu zdalnego z maszyną wirtualną otwórz program PowerShell w sesji zdalnej.
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: