Jak używać tożsamości zarządzanych dla zasobów platformy Azure na maszynie wirtualnej platformy Azure na potrzeby logowania
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.
Ten artykuł zawiera przykłady skryptów programu PowerShell i interfejsu wiersza polecenia na potrzeby logowania przy użyciu tożsamości zarządzanych dla jednostki usługi zasobów platformy Azure oraz wskazówki dotyczące ważnych tematów, takich jak obsługa błędów.
Uwaga
Do interakcji z platformą Azure zalecamy używanie modułu Azure Az w programie PowerShell. Zobacz Instalowanie programu Azure PowerShell, aby rozpocząć. Aby dowiedzieć się, jak przeprowadzić migrację do modułu Az PowerShell, zobacz Migracja programu Azure PowerShell z modułu AzureRM do modułu Az.
Wymagania wstępne
- Jeśli nie znasz funkcji tożsamości zarządzanych dla zasobów platformy Azure, zobacz to omówienie. Jeśli nie masz jeszcze konta platformy Azure, przed kontynuowaniem utwórz bezpłatne konto.
Jeśli planujesz używać przykładów programu Azure PowerShell lub interfejsu wiersza polecenia platformy Azure w tym artykule, pamiętaj o zainstalowaniu najnowszej wersji programu Azure PowerShell lub interfejsu wiersza polecenia platformy Azure.
Ważne
- Cały przykładowy skrypt w tym artykule zakłada, że klient wiersza polecenia jest uruchomiony na maszynie wirtualnej z włączonymi tożsamościami zarządzanymi dla zasobów platformy Azure. Użyj funkcji "Połączenie" maszyny wirtualnej w witrynie Azure Portal, aby zdalnie nawiązać połączenie z maszyną wirtualną. Aby uzyskać szczegółowe informacje na temat włączania tożsamości zarządzanych dla zasobów platformy Azure na maszynie wirtualnej, zobacz Konfigurowanie tożsamości zarządzanych dla zasobów platformy Azure na maszynie wirtualnej przy użyciu witryny Azure Portal lub jednego z artykułów wariantów (przy użyciu programu PowerShell, interfejsu wiersza polecenia, szablonu lub zestawu Azure SDK).
- Aby zapobiec błędom podczas uzyskiwania dostępu do zasobów, tożsamość zarządzana maszyny wirtualnej musi mieć co najmniej dostęp "Czytelnik" w odpowiednim zakresie (maszynie wirtualnej lub wyższej), aby umożliwić operacje usługi Azure Resource Manager na maszynie wirtualnej. Aby uzyskać szczegółowe informacje, zobacz Przypisywanie tożsamości zarządzanych dla zasobów platformy Azure do zasobu przy użyciu witryny Azure Portal .
Omówienie
Tożsamości zarządzane dla zasobów platformy Azure zapewniają obiekt jednostki usługi, który jest tworzony podczas włączania tożsamości zarządzanych dla zasobów platformy Azure na maszynie wirtualnej. Jednostka usługi może mieć dostęp do zasobów platformy Azure i używana jako tożsamość przez klientów skryptu/wiersza polecenia na potrzeby logowania i dostępu do zasobów. Tradycyjnie, aby uzyskać dostęp do zabezpieczonych zasobów w ramach własnej tożsamości, klient skryptu musi:
- być zarejestrowane i wyrażane na to zgodę przy użyciu identyfikatora Entra firmy Microsoft jako poufnej/internetowej aplikacji klienckiej
- zaloguj się w ramach jednostki usługi przy użyciu poświadczeń aplikacji (które są prawdopodobnie osadzone w skrypecie)
W przypadku tożsamości zarządzanych dla zasobów platformy Azure klient skryptu nie musi już wykonywać żadnych czynności, ponieważ może się zalogować w ramach tożsamości zarządzanych dla jednostki usługi zasobów platformy Azure.
Interfejs wiersza polecenia platformy Azure
Poniższy skrypt pokazuje, jak:
Zaloguj się do identyfikatora Entra firmy Microsoft w ramach tożsamości zarządzanej maszyny wirtualnej dla jednostki usługi zasobów platformy Azure
Wywołaj usługę Azure Resource Manager i uzyskaj identyfikator jednostki usługi maszyny wirtualnej. Interfejs wiersza polecenia automatycznie zarządza pozyskiwaniem/używaniem tokenów. Pamiętaj, aby zastąpić nazwę maszyny wirtualnej .
<VM-NAME>
az login --identity $spID=$(az resource list -n <VM-NAME> --query [*].identity.principalId --out tsv) echo The managed identity for Azure resources service principal ID is $spID
Azure PowerShell
Poniższy skrypt pokazuje, jak:
Zaloguj się do identyfikatora Entra firmy Microsoft w ramach tożsamości zarządzanej maszyny wirtualnej dla jednostki usługi zasobów platformy Azure
Wywołaj polecenie cmdlet usługi Azure Resource Manager, aby uzyskać informacje o maszynie wirtualnej. Program PowerShell automatycznie zarządza użyciem tokenu.
Add-AzAccount -identity # Call Azure Resource Manager to get the service principal ID for the VM's managed identity for Azure resources. $vmInfoPs = Get-AzVM -ResourceGroupName <RESOURCE-GROUP> -Name <VM-NAME> $spID = $vmInfoPs.Identity.PrincipalId echo "The managed identity for Azure resources service principal ID is $spID"
Identyfikatory zasobów dla usług platformy Azure
Zobacz Usługi platformy Azure, które obsługują uwierzytelnianie firmy Microsoft Entra, aby uzyskać listę zasobów, które obsługują identyfikator Firmy Microsoft Entra i zostały przetestowane przy użyciu tożsamości zarządzanych dla zasobów platformy Azure oraz ich odpowiednich identyfikatorów zasobów.
Wskazówki dotyczące obsługi błędów
Odpowiedzi, takie jak następujące, mogą wskazywać, że tożsamość zarządzana maszyny wirtualnej dla zasobów platformy Azure nie została poprawnie skonfigurowana:
- PowerShell: Invoke-WebRequest: Nie można nawiązać połączenia z serwerem zdalnym
- Interfejs wiersza polecenia: msi: nie można pobrać tokenu z
http://localhost:50342/oauth2/token
błędem "HTTP Połączenie ionPool(host='localhost', port=50342)
Jeśli wystąpi jeden z tych błędów, wróć do maszyny wirtualnej platformy Azure w witrynie Azure Portal i przejdź do strony Tożsamość i upewnij się, że przypisano system ma wartość "Tak".
Następne kroki
- Aby włączyć tożsamości zarządzane dla zasobów platformy Azure na maszynie wirtualnej platformy Azure, zobacz Konfigurowanie tożsamości zarządzanych dla zasobów platformy Azure na maszynie wirtualnej platformy Azure przy użyciu programu PowerShell lub Konfigurowanie tożsamości zarządzanych dla zasobów platformy Azure na maszynie wirtualnej platformy Azure przy użyciu interfejsu wiersza polecenia platformy Azure