Veraltet: Anmelden bei einem virtuellen Linux-Computer in Azure mit Azure Active Directory mithilfe der Gerätecodeflussauthentifizierung

Vorsicht

Das in diesem Artikel beschriebene Feature für die öffentliche Vorschau wurde am 15. August 2021 nicht mehr unterstützt.

Dieses Feature wird durch die Möglichkeit ersetzt, azure AD-basierte SSH mit openSSH-zertifikatbasierter Authentifizierung zu verwenden. Dieses Feature ist jetzt allgemein verfügbar! Weitere Informationen finden Sie im Artikel: Anmelden bei einem virtuellen Linux-Computer in Azure mit Azure Active Directory mithilfe der zertifikatbasierten SSH-Authentifizierung. Informationen zum Migrieren von der alten Version zu dieser Version finden Sie unter Migrieren von der vorherigen Version (Vorschauversion).

Um die Sicherheit virtueller Linux-Computer (VMs) in Azure zu verbessern, können Sie die Azure Active Directory(AD)-Authentifizierung integrieren. Wenn Sie die Azure AD-Authentifizierung für Linux-VMs verwenden, steuern und erzwingen Sie Richtlinien, die den Zugriff auf die virtuellen Computer zulassen oder verweigern. In diesem Artikel erfahren Sie, wie Sie eine Linux-VM für die Verwendung der Azure AD-Authentifizierung erstellen und konfigurieren.

Es gibt viele Vorteile der Verwendung der Azure AD-Authentifizierung, um sich bei Linux-VMs in Azure anzumelden, darunter:

  • Verbesserte Sicherheit:

    • Sie können Ihre AD-Anmeldeinformationen ihres Unternehmens verwenden, um sich bei Azure Linux-VMs anzumelden. Es ist nicht erforderlich, lokale Administratorkonten zu erstellen und die Lebensdauer von Anmeldeinformationen zu verwalten.
    • Indem Sie Ihre Abhängigkeit von lokalen Administratorkonten verringern, müssen Sie sich keine Sorgen mehr um den Verlust oder Diebstahl von Zugangsdaten machen. Außerdem verhindern Sie, dass Benutzer schwache Zugangsdaten konfigurieren.
    • Die für Ihr Azure AD-Verzeichnis konfigurierten Richtlinien für die Kennwortkomplexität und die Kennwortlebensdauer unterstützen auch die Sicherung von Linux-VMs.
    • Um die Anmeldung bei virtuellen Azure-Computern weiter zu sichern, können Sie die mehrstufige Authentifizierung konfigurieren.
    • Die Möglichkeit, sich bei Linux-VMs mit Azure Active Directory anzumelden, funktioniert auch für Kunden, die Verbunddienste verwenden.
  • Nahtlose Zusammenarbeit: Mit der rollenbasierten Azure-Zugriffssteuerung (Azure RBAC) können Sie angeben, wer sich bei einem bestimmten virtuellen Computer als regulärer Benutzer oder mit Administratorrechten anmelden kann. Wenn Benutzer Ihrem Team beitreten oder es verlassen, können Sie die Azure RBAC-Richtlinie für den virtuellen Computer aktualisieren, um den Zugriff entsprechend zuzuweisen. Diese Erfahrung ist viel einfacher als das Säubern von VMs (virtuelle Maschinen), um unnötige SSH-öffentliche Schlüssel zu entfernen. Wenn Mitarbeiter Ihre Organisation verlassen und ihr Benutzerkonto deaktiviert oder aus Azure AD entfernt wird, haben sie keinen Zugriff mehr auf Ihre Ressourcen.

Unterstützte Azure-Regionen und Linux-Verteilungen

Die folgenden Linux-Distributionen werden derzeit während der Vorschau dieses Features unterstützt:

Verteilung Version
CentOS CentOS 6, CentOS 7
Debian Debian 9
openSUSE openSUSE Leap 42.3
RedHat Enterprise Linux RHEL 6, RHEL 7
SUSE Linux Enterprise Server SLES 12
Ubuntu Server Ubuntu 14.04 LTS, Ubuntu Server 16.04 und Ubuntu Server 18.04

Von Bedeutung

Die Vorschau wird in Azure Government oder souveränen Clouds nicht unterstützt.

Es wird nicht unterstützt, diese Erweiterung auf Azure Kubernetes Service (AKS)-Clustern zu verwenden. Weitere Informationen finden Sie unter Supportrichtlinien für AKS.

Wenn Sie die CLI lokal installieren und verwenden möchten, erfordert dieses Lernprogramm, dass Sie die Azure CLI-Version 2.0.31 oder höher ausführen. Führen Sie az --version aus, um die Version zu ermitteln. Wenn Sie Azure CLI installieren oder aktualisieren müssen, lesen Sie " Installieren von Azure CLI".

Netzwerkanforderungen

Um die Azure AD-Authentifizierung für Ihre Linux-VMs in Azure zu aktivieren, müssen Sie sicherstellen, dass Ihre VMs-Netzwerkkonfiguration ausgehenden Zugriff auf die folgenden Endpunkte über TCP-Port 443 zulässt:

  • https://login.microsoftonline.com
  • https://login.windows.net
  • https://device.login.microsoftonline.com
  • https://pas.windows.net
  • https://management.azure.com
  • https://packages.microsoft.com

Hinweis

Derzeit können Azure-Netzwerksicherheitsgruppen nicht für virtuelle Computer konfiguriert werden, die mit azure AD-Authentifizierung aktiviert sind.

Erstellen eines virtuellen Linux-Computers

Erstellen Sie eine Ressourcengruppe mit az group create, und erstellen Sie dann einen virtuellen Computer mit az vm create unter Verwendung einer unterstützten Distribution und in einer unterstützten Region. Im folgenden Beispiel wird eine VM mit dem Namen myVM bereitgestellt, die Ubuntu 16.04 LTS in einer Ressourcengruppe namens myResourceGroup in der Region "southcentralus " verwendet. In den folgenden Beispielen können Sie bei Bedarf eigene Ressourcengruppen und VM-Namen bereitstellen.

az group create --name myResourceGroup --location southcentralus

az vm create \
    --resource-group myResourceGroup \
    --name myVM \
    --image UbuntuLTS \
    --admin-username azureuser \
    --generate-ssh-keys

Das Erstellen des virtuellen Computers und der unterstützenden Ressourcen dauert einige Minuten.

Installieren der Azure AD-Anmelde-VM-Erweiterung

Hinweis

Wenn Sie diese Erweiterung auf einer zuvor erstellten VM bereitstellen, stellen Sie sicher, dass der Computer mindestens 1 GB Arbeitsspeicher zugewiesen hat, sonst kann die Erweiterung nicht installiert werden.

Um sich bei einer Linux-VM mit Azure AD-Anmeldeinformationen anzumelden, installieren Sie die Azure Active Directory-Anmelde-VM-Erweiterung. VM-Erweiterungen sind kleine Anwendungen, die Konfigurations- und Automatisierungsaufgaben auf virtuellen Azure-Computern nach der Bereitstellung ermöglichen. Verwenden Sie az vm extension set, um die Erweiterung AADLoginForLinux auf der VM namens myVM in der Ressourcengruppe myResourceGroup zu installieren.

az vm extension set \
    --publisher Microsoft.Azure.ActiveDirectory.LinuxSSH \
    --name AADLoginForLinux \
    --resource-group myResourceGroup \
    --vm-name myVM

Der provisioningState von Succeeded wird angezeigt, sobald die Erweiterung erfolgreich auf dem virtuellen Computer installiert wurde. Der virtuelle Computer benötigt einen ausgeführten VM-Agent, um die Erweiterung zu installieren. Weitere Informationen finden Sie unter VM Agent Overview.

Konfigurieren der Rollenzuweisungen für den virtuellen Computer

Die Azure-Richtlinie für die rollenbasierte Zugriffssteuerung (Azure RBAC) bestimmt, wer sich bei der VM anmelden kann. Zur Autorisierung der VM-Anmeldung werden zwei Azure-Rollen verwendet:

  • Administratoranmeldung für virtuelle Computer: Benutzer, denen diese Rolle zugewiesen ist, können sich mit Windows-Administrator- oder Linux-Stammbenutzerberechtigungen bei einem virtuellen Azure-Computer anmelden.
  • Benutzeranmeldung für virtuelle Computer: Benutzer, denen diese Rolle zugewiesen ist, können sich mit regulären Benutzerberechtigungen bei einem virtuellen Azure-Computer anmelden.

Hinweis

Damit sich ein Benutzer über SSH bei der VM anmelden kann, müssen Sie entweder die Anmelderolle " Administrator für virtuelle Computer" oder " Benutzeranmeldung virtueller Computer " zuweisen. Die Rollen "Administratoranmeldung für virtuelle Computer" und "Benutzeranmeldung virtueller Computer" verwenden dataActions und können daher nicht auf Verwaltungsgruppenebene zugewiesen werden. Derzeit können diese Rollen nur im Abonnement, in der Ressourcengruppe oder im Ressourcenumfang zugewiesen werden. Ein Azure-Benutzer mit den Rollen "Besitzer" oder "Mitwirkender" , die für einen virtuellen Computer zugewiesen sind, verfügen nicht automatisch über Berechtigungen, sich über SSH bei der VM anzumelden.

Das folgende Beispiel verwendet az role assignment create, um die Rolle für die Administratoranmeldung der virtuellen Maschine Ihrem aktuellen Azure-Benutzer zuzuweisen. Der Benutzername Ihres aktiven Azure-Kontos wird mit az account show abgerufen, und der Bereich wird auf den in einem vorherigen Schritt erstellten virtuellen Computer mit az vm show festgelegt. Der Bereich kann auch auf Ressourcengruppen- oder Abonnementebene zugewiesen werden, und normale Azure RBAC-Vererbungsberechtigungen gelten. Weitere Informationen finden Sie unter Azure RBAC.

username=$(az account show --query user.name --output tsv)
vm=$(az vm show --resource-group myResourceGroup --name myVM --query id -o tsv)

az role assignment create \
    --role "Virtual Machine Administrator Login" \
    --assignee $username \
    --scope $vm

Hinweis

Wenn Ihre AAD-Domäne und die Anmeldebenutzernamendomäne nicht übereinstimmen, müssen Sie die Objekt-ID Ihres Benutzerkontos mit der ID "--assignee-object-id" angeben, nicht nur den Benutzernamen für --assignee. Sie können die Objekt-ID für Ihr Benutzerkonto mit az ad user list abrufen.

Weitere Informationen zur Verwendung von Azure RBAC zum Verwalten des Zugriffs auf Ihre Azure-Abonnementressourcen finden Sie unter Verwendung der Azure CLI, des Azure-Portals oder von Azure PowerShell.

Verwenden des bedingten Zugriffs

Sie können Richtlinien für bedingten Zugriff erzwingen, z. B. mehrstufige Authentifizierung oder Benutzeranmeldungsrisikoüberprüfung, bevor Sie den Zugriff auf Linux-VMs in Azure autorisieren, die mit azure AD-Anmeldung aktiviert sind. Um die Richtlinie für bedingten Zugriff anzuwenden, müssen Sie in der Auswahloption für Cloud-Apps oder Aktionen die App "Microsoft Azure Linux Virtual Machine Sign-In" auswählen und dann das Anmelderisiko als Bedingung verwenden und/oder die mehrfaktorielle Authentifizierung als Zugriffssteuerung erfordern.

Warnung

Die aktivierte/erzwungene Multi-Faktor-Authentifizierung von Azure AD pro Benutzer wird für VM-Anmeldungen nicht unterstützt.

Melden Sie sich beim virtuellen Linux-Computer an

Zeigen Sie zunächst die öffentliche IP-Adresse Ihrer VM mit az vm an:

az vm show --resource-group myResourceGroup --name myVM -d --query publicIps -o tsv

Melden Sie sich mit Ihren Azure AD-Anmeldeinformationen beim virtuellen Azure Linux-Computer an. Mit dem -l Parameter können Sie Ihre eigene Azure AD-Kontoadresse angeben. Ersetzen Sie das Beispielkonto durch Ihr eigenes Konto. Kontoadressen sollten in allen Kleinbuchstaben eingegeben werden. Ersetzen Sie die Beispiel-IP-Adresse durch die öffentliche IP-Adresse Ihrer VM aus dem vorherigen Befehl.

ssh -l azureuser@contoso.onmicrosoft.com 10.11.123.456

Sie werden aufgefordert, sich bei Azure AD mit einem einmal verwendeten Code bei https://microsoft.com/deviceloginAzure AD anzumelden. Kopieren Sie den einmal verwendeten Code, und fügen Sie ihn in die Geräteanmeldungsseite ein.

Wenn Sie dazu aufgefordert werden, geben Sie Ihre Azure AD-Anmeldeinformationen auf der Anmeldeseite ein.

Die folgende Meldung wird im Webbrowser angezeigt, wenn Sie sich erfolgreich authentifiziert haben: You have signed in to the Microsoft Azure Linux Virtual Machine Sign-In application on your device.

Schließen Sie das Browserfenster, kehren Sie zur SSH-Eingabeaufforderung zurück, und drücken Sie die EINGABETASTE .

Sie sind jetzt bei dem virtuellen Azure Linux-Computer mit den rollenberechtigungen wie zugewiesen angemeldet, z. B. VM-Benutzer oder VM-Administrator. Wenn Ihrem Benutzerkonto die Administratoranmeldungsrolle für virtuelle Computer zugewiesen ist, können Sie sudo Befehle ausführen, die Stammberechtigungen erfordern.

Sudo und Azure Active Directory-Anmeldung

Wenn Sie sudo zum ersten Mal ausführen, werden Sie aufgefordert, sich ein zweites Mal zu authentifizieren. Wenn Sie sich nicht erneut authentifizieren möchten, um sudo auszuführen, können Sie die Datei /etc/sudoers.d/aad_admins sudoers bearbeiten und diese Zeile ersetzen:

%aad_admins ALL=(ALL) ALL

Mit dieser Zeile:

%aad_admins ALL=(ALL) NOPASSWD:ALL

Beheben von Problemen bei der Anmeldung

Einige häufige Fehler, die auftreten können, wenn Sie versuchen, SSH mit Azure AD-Anmeldeinformationen zu verwenden, sind, dass keine Azure-Rollen zugewiesen sind und dass es wiederholt Aufforderungen zum Einloggen gibt. Verwenden Sie die folgenden Abschnitte, um diese Probleme zu beheben.

Zugriff verweigert: Azure-Rolle nicht zugewiesen

Wenn auf Ihrer SSH-Eingabeaufforderung der folgende Fehler angezeigt wird, stellen Sie sicher, dass Sie Azure RBAC-Richtlinien für den virtuellen Computer konfiguriert haben, die dem Benutzer entweder die Administratoranmeldungsrolle des virtuellen Computers oder die Benutzeranmeldungsrolle des virtuellen Computers erteilt:

login as: azureuser@contoso.onmicrosoft.com
Using keyboard-interactive authentication.
To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code FJX327AXD to authenticate. Press ENTER when ready.
Using keyboard-interactive authentication.
Access denied:  to sign-in you be assigned a role with action 'Microsoft.Compute/virtualMachines/login/action', for example 'Virtual Machine User Login'
Access denied

Hinweis

Wenn Probleme mit Azure-Rollenzuweisungen auftreten, lesen Sie die Problembehandlung bei Azure RBAC.

Fortgesetzte SSH-Anmeldeaufforderungen

Wenn Sie den Authentifizierungsschritt in einem Webbrowser erfolgreich abgeschlossen haben, werden Sie möglicherweise sofort aufgefordert, sich erneut mit einem neuen Code anzumelden. Dieser Fehler wird in der Regel durch einen Konflikt zwischen dem Anmeldenamen verursacht, den Sie an der SSH-Eingabeaufforderung angegeben haben, und dem Konto, mit dem Sie sich bei Azure AD angemeldet haben. So beheben Sie dieses Problem:

  • Vergewissern Sie sich, dass der Anmeldename, den Sie an der SSH-Eingabeaufforderung angegeben haben, korrekt ist. Ein Tippfehler im Anmeldenamen kann zu einem Konflikt zwischen dem Anmeldenamen führen, den Sie an der SSH-Eingabeaufforderung angegeben haben, und dem Konto, mit dem Sie sich bei Azure AD angemeldet haben. Zum Beispiel haben Sie azuresuer@contoso.onmicrosoft.com anstelle von azureuser@contoso.onmicrosoft.com eingegeben.
  • Wenn Sie über mehrere Benutzerkonten verfügen, stellen Sie sicher, dass Sie beim Anmelden bei Azure AD kein anderes Benutzerkonto im Browserfenster angeben.
  • Linux ist ein betriebssystem, das zwischen Groß- und Kleinschreibung unterscheidet. Es gibt einen Unterschied zwischen 'Azureuser@contoso.onmicrosoft.com' und 'azureuser@contoso.onmicrosoft.com', was zu einem Konflikt führen kann. Stellen Sie sicher, dass Sie den UPN mit der richtigen Groß-/Kleinschreibung an der SSH-Kommandozeile angeben.

Weitere Einschränkungen

Benutzer, die Zugriffsrechte über geschachtelte Gruppen oder Rollenzuweisungen erben, werden derzeit nicht unterstützt. Dem Benutzer oder der Gruppe muss die erforderlichen Rollenzuweisungen direkt zugewiesen werden. Beispielsweise gewährt die Verwendung von Verwaltungsgruppen oder geschachtelten Gruppenrollenzuweisungen nicht die richtigen Berechtigungen, damit sich der Benutzer anmelden kann.

Vorschau des Feedbacks

Teilen Sie Ihr Feedback zu diesem Vorschaufeature, oder melden Sie Probleme mithilfe des Azure AD-Feedbackforums.

Nächste Schritte

Weitere Informationen zu Azure Active Directory finden Sie unter "Was ist Azure Active Directory".