Logga in på en Linux-dator i Azure med Azure Active Directory-autentisering (förhandsversion)Log in to a Linux virtual machine in Azure using Azure Active Directory authentication (Preview)

Du kan integrera med Azure Active Directory (AD)-autentisering för att förbättra säkerheten för Linux-datorer (VM) i Azure.To improve the security of Linux virtual machines (VMs) in Azure, you can integrate with Azure Active Directory (AD) authentication. När du använder Azure AD-autentisering för virtuella Linux-datorer kan du centralt styra och genomdriva principer som tillåter eller nekar åtkomst till de virtuella datorerna.When you use Azure AD authentication for Linux VMs, you centrally control and enforce policies that allow or deny access to the VMs. Den här artikeln visar hur du skapar och konfigurerar en Linux-VM för att använda Azure AD-autentisering.This article shows you how to create and configure a Linux VM to use Azure AD authentication.

Anteckning

Den här funktionen är en förhandsversion och rekommenderas inte för användning med virtuella produktionsdatorerna eller arbetsbelastningar.This feature is in preview and is not recommended for use with production virtual machines or workloads. Använd denna funktion på en virtuell testdator som du vill ta bort när du testar.Use this feature on a test virtual machine that you expect to discard after testing.

Det finns många fördelar med att använda Azure AD-autentisering för att logga in på virtuella Linux-datorer i Azure, inklusive:There are many benefits of using Azure AD authentication to log in to Linux VMs in Azure, including:

  • Förbättrad säkerhet:Improved security:

    • Du kan använda företagets AD autentiseringsuppgifter för att logga in på virtuella Linux-datorer.You can use your corporate AD credentials to log in to Azure Linux VMs. Det finns inget behov att skapa lokala administratörskonton och hantera autentiseringsuppgifter livslängd.There is no need to create local administrator accounts and manage credential lifetime.
    • Genom att minska dina lokala administratörskonton där behöver du inte bekymra dig om förlust/stöld av autentiseringsuppgifter, användare som konfigurerar svaga behörigheter osv.By reducing your reliance on local administrator accounts, you do not need to worry about credential loss/theft, users configuring weak credentials etc.
    • Hjälper att säkra virtuella Linux-datorer samt lösenordens komplexitet och lösenordsprinciper livslängd som konfigurerats för Azure AD-katalogen.The password complexity and password lifetime policies configured for your Azure AD directory help secure Linux VMs as well.
    • Du kan konfigurera multifaktorautentisering för att ytterligare säker inloggning till Azure-datorer.To further secure login to Azure virtual machines, you can configure multi-factor authentication.
    • Möjligheten att logga in på virtuella Linux-datorer med Azure Active Directory fungerar även för kunder som använder federationstjänster.The ability to log in to Linux VMs with Azure Active Directory also works for customers that use Federation Services.
  • Kan samarbeta: Med rollbaserad åtkomstkontroll (RBAC), kan du ange vem som kan logga in till en viss virtuell dator som en vanlig användare eller med administratörsbehörighet.Seamless collaboration: With Role-Based Access Control (RBAC), you can specify who can sign in to a given VM as a regular user or with administrator privileges. När användare ansluta till eller lämnar ditt team kan uppdatera du RBAC-principen för den virtuella datorn att bevilja åtkomst efter behov.When users join or leave your team, you can update the RBAC policy for the VM to grant access as appropriate. Den här upplevelsen är mycket enklare än att behöva Skrubba virtuella datorer för att ta bort onödiga offentliga SSH-nycklar.This experience is much simpler than having to scrub VMs to remove unnecessary SSH public keys. När medarbetare lämnar organisationen och användarkontot inaktiveras eller tas bort från Azure AD kan har de inte längre åtkomst till dina resurser.When employees leave your organization and their user account is disabled or removed from Azure AD, they no longer have access to your resources.

Azure-regioner och Linux-distributioner som stödsSupported Azure regions and Linux distributions

Följande Linux-distributioner stöds för närvarande i förhandsversionen av den här funktionen:The following Linux distributions are currently supported during the preview of this feature:

DistributionDistribution VersionVersion
CentOSCentOS CentOS 6, CentOS 7CentOS 6, CentOS 7
DebianDebian Debian 9Debian 9
openSUSEopenSUSE openSUSE Leap 42.3openSUSE Leap 42.3
RedHat Enterprise LinuxRedHat Enterprise Linux RHEL 6, RHEL 7RHEL 6, RHEL 7
SUSE Linux Enterprise ServerSUSE Linux Enterprise Server SLES 12SLES 12
Ubuntu ServerUbuntu Server Ubuntu 14.04 LTS, Ubuntu Server 16.04 och Ubuntu Server 18.04Ubuntu 14.04 LTS, Ubuntu Server 16.04, and Ubuntu Server 18.04

Följande Azure-regioner stöds för närvarande i förhandsversionen av den här funktionen:The following Azure regions are currently supported during the preview of this feature:

  • Alla globala Azure-regionerAll global Azure regions

Viktigt

Om du vill använda den här förhandsversionsfunktionen bara distribuera en Linux-distribution som stöds och i en Azure-region.To use this preview feature, only deploy a supported Linux distro and in a supported Azure region. Funktionen stöds inte i Azure Government eller nationella moln.The feature is not supported in Azure Government or sovereign clouds.

Använda Azure Cloud ShellUse Azure Cloud Shell

Azure-värdar Azure Cloud Shell, en interaktiv gränssnitts miljö som du kan använda via webbläsaren.Azure hosts Azure Cloud Shell, an interactive shell environment that you can use through your browser. Med Cloud Shell kan du använda bash antingen PowerShell eller för att arbeta med Azure-tjänster.Cloud Shell lets you use either bash or PowerShell to work with Azure services. Du kan använda Cloud Shell förinstallerade kommandon för att köra koden i den här artikeln utan att behöva installera något i din lokala miljö.You can use the Cloud Shell pre-installed commands to run the code in this article without having to install anything on your local environment.

Starta Azure Cloud Shell:To launch Azure Cloud Shell:

AlternativOption Exempel/länkExample/Link
Välj Prova i det övre högra hörnet av ett kodblock.Select Try It in the upper-right corner of a code block. Om du väljer testa kopieras inte koden automatiskt till Cloud Shell.Selecting Try It doesn't automatically copy the code to Cloud Shell. Exempel på hur du provar Azure Cloud Shell
Gå till https://shell.azure.com eller Välj knappen Starta Cloud Shell för att öppna Cloud Shell i webbläsaren.Go to https://shell.azure.com or select the Launch Cloud Shell button to open Cloud Shell in your browser. Starta Cloud Shell i ett nytt fönsterLaunch Cloud Shell in a new window
Välj knappen Cloud Shell i den övre högra meny raden i Azure Portal.Select the Cloud Shell button on the top-right menu bar in the Azure portal. Cloud Shell-knappen i Azure Portal

För att köra koden i den här artikeln i Azure Cloud Shell:To run the code in this article in Azure Cloud Shell:

  1. Öppna Cloud Shell.Open Cloud Shell.
  2. Kopiera koden genom att klicka på kopierings knappen på ett kodblock.Select the Copy button on a code block to copy the code.
  3. Klistra in koden i Cloud Shell-sessionen med CTRL+Shift+V på Windows och Linux, eller cmd+Shift+v på MacOS.Paste the code into the Cloud Shell session with Ctrl+Shift+V on Windows and Linux, or Cmd+Shift+V on macOS.
  4. Tryck på RETUR för att köra koden.Press Enter to run the code.

Om du väljer att installera och använda CLI lokalt kräver den här självstudien att du kör Azure CLI version 2.0.31 eller senare.If you choose to install and use the CLI locally, this tutorial requires that you are running the Azure CLI version 2.0.31 or later. Kör az --version för att hitta versionen.Run az --version to find the version. Om du behöver installera eller uppgradera kan du läsa Installera Azure CLI.If you need to install or upgrade, see Install Azure CLI.

Skapa en virtuell Linux-datorCreate a Linux virtual machine

Skapa en resursgrupp med az gruppen skapa, skapa en virtuell dator med az vm skapa med hjälp av en distribution som stöds och i en region som stöds.Create a resource group with az group create, then create a VM with az vm create using a supported distro and in a supported region. I följande exempel distribuerar en virtuell dator med namnet myVM som använder Ubuntu 16.04 LTS i en resursgrupp med namnet myResourceGroup i den usasödracentrala region.The following example deploys a VM named myVM that uses Ubuntu 16.04 LTS into a resource group named myResourceGroup in the southcentralus region. I följande exempel kan du ange en egen resursgrupp och namn på virtuella datorer efter behov.In the following examples, you can provide your own resource group and VM names as needed.

az group create --name myResourceGroup --location southcentralus

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

Det tar några minuter att skapa den virtuella datorn och stödresurser.It takes a few minutes to create the VM and supporting resources.

Installera Azure AD-kontoinloggning VM-tilläggInstall the Azure AD login VM extension

Om du vill logga in på en Linux VM med Azure AD-autentiseringsuppgifter, installera Azure Active Directory-inloggning VM-tillägget.To log in to a Linux VM with Azure AD credentials, install the Azure Active Directory login VM extension. VM-tillägg är litet program som ger efter distributionen konfiguration och automatisering av uppgifter i Azure virtual machines.VM extensions are small applications that provide post-deployment configuration and automation tasks on Azure virtual machines. Använd az vm-tilläggsuppsättningen att installera den AADLoginForLinux tillägget på den virtuella datorn med namnet myVM i den myResourceGroup resurs grupp:Use az vm extension set to install the AADLoginForLinux extension on the VM named myVM in the myResourceGroup resource group:

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

Den provisioningState av lyckades visas när tillägget har installerats på den virtuella datorn.The provisioningState of Succeeded is shown once the extension is installed on the VM.

Konfigurera rolltilldelningar för den virtuella datornConfigure role assignments for the VM

Azure rollbaserad åtkomstkontroll (RBAC)-princip bestämmer vem som kan logga in på den virtuella datorn.Azure Role-Based Access Control (RBAC) policy determines who can log in to the VM. Två RBAC-roller används för att auktorisera VM inloggningen:Two RBAC roles are used to authorize VM login:

  • Administratörsinloggning för virtuell dator: Användare med den här rollen tilldelad kan logga in på Azure-datorer med Windows-administratör eller Linux-rotanvändare.Virtual Machine Administrator Login: Users with this role assigned can log in to an Azure virtual machine with Windows Administrator or Linux root user privileges.
  • Användarinloggning för virtuell dator: Användare med den här rollen tilldelad kan logga in på Azure-datorer med vanliga användarbehörigheter.Virtual Machine User Login: Users with this role assigned can log in to an Azure virtual machine with regular user privileges.

Anteckning

Om du vill tillåta en användare att logga in på den virtuella datorn via SSH måste du tilldela antingen den administratörsinloggning för virtuell dator eller användarinloggning för virtuell dator roll.To allow a user to log in to the VM over SSH, you must assign either the Virtual Machine Administrator Login or Virtual Machine User Login role. En Azure-användare med den ägare eller deltagare roller som är tilldelade för en virtuell dator inte automatiskt har behörighet att logga in på den virtuella datorn via SSH.An Azure user with the Owner or Contributor roles assigned for a VM do not automatically have privileges to log in to the VM over SSH.

I följande exempel används az-rolltilldelning skapa att tilldela den administratörsinloggning för virtuell dator rollen till den virtuella datorn för din aktuella Azure-användare.The following example uses az role assignment create to assign the Virtual Machine Administrator Login role to the VM for your current Azure user. Användarnamnet för din aktiva Azure-konto hämtas med az konto show, och omfång är inställd på den virtuella datorn som skapades i föregående steg med az vm show.The username of your active Azure account is obtained with az account show, and the scope is set to the VM created in a previous step with az vm show. Omfånget kan också tilldelas en resurs gruppen eller på prenumerationsnivån och normal RBAC arv av behörigheter gäller.The scope could also be assigned at a resource group or subscription level, and normal RBAC inheritance permissions apply. Mer information finns i rollbaserade åtkomstkontrollerFor more information, see Role-Based Access Controls

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

Anteckning

Om din AAD-domän och användarnamn inloggningsdomän inte matchar, måste du ange objekt-ID för ditt konto med den --tilldelad person-objekt-id, inte bara användarnamnet för --tilldelad person.If your AAD domain and logon username domain do not match, you must specify the object ID of your user account with the --assignee-object-id, not just the username for --assignee. Du kan hämta objekt-ID för ditt konto med az ad user list.You can obtain the object ID for your user account with az ad user list.

Mer information om hur du använder RBAC för att hantera åtkomst till din Azure-prenumerationsresurser finns i använda den Azure CLI, Azure-portalen, eller Azure PowerShell.For more information on how to use RBAC to manage access to your Azure subscription resources, see using the Azure CLI, Azure portal, or Azure PowerShell.

Du kan också konfigurera Azure AD för att kräva multifaktorautentisering för en viss användare att logga in på Linux-datorn.You can also configure Azure AD to require multi-factor authentication for a specific user to sign in to the Linux virtual machine. Mer information finns i Kom igång med Azure Multi-Factor Authentication i molnet.For more information, see Get started with Azure Multi-Factor Authentication in the cloud.

Logga in på Linux-datorLog in to the Linux virtual machine

Först visa offentliga IP-adressen för den virtuella datorn med az vm show:First, view the public IP address of your VM with az vm show:

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

Logga in på den virtuella Linux-datorer med hjälp av Azure AD-autentiseringsuppgifter.Log in to the Azure Linux virtual machine using your Azure AD credentials. Den -l parametern kan du ange din egen adress för Azure AD-konto.The -l parameter lets you specify your own Azure AD account address. Konto-adresser ska anges i alla gemener.Account addresses should be entered in all lowercase. Använd den offentliga IP-adressen för den virtuella datorn från föregående kommando:Use the public IP address of your VM from the previous command:

ssh -l azureuser@contoso.onmicrosoft.com publicIps

Du uppmanas att logga in på Azure AD med en gång använda kod i https://microsoft.com/devicelogin .You are prompted to sign in to Azure AD with a one-time use code at https://microsoft.com/devicelogin. Kopiera och klistra in koden enstaka användning i inloggningssidan enheten som visas i följande exempel:Copy and paste the one-time use code into the device login page, as shown in the following example:

~$ ssh -l azureuser@contoso.onmicrosoft.com 13.65.237.247
To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code FJS3K6X4D to authenticate. Press ENTER when ready.

När du uppmanas, anger du dina autentiseringsuppgifter för Azure AD-inloggningen på inloggningssidan.When prompted, enter your Azure AD login credentials at the login page. Följande meddelande visas i webbläsaren när du har autentiserats:The following message is shown in the web browser when you have successfully authenticated:

You have signed in to the Microsoft Azure Linux Virtual Machine Sign-In application on your device.

Stäng webbläsarfönstret, återgå till en SSH-Kommandotolken och tryck på den RETUR nyckel.Close the browser window, return to the SSH prompt, and press the Enter key. Du är nu inloggad på virtuella Linux-datorer med behörigheterna som tilldelats som VM User eller VM-administratör.You are now signed in to the Azure Linux virtual machine with the role permissions as assigned, such as VM User or VM Administrator. Om ditt konto tilldelas den administratörsinloggning för virtuell dator roll, som du kan använda den sudo att köra kommandon som kräver rotprivilegier.If your user account is assigned the Virtual Machine Administrator Login role, you can use the sudo to run commands that require root privileges.

Sudo och AAD-inloggningSudo and AAD login

Första gången du kör sudo, blir du ombedd att autentisera en gång.The first time that you run sudo, you will be asked to authenticate a second time. Om du inte vill behöva autentisera igen för att köra sudo, kan du redigera filen sudoers /etc/sudoers.d/aad_admins och Ersätt den här raden:If you don't want to have to authenticate again to run sudo, you can edit your sudoers file /etc/sudoers.d/aad_admins and replace this line:

%aad_admins ALL=(ALL) ALL

med den här raden:With this line:

%aad_admins ALL=(ALL) NOPASSWD:ALL

Felsöka problem med användarinloggningTroubleshoot sign-in issues

Några vanliga fel när du försöker SSH med autentiseringsuppgifter för Azure AD innehåller inga RBAC-roller som har tilldelats och upprepade uppmaningar att logga in.Some common errors when you try to SSH with Azure AD credentials include no RBAC roles assigned, and repeated prompts to sign in. Använd följande avsnitt för att åtgärda dessa problem.Use the following sections to correct these issues.

Åtkomst nekad: RBAC-roll som inte har tilldelatsAccess denied: RBAC role not assigned

Om du ser följande fel i din SSH-Kommandotolken, kontrollera att du har konfigurerat RBAC-principer för den virtuella datorn som ger användaren antingen den administratörsinloggning för virtuell dator eller användarinloggning för virtuell datorroll:If you see the following error on your SSH prompt, verify that you have configured RBAC policies for the VM that grants the user either the Virtual Machine Administrator Login or Virtual Machine User Login role:

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

Fortsatt SSH-inloggning anvisningarnaContinued SSH sign-in prompts

Om du har slutfört autentiseringen steg i en webbläsare kan du omedelbart ombedd att logga in igen med en ny kod.If you successfully complete the authentication step in a web browser, you may be immediately prompted to sign in again with a fresh code. Det här felet beror vanligtvis på ett matchningsfel mellan inloggning namn som du angav i SSH-Kommandotolken och det konto som du har loggat in på Azure AD med.This error is typically caused by a mismatch between the sign-in name you specified at the SSH prompt and the account you signed in to Azure AD with. Du åtgärdar problemet:To correct this issue:

  • Kontrollera att du har angett prompten SSH-inloggning namn är korrekt.Verify that the sign-in name you specified at the SSH prompt is correct. Ett skrivfel i inloggningsnamnet kan orsaka ett matchningsfel mellan inloggning namn som du angav i SSH-Kommandotolken och det konto som du har loggat in på Azure AD med.A typo in the sign-in name could cause a mismatch between the sign-in name you specified at the SSH prompt and the account you signed in to Azure AD with. Exempel: du har angett azuresuer@contoso.onmicrosoft.com i stället för azureuser@contoso.onmicrosoft.com.For example, you typed azuresuer@contoso.onmicrosoft.com instead of azureuser@contoso.onmicrosoft.com.
  • Om du har flera användarkonton kan du kontrollera att du inte anger ett annat användarkonto i webbläsarfönstret när du loggar in till Azure AD.If you have multiple user accounts, make sure you don't provide a different user account in the browser window when signing in to Azure AD.
  • Linux är en skiftlägeskänslig operativsystem.Linux is a case-sensitive operating system. Det är skillnad mellan ”Azureuser@contoso.onmicrosoft.com” och ”azureuser@contoso.onmicrosoft.com”, vilket kan orsaka ett matchningsfel.There is a difference between 'Azureuser@contoso.onmicrosoft.com' and 'azureuser@contoso.onmicrosoft.com', which can cause a mismatch. Se till att du anger UPN-namnet med rätt skiftlägeskänslighet i SSH-Kommandotolken.Make sure that you specify the UPN with the correct case-sensitivity at the SSH prompt.

Feedback från förhandsversionenPreview feedback

Lämna feedback om den här förhandsversionen funktion eller rapporten problem som används i den Azure AD-FeedbackforumShare your feedback about this preview feature or report issues using it on the Azure AD feedback forum

Nästa stegNext steps

Mer information om Azure Active Directory finns i vad är Azure Active DirectoryFor more information on Azure Active Directory, see What is Azure Active Directory