Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Eine verwaltete Identität in Azure bietet eine sichere und nahtlose Möglichkeit für Anwendungen, Dienste und Automatisierungstools, um auf Azure-Ressourcen zuzugreifen, ohne Anmeldeinformationen in Code oder Konfiguration zu speichern. Im Gegensatz zu Dienstprinzipalen, die eine manuelle Verwaltung von Anmeldeinformationen erfordern, verarbeitet Azure automatisch verwaltete Identitäten und macht keine vertraulichen Geheimschlüssel verfügbar. Die Verwendung einer verwalteten Identität ist die bewährte Methode zum Schreiben sicherer Automatisierungsskripts, da sie die Authentifizierung vereinfacht und das Risiko von Verlusten an Anmeldeinformationen minimiert. Verwaltete Identitäten helfen auch dabei, Verwaltungsaufgaben sicher zu automatisieren, ohne sich auf Benutzeridentitäten zu verlassen. Berechtigungen für verwaltete Identitäten werden über Microsoft Entra verwaltet, um sicherzustellen, dass sie nur über den erforderlichen Zugriff auf Ressourcen verfügen, wodurch sowohl Sicherheit als auch Verwaltbarkeit verbessert werden.
Von Bedeutung
Ab September 2025 erfordert Azure PowerShell die mehrstufige Authentifizierung (MFA), wenn sie sich mit einer Microsoft Entra ID-Benutzeridentität anmelden. Diese Änderung verbessert die Sicherheit, wirkt sich aber möglicherweise auf Automatisierungsworkflows aus, die auf der Benutzernamen- und Kennwortauthentifizierung basieren. Weitere Informationen finden Sie unter "Auswirkungen der mehrstufigen Authentifizierung auf Azure PowerShell in Automatisierungsszenarien".
Voraussetzungen
Anmelden mit einer verwalteten Identität
Verwaltete Identitäten sind ein spezieller Dienstprinzipaltyp, der Azure-Dienste mit einer automatisch verwalteten Identität bereitstellt. Die Verwendung dieser Art von Identität erfordert keine Speicherung von Anmeldeinformationen in der Konfiguration oder im Code, um sich bei jedem Azure-Dienst zu authentifizieren, der verwaltete Identitäten unterstützt.
Es gibt zwei Arten von verwalteten Identitäten:
- Vom System zugewiesene verwaltete Identität
- Vom Benutzer zugewiesene verwaltete Identität
Verwaltete Identitäten bieten eine sichere Möglichkeit, mit anderen Azure-Diensten zu kommunizieren, ohne dass Entwickler Anmeldeinformationen verwalten müssen. Sie helfen auch, das Risiko von Verlusten an Anmeldeinformationen zu verringern.
So funktionieren verwaltete Identitäten in realen Szenarien:
- Azure verwaltet automatisch die Erstellung und Löschung der anmeldeinformationen, die von der verwalteten Identität verwendet werden.
- Ein mit einer verwalteten Identität aktivierter Azure-Dienst kann sicher auf andere Dienste zugreifen, z. B. Azure Key Vault, Azure SQL-Datenbank, Azure Blob Storage usw. mithilfe von Microsoft Entra-Token.
- Diese Identität wird direkt in Azure verwaltet, ohne dass zusätzliche Bereitstellung erforderlich ist.
Verwaltete Identitäten vereinfachen das Sicherheitsmodell, indem sie die Notwendigkeit vermeiden, Anmeldeinformationen zu speichern und zu verwalten, und sie spielen eine wichtige Rolle bei sicheren Cloudvorgängen, indem das Mit dem Umgang mit geheimen Schlüsseln verbundene Risiko reduziert wird.
Vom System zugewiesene verwaltete Identität
Azure erstellt automatisch eine vom System zugewiesene verwaltete Identität für eine Azure-Dienstinstanz (z. B. eine Azure-VM, einen App-Dienst oder Azure-Funktionen). Wenn die Dienstinstanz gelöscht wird, bereinigt Azure automatisch die Anmeldeinformationen und die dem Dienst zugeordnete Identität.
Im folgenden Beispiel wird eine Verbindung mit einer vom System zugewiesenen verwalteten Identität der Hostumgebung hergestellt. Wenn sie auf einem virtuellen Computer mit einer zugewiesenen verwalteten Identität ausgeführt wird, kann der Code sich mit der zugewiesenen Identität anmelden.
Connect-AzAccount -Identity
Vom Benutzer zugewiesene verwaltete Identität
Eine vom Benutzer zugewiesene verwaltete Identität ist eine Identität, die Sie in Microsoft Entra erstellen und verwalten. Sie kann einer oder mehreren Azure-Dienstinstanzen zugewiesen werden. Der Lebenszyklus einer vom Benutzer zugewiesenen verwalteten Identität wird getrennt von den Dienstinstanzen verwaltet, denen sie zugewiesen ist.
Wenn Sie eine vom Benutzer zugewiesene verwaltete Identität verwenden, müssen Sie die Parameter AccountId und Identity angeben, wie im folgenden Beispiel gezeigt.
Connect-AzAccount -Identity -AccountId <user-assigned-identity-clientId-or-resourceId>
Die folgenden Befehle stellen eine Verbindung mithilfe der verwalteten Identität von myUserAssignedIdentity
. Sie fügt der virtuellen Maschine die vom Benutzer zugewiesene Identität hinzu und stellt dann eine Verbindung mit der Client-ID der vom Benutzer zugewiesenen Identität her.
$identity = Get-AzUserAssignedIdentity -ResourceGroupName myResourceGroup -Name myUserAssignedIdentity
Get-AzVM -ResourceGroupName contoso -Name testvm | Update-AzVM -IdentityType UserAssigned -IdentityId $identity.Id
Connect-AzAccount -Identity -AccountId $identity.ClientId # Run on the virtual machine
Account SubscriptionName TenantId Environment
------- ---------------- -------- -----------
00000000-0000-0000-0000-000000000000 My Subscription 00000000-0000-0000-0000-000000000000 AzureCloud
Weitere Informationen finden Sie unter Konfigurieren verwalteter Identitäten für Azure-Ressourcen auf einem virtuellen Azure-Computer.
Anmelden mit einem Dienstprinzipal
Verwenden Sie den Parameter ServicePrincipal des Connect-AzAccount
Cmdlets, um sich mit einem Dienstprinzipal anzumelden. Außerdem benötigen Sie die folgenden Informationen für den Dienstprinzipal:
- AppId
- Anmeldeinformationen oder Zugriff auf das Zertifikat, das zum Erstellen des Dienstprinzipals verwendet wird
- Mieter-ID
Wie Sie sich mit einem Dienstprinzipal anmelden, hängt davon ab, ob sie für die zertifikatbasierte oder kennwortbasierte Authentifizierung konfiguriert ist.
Zertifikatbasierte Authentifizierung
Informationen zum Erstellen eines Dienstprinzipals für Azure PowerShell finden Sie unter Erstellen eines Azure-Dienstprinzipals mit Azure PowerShell.
Für die zertifikatbasierte Authentifizierung muss Azure PowerShell Informationen aus einem lokalen Zertifikatspeicher basierend auf einem Zertifikatfingerabdruck abrufen.
Connect-AzAccount -ApplicationId $appId -Tenant $tenantId -CertificateThumbprint <thumbprint>
Wenn Sie einen Dienstprinzipal anstelle einer registrierten Anwendung verwenden, geben Sie den Parameter ServicePrincipal an, und stellen Sie die AppId des Dienstprinzipals als Wert für den ApplicationId-Parameter bereit.
Connect-AzAccount -ServicePrincipal -ApplicationId $servicePrincipalId -Tenant $tenantId -CertificateThumbprint <thumbprint>
In Windows PowerShell 5.1 kann der Zertifikatspeicher mit dem PKI-Modul verwaltet und geprüft werden. Für PowerShell 7.x und höher unterscheidet sich der Prozess. Die folgenden Skripts veranschaulichen, wie sie ein vorhandenes Zertifikat in den Zertifikatspeicher importieren, auf den powerShell zugreifen kann.
Importieren eines Zertifikats in PowerShell 7.x und höher
# Import a PFX
$storeName = [System.Security.Cryptography.X509Certificates.StoreName]::My
$storeLocation = [System.Security.Cryptography.X509Certificates.StoreLocation]::CurrentUser
$store = [System.Security.Cryptography.X509Certificates.X509Store]::new($storeName, $storeLocation)
$certPath = <path to certificate>
$credentials = Get-Credential -Message "Provide PFX private key password"
$flag = [System.Security.Cryptography.X509Certificates.X509KeyStorageFlags]::Exportable
$certificate = [System.Security.Cryptography.X509Certificates.X509Certificate2]::new($certPath, $credentials.Password, $flag)
$store.Open([System.Security.Cryptography.X509Certificates.OpenFlags]::ReadWrite)
$store.Add($Certificate)
$store.Close()
Importieren eines Zertifikats in Windows PowerShell 5.1
# Import a PFX
$credentials = Get-Credential -Message 'Provide PFX private key password'
Import-PfxCertificate -FilePath <path to certificate> -Password $credentials.Password -CertStoreLocation cert:\CurrentUser\My
Kennwortbasierte Authentifizierung
Erstellen Sie einen Dienstprinzipal, der mit den Beispielen in diesem Abschnitt verwendet werden soll. Weitere Informationen zum Erstellen von Dienstprinzipalen finden Sie unter Erstellen eines Azure-Dienstprinzipals mit Azure PowerShell.
$sp = New-AzADServicePrincipal -DisplayName ServicePrincipalName
Vorsicht
Der bereitgestellte Dienstprinzipalschlüssel wird in der AzureRmContext.json
Datei in Ihrem Benutzerprofil ($env:USERPROFILE\.Azure
) gespeichert. Stellen Sie sicher, dass dieses Verzeichnis über geeignete Schutzmaßnahmen verfügt.
Verwenden Sie das Get-Credential
Cmdlet, um die Anmeldeinformationen des Dienstprinzipals als Objekt abzurufen. Dieses Cmdlet fordert einen Benutzernamen und ein Kennwort ein. Verwenden Sie die Dienstprinzipale AppId
für den Benutzernamen, und konvertieren Sie den zugehörigen secret
Nur-Text für das Kennwort.
# Retrieve the plain text password for use with Get-Credential in the next command.
$sp.PasswordCredentials.SecretText
$pscredential = Get-Credential -UserName $sp.AppId
Connect-AzAccount -ServicePrincipal -Credential $pscredential -Tenant $tenantId
Für Automatisierungsszenarien müssen Sie Anmeldeinformationen aus den Folgenden AppId
SecretText
erstellen:
$SecureStringPwd = $sp.PasswordCredentials.SecretText | ConvertTo-SecureString -AsPlainText -Force
$pscredential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $sp.AppId, $SecureStringPwd
Connect-AzAccount -ServicePrincipal -Credential $pscredential -Tenant $tenantId
Verwenden Sie beim Automatisieren von Dienstprinzipalverbindungen geeignete Kennwortspeichermethoden.
Siehe auch
- Erstellen eines Azure-Dienstprinzipals mit Azure PowerShell
- Was sind verwaltete Identitäten für Azure-Ressourcen?
- Zuweisen eines verwalteten Identitätszugriffs zu einer Ressource mithilfe von PowerShell
- Anzeigen des Dienstprinzipals einer verwalteten Identität mithilfe von PowerShell
- Connect-AzAccount
- New-AzADServicePrincipal
- Get-Credential
Azure PowerShell