Używanie przypisanej przez system tożsamości zarządzanej maszyny wirtualnej z systemem Linux do uzyskiwania dostępu do usługi Azure 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 przewodniku Szybki start pokazano, jak używać tożsamości zarządzanej przypisanej przez system jako tożsamości maszyny wirtualnej z systemem Linux w celu uzyskania dostępu do interfejsu API usługi Azure Resource Manager. 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

  • Znajomość tożsamości zarządzanych. Jeśli nie znasz tożsamości zarządzanych, zobacz to omówienie.
  • Konto platformy Azure, utwórz bezpłatne konto.
  • Potrzebna jest również maszyna wirtualna z systemem Linux z włączonymi tożsamościami zarządzanymi przypisanymi przez system. Jeśli masz maszynę wirtualną, ale musisz włączyć tożsamości zarządzane przypisane przez system, możesz to zrobić w sekcji tożsamości właściwości maszyny wirtualnej.

Udzielanie dostępu

Napiwek

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

W przypadku korzystania z tożsamości zarządzanych dla zasobów platformy Azure kod 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. Najpierw musimy udzielić tożsamości tej maszyny wirtualnej dostępu do zasobu w usłudze Azure Resource Manager, w tym przypadku grupy zasobów, w której znajduje się maszyna wirtualna.

  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.

    Zrzut ekranu przedstawiający dodawanie roli czytelnika do tożsamości zarządzanej.

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 Resource Manager

Aby wykonać te kroki, potrzebujesz klienta SSH. Jeśli używasz systemu Windows, możesz użyć klienta SSH w Podsystem Windows dla systemu Linux. Jeżeli potrzebujesz pomocy w konfigurowaniu kluczy klienta SSH, zobacz Jak używać kluczy SSH z systemem Windows na platformie Azure lub Jak utworzyć i użyć parę publicznego i prywatnego klucza SSH dla maszyn wirtualnych z systemem Linux na platformie Azure.

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

  2. Połącz się z maszyną wirtualną przy użyciu wybranego klienta SSH.

  3. W oknie terminalu, używając polecenia curl, prześlij żądanie do lokalnego punktu końcowego tożsamości zarządzanych dla zasobów platformy Azure, aby uzyskać token dostępu dla usługi Azure Resource Manager.   Żądanie programu curl dla tokenu dostępu znajduje się poniżej.

curl 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https://management.azure.com/' -H Metadata:true

Uwaga

Wartość parametru resource musi być dokładnie zgodna z oczekiwaniami identyfikatora Entra firmy Microsoft. W przypadku użycia identyfikatora zasobu usługi Resource Manager należy uwzględnić końcowy ukośnik w identyfikatorze URI.

Odpowiedź zawiera token dostępu wymagany do uzyskania dostępu do usługi Azure Resource Manager.

Reakcja:

{
  "access_token":"eyJ0eXAiOi...",
  "refresh_token":"",
  "expires_in":"3599",
  "expires_on":"1504130527",
  "not_before":"1504126627",
  "resource":"https://management.azure.com",
  "token_type":"Bearer"
}

Możesz użyć tego tokenu dostępu w celu uzyskania dostępu do usługi Azure Resource Manager, np. aby odczytać właściwości grupy zasobów, do której wcześniej udzielono dostępu tej maszynie wirtualnej. Zastąp wartości <SUBSCRIPTION-ID>, <RESOURCE-GROUP>i <ACCESS-TOKEN> utworzonymi wcześniej wartościami .

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 „resourceGroup”.  

curl https://management.azure.com/subscriptions/<SUBSCRIPTION-ID>/resourceGroups/<RESOURCE-GROUP>?api-version=2016-09-01 -H "Authorization: Bearer <ACCESS-TOKEN>" 

Odpowiedź z powrotem z określonymi informacjami o grupie 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 uzyskać więcej informacji na temat usługi Azure Resource Manager, zobacz: