Freigeben über


So verwenden Sie verwaltete Identitäten für Azure-Ressourcen auf einer Azure-VM für die Anmeldung

Dieser Artikel enthält PowerShell- und CLI-Skriptbeispiele für die Anmeldung mit verwalteten Identitäten für Azure-Ressourcen sowie eine Anleitung zu wichtigen Themen, z.B. zur Fehlerbehandlung.

Hinweis

Es wird empfohlen, das Azure Az PowerShell-Modul für die Interaktion mit Azure zu verwenden. Informationen zu den ersten Schritten finden Sie unter Installieren des Azure Az PowerShell-Moduls. Informationen zum Migrieren zum Az PowerShell-Modul finden Sie unter Migrieren von Azure PowerShell von AzureRM zum Az-Modul.

Voraussetzungen

Wenn Sie die Azure PowerShell- oder Azure CLI-Beispiele in diesem Artikel verwenden möchten, müssen Sie unbedingt die neueste Version von Azure PowerShell oder Azure CLI installieren.

Von Bedeutung

  • Für alle Beispielskripts in diesem Artikel wird davon ausgegangen, dass der Befehlszeilenclient auf einem virtuellen Computer mit verwalteten Identitäten für Azure-Ressourcen ausgeführt wird. Verwenden Sie das Feature "Verbinden" des virtuellen Computers im Azure-Portal, um remote eine Verbindung mit Ihrem virtuellen Computer herzustellen. Ausführliche Informationen zum Aktivieren verwalteter Identitäten für Azure-Ressourcen auf einem virtuellen Computer finden Sie unter Konfigurieren verwalteter Identitäten für Azure-Ressourcen auf einem virtuellen Computer mithilfe des Azure-Portals oder eines der Variantenartikel (mithilfe von PowerShell, CLI, einer Vorlage oder einem Azure SDK).
  • Um Fehler während des Ressourcenzugriffs zu verhindern, muss die verwaltete Identität des virtuellen Computers mindestens "Reader"-Zugriff auf den entsprechenden Bereich (die VM oder höher) erhalten, um Azure Resource Manager-Vorgänge auf dem virtuellen Computer zuzulassen. Ausführliche Informationen finden Sie unter Zuweisen verwalteter Identitäten für Azure-Ressourcenzugriff auf eine Ressource mithilfe des Azure-Portals .

Überblick

Verwaltete Identitäten für Azure-Ressourcen stellen ein Dienstprinzipalobjekt bereit, das erstellt wird, wenn verwaltete Identitäten für Azure-Ressourcen auf dem virtuellen Computer aktiviert werden. Der Dienstprinzipal kann Zugriff auf Azure-Ressourcen erhalten und von Skript- oder Befehlszeilenclients als Identität für die Anmeldung und den Zugriff auf Ressourcen verwendet werden. Um auf gesicherte Ressourcen unter ihrer eigenen Identität zuzugreifen, müsste ein Skriptclient traditionell Folgendes ausführen:

  • Registrierung und Zustimmung als vertrauliche und Webclientanwendung in Microsoft Entra ID
  • Anmeldung unter dem zugehörigen Dienstprinzipal mit den Anmeldeinformationen der Anwendung (wahrscheinlich im Skript eingebettet)

Bei verwalteten Identitäten für Azure-Ressourcen muss Ihr Skriptclient keines mehr tun, da er sich unter den verwalteten Identitäten für den Azure-Ressourcendienstprinzipal anmelden kann.

Azure-Befehlszeilenschnittstelle (Azure CLI)

Das folgende Skript veranschaulicht die Vorgehensweise:

  1. Anmelden bei Microsoft Entra ID unter dem Dienstprinzipal der verwalteten Identität des virtuellen Computers für Azure-Ressourcen

  2. Rufen Sie Azure Resource Manager auf, und rufen Sie die Dienstprinzipal-ID des virtuellen Computers ab. CLI kümmert sich um die automatische Verwaltung von Tokenakquisition/-verwendung für Sie. Achten Sie darauf, den Namen Ihrer virtuellen Maschine durch <VM-NAME> zu ersetzen.

    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

Das folgende Skript veranschaulicht die Vorgehensweise:

  1. Anmelden bei Microsoft Entra ID unter dem Dienstprinzipal der verwalteten Identität des virtuellen Computers für Azure-Ressourcen

  2. Rufen Sie ein Azure Resource Manager-Cmdlet auf, um Informationen über den virtuellen Computer abzurufen. PowerShell übernimmt automatisch die Verwaltung der Tokenverwendung für Sie.

    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"
    

Ressourcen-IDs für Azure-Dienste

Siehe Azure-Dienste, die die Microsoft Entra-Authentifizierung unterstützen für eine Liste von Ressourcen, die die Microsoft Entra-ID unterstützen und mit verwalteten Identitäten für Azure-Ressourcen getestet wurden, sowie deren jeweilige Ressourcen-IDs.

Anleitung zur Fehlerbehandlung

Antworten wie die folgenden können darauf hinweisen, dass die verwaltete Identität des virtuellen Computers für Azure-Ressourcen nicht ordnungsgemäß konfiguriert wurde:

  • PowerShell: Invoke-WebRequest: Es kann keine Verbindung mit dem Remoteserver hergestellt werden.
  • CLI: MSI: Fehler beim Abrufen eines Tokens von http://localhost:50342/oauth2/token mit einem Fehler: 'HTTPConnectionPool(host='localhost', port=50342)

Wenn Sie einen dieser Fehler erhalten, kehren Sie im Azure-Portal zur Azure-VM zurück und wechseln Sie zur Seite Identität. Stellen Sie sicher, dass die Systemzuweisung auf "Ja" gesetzt ist.

Nächste Schritte