Vad är hanterade identiteter för Azure-resurser?What is managed identities for Azure resources?

Hanterade identiteter för Azure-resurser är en funktion i Azure Active Directory.Managed identities for Azure resources is a feature of Azure Active Directory. Alla Azure-tjänster som stöder hanterade identiteter för Azure-resurser har sin egen tidslinje.Each of the Azure services that support managed identities for Azure resources are subject to their own timeline. Var noga med att kontrollera tillgänglighetsstatus för hanterade identiteter för din resurs och kända problem innan du börjar.Make sure you review the availability status of managed identities for your resource and known issues before you begin.

En vanlig utmaning vid utvecklingen av molnprogram är hur man ska hantera autentiseringsuppgifterna i koden som krävs för autentisering mot molntjänsterna.A common challenge when building cloud applications is how to manage the credentials in your code for authenticating to cloud services. Det är viktigt att dessa autentiseringsuppgifter skyddas.Keeping the credentials secure is an important task. Helst bör autentiseringsuppgifterna aldrig visas på utvecklarnas arbetsstationer eller checkas in i källkontrollen.Ideally, the credentials never appear on developer workstations and aren't checked into source control. Azure Key Vault är ett sätt att lagra autentiseringsuppgifter, hemligheter och andra nycklar på ett säkert sätt, men din kod måste autentisera mot Key Vault för att kunna hämta dem.Azure Key Vault provides a way to securely store credentials, secrets, and other keys, but your code has to authenticate to Key Vault to retrieve them.

Funktionen Hanterade identiteter för Azure-resurser i Azure Active Directory (Azure AD) löser det här problemet.The managed identities for Azure resources feature in Azure Active Directory (Azure AD) solves this problem. Funktionen förser Azure-tjänster med en automatiskt hanterad identitet i Azure AD.The feature provides Azure services with an automatically managed identity in Azure AD. Du kan använda identiteten för att autentisera mot alla tjänster som stöder Azure AD-autentisering, inklusive Key Vault, utan att du behöver lägga in några autentiseringsuppgifter i din kod.You can use the identity to authenticate to any service that supports Azure AD authentication, including Key Vault, without any credentials in your code.

Funktionen Hanterade identiteter för Azure-resurser är kostnadsfri med Azure AD för Azure-prenumerationer.The managed identities for Azure resources feature is free with Azure AD for Azure subscriptions. Ingen extra kostnad utgår.There's no additional cost.

Anteckning

Hanterade identiteter för Azure-resurser är det nya namnet på tjänsten som tidigare hade namnet Hanterad tjänstidentitet (MSI).Managed identities for Azure resources is the new name for the service formerly known as Managed Service Identity (MSI).

TerminologiTerminology

Följande termer används i de hanterade identiteterna för Azure-resursernas dokumentationsuppsättning:The following terms are used throughout the managed identities for Azure resources documentation set:

  • Klient-ID – En unik identifierare som genereras av Azure AD och som kopplas till ett program och tjänstens huvudnamn under den första etableringen.Client ID - a unique identifier generated by Azure AD that is tied to an application and service principal during its initial provisioning.
  • Ägar-ID – Objekt-ID för tjänstens huvudnamnsobjekt för din hanterade identitet som används för att bevilja rollbaserad åtkomst till en Azure-resurs.Principal ID - the object ID of the service principal object for your managed identity that is used to grant role-based access to an Azure resource.
  • Azure Instance Metadata Service (IMDS) – En REST-slutpunkt som är tillgänglig för alla virtuella IaaS-datorer som skapas via Azure Resource Manager.Azure Instance Metadata Service (IMDS) - a REST endpoint accessible to all IaaS VMs created via the Azure Resource Manager. Slutpunkten är tillgänglig på en välkänd icke-dirigerbar IP-adress (169.254.169.254), som endast kan nås från den virtuella datorn.The endpoint is available at a well-known non-routable IP address (169.254.169.254) that can be accessed only from within the VM.

Hur fungerar hanterade identiteter för Azure-resurser?How does the managed identities for Azure resources work?

Det finns två typer av hanterade identiteter:There are two types of managed identities:

  • En systemtilldelad hanterad identitet aktiveras direkt på en instans av Azure-tjänsten.A system-assigned managed identity is enabled directly on an Azure service instance. När identiteten har aktiverats skapar Azure en identitet för instansen i den Azure AD-klientorganisation som är betrodd av prenumerationen för instansen.When the identity is enabled, Azure creates an identity for the instance in the Azure AD tenant that's trusted by the subscription of the instance. När identiteten har skapats etableras autentiseringsuppgifterna till instansen.After the identity is created, the credentials are provisioned onto the instance. Livscykeln för en systemtilldelad identitet är direkt knuten till den tjänstinstans i Azure som den är aktiverad på.The lifecycle of a system-assigned identity is directly tied to the Azure service instance that it's enabled on. Om instansen tas bort rensar Azure automatiskt autentiseringsuppgifterna och identiteten i Azure AD.If the instance is deleted, Azure automatically cleans up the credentials and the identity in Azure AD.
  • En användartilldelad hanterad identitet skapas som en fristående Azure-resurs.A user-assigned managed identity is created as a standalone Azure resource. När den skapas skapar Azure en identitet i den Azure AD-klientorganisation som är betrodd av den prenumeration som används.Through a create process, Azure creates an identity in the Azure AD tenant that's trusted by the subscription in use. När identiteten har skapats kan den tilldelas till en eller flera tjänstinstanser i Azure.After the identity is created, the identity can be assigned to one or more Azure service instances. Livscykeln för en användartilldelad identitet hanteras separat från livscykeln för de Azure-tjänstinstanser som den är tilldelad till.The lifecycle of a user-assigned identity is managed separately from the lifecycle of the Azure service instances to which it's assigned.

Internt är hanterade identiteter tjänstens huvud namn av en särskild typ, som är låsta för att endast användas med Azure-resurser.Internally, managed identities are service principals of a special type, which are locked to only be used with Azure resources. När den hanterade identiteten tas bort tas motsvarande tjänst objekt bort automatiskt.When the managed identity is deleted, the corresponding service principal is automatically removed.

Din kod kan använda en hanterad identitet för att begära åtkomsttoken för tjänster som stöder Azure AD-autentisering.Your code can use a managed identity to request access tokens for services that support Azure AD authentication. Azure tar hand om de autentiseringsuppgifter som används av tjänstinstansen.Azure takes care of rolling the credentials that are used by the service instance.

Följande diagram visar hur hanterade tjänstidentiteter fungerar med virtuella datorer i Azure (VM):The following diagram shows how managed service identities work with Azure virtual machines (VMs):

Hanterade tjänstidentiteter och virtuella datorer i Azure

EgenskapProperty Systemtilldelad hanterad identitetSystem-assigned managed identity Användartilldelad hanterad identitetUser-assigned managed identity
FlikarCreation Skapas som en del av en Azure-resurs (till exempel en virtuell Azure-dator eller Azure App Service)Created as part of an Azure resource (for example, an Azure virtual machine or Azure App Service) Skapas som fristående Azure-resursCreated as a stand-alone Azure resource
LivscykelLifecycle Delad livs cykel med den Azure-resurs som den hanterade identiteten skapas med.Shared lifecycle with the Azure resource that the managed identity is created with.
När den överordnade resursen tas bort, tas även den hanterade identiteten bort.When the parent resource is deleted, the managed identity is deleted as well.
Oberoende livs cykel.Independent life-cycle.
Måste tas bort explicit.Must be explicitly deleted.
Dela mellan Azure-resurserSharing across Azure resources Kan inte delas.Cannot be shared.
Den kan bara kopplas till en enda Azure-resurs.It can only be associated with a single Azure resource.
Kan delasCan be shared
Samma användare-tilldelade hanterade identitet kan associeras med fler än en Azure-resurs.The same user-assigned managed identity can be associated with more than one Azure resource.
Vanliga användarsituationerCommon use cases Arbets belastningar som finns i en enda Azure-resursWorkloads that are contained within a single Azure resource
Arbets belastningar för vilka du behöver oberoende identiteter.Workloads for which you need independent identities.
Till exempel ett program som körs på en enskild virtuell datorFor example, an application that runs on a single virtual machine
Arbets belastningar som körs på flera resurser och som kan dela en enda identitet.Workloads that run on multiple resources and which can share a single identity.
Arbets belastningar som behöver förautentisering till en säker resurs som en del av ett etablerings flöde.Workloads that need pre-authorization to a secure resource as part of a provisioning flow.
Arbets belastningar där resurser återvinns ofta, men behörigheter bör vara konsekventa.Workloads where resources are recycled frequently, but permissions should stay consistent.
Till exempel en arbets belastning där flera virtuella datorer behöver åtkomst till samma resursFor example, a workload where multiple virtual machines need to access the same resource

Så här fungerar en systemtilldelad hanterad identitet med en virtuell dator i AzureHow a system-assigned managed identity works with an Azure VM

  1. Azure Resource Manager tar emot en begäran om att aktivera den systemtilldelade hanterade identiteten på en virtuell dator.Azure Resource Manager receives a request to enable the system-assigned managed identity on a VM.

  2. Azure Resource Manager skapar ett huvudnamn för tjänsten i Azure AD som representerar den virtuella datorns identitet.Azure Resource Manager creates a service principal in Azure AD for the identity of the VM. Tjänstens huvudnamn skapas i den Azure AD-klientorganisation som är betrodd av prenumerationen.The service principal is created in the Azure AD tenant that's trusted by the subscription.

  3. Azure Resource Manager konfigurerar identiteten på den virtuella datorn genom att uppdatera Azure Instance Metadata Service Identity-slutpunkten med klient-ID och certifikat för tjänstens huvud namn.Azure Resource Manager configures the identity on the VM by updating the Azure Instance Metadata Service identity endpoint with the service principal client ID and certificate.

  4. När den virtuella datorn har fått en identitet använder du informationen om tjänstens huvudnamn för att ge den virtuella datorn åtkomst till Azure-resurser.After the VM has an identity, use the service principal information to grant the VM access to Azure resources. Använd rollbaserad åtkomstkontroll (RBAC) i Azure AD när du anropar Azure Resource Manager för att tilldela lämplig roll till tjänstens huvudnamn för den virtuella datorn.To call Azure Resource Manager, use role-based access control (RBAC) in Azure AD to assign the appropriate role to the VM service principal. Ge din kod åtkomst till den specifika hemligheten eller nyckeln i Key Vault när du anropar Key Vault.To call Key Vault, grant your code access to the specific secret or key in Key Vault.

  5. Din kod som körs på den virtuella datorn kan begära en token från Azure instance metadata service-slutpunkt, som endast kan nås från den virtuella datorn:http://169.254.169.254/metadata/identity/oauth2/tokenYour code that's running on the VM can request a token from the Azure Instance Metadata service endpoint, accessible only from within the VM: http://169.254.169.254/metadata/identity/oauth2/token

    • Resursparametern anger vilken tjänst som token ska skickas till.The resource parameter specifies the service to which the token is sent. Använd resource=https://management.azure.com/ för att autentisera mot Azure Resource Manager.To authenticate to Azure Resource Manager, use resource=https://management.azure.com/.
    • API-versionsparametern anger IMDS-versionen, använd api-version=2018-02-01 eller högre.API version parameter specifies the IMDS version, use api-version=2018-02-01 or greater.
  6. Ett anrop görs till Azure AD för att begära en åtkomsttoken (se steg 5) med klient-ID:t och certifikatet som konfigurerades i steg 3.A call is made to Azure AD to request an access token (as specified in step 5) by using the client ID and certificate configured in step 3. Azure AD returnerar en åtkomsttoken för JSON Web Token (JWT).Azure AD returns a JSON Web Token (JWT) access token.

  7. Koden skickar åtkomsttoken vid ett anrop till en tjänst som stöder Azure AD-autentisering.Your code sends the access token on a call to a service that supports Azure AD authentication.

Så här fungerar en användartilldelad hanterad identitet med en virtuell dator i AzureHow a user-assigned managed identity works with an Azure VM

  1. Azure Resource Manager tar emot en begäran om att skapa en användartilldelad hanterad identitet.Azure Resource Manager receives a request to create a user-assigned managed identity.

  2. Azure Resource Manager skapar ett huvudnamn för tjänsten i Azure AD som representerar den användartilldelade hanterade identiteten.Azure Resource Manager creates a service principal in Azure AD for the user-assigned managed identity. Tjänstens huvudnamn skapas i den Azure AD-klientorganisation som är betrodd av prenumerationen.The service principal is created in the Azure AD tenant that's trusted by the subscription.

  3. Azure Resource Manager tar emot en begäran om att konfigurera den tilldelade hanterade identiteten på en virtuell dator och uppdaterar slut punkten för Azure Instance Metadata Service-identiteten med klient-ID och certifikat för den användardefinierade hanterade identitets tjänstens huvud namn.Azure Resource Manager receives a request to configure the user-assigned managed identity on a VM and updates the Azure Instance Metadata Service identity endpoint with the user-assigned managed identity service principal client ID and certificate.

  4. När den användartilldelade hanterade identiteten har skapats använder du informationen om tjänstens huvudnamn för att ge identiteten åtkomst till Azure-resurser.After the user-assigned managed identity is created, use the service principal information to grant the identity access to Azure resources. Använd rollbaserad åtkomstkontroll (RBAC) i Azure AD när du anropar Azure Resource Manager för att tilldela lämplig roll till tjänstens huvudnamn för den användartilldelade identiteten.To call Azure Resource Manager, use RBAC in Azure AD to assign the appropriate role to the service principal of the user-assigned identity. Ge din kod åtkomst till den specifika hemligheten eller nyckeln i Key Vault när du anropar Key Vault.To call Key Vault, grant your code access to the specific secret or key in Key Vault.

    Anteckning

    Du kan även utföra det här steget före steg 3.You can also do this step before step 3.

  5. Din kod som körs på den virtuella datorn kan begära en token från Azure-Instance Metadata Service identitetens slut punkt, endast tillgänglig från den virtuella datorn:http://169.254.169.254/metadata/identity/oauth2/tokenYour code that's running on the VM can request a token from the Azure Instance Metadata Service identity endpoint, accessible only from within the VM: http://169.254.169.254/metadata/identity/oauth2/token

    • Resursparametern anger vilken tjänst som token ska skickas till.The resource parameter specifies the service to which the token is sent. Använd resource=https://management.azure.com/ för att autentisera mot Azure Resource Manager.To authenticate to Azure Resource Manager, use resource=https://management.azure.com/.
    • Parametern för klient-ID anger den identitet som token har begärts för.The client ID parameter specifies the identity for which the token is requested. Det här värdet krävs för att lösa tvetydigheter om mer än en användartilldelad identitet finns på samma virtuella dator.This value is required for disambiguation when more than one user-assigned identity is on a single VM.
    • Parametern för API-version anger Azure Instance Metadata Service-versionen.The API version parameter specifies the Azure Instance Metadata Service version. Använd api-version=2018-02-01 eller senare.Use api-version=2018-02-01 or higher.
  6. Ett anrop görs till Azure AD för att begära en åtkomsttoken (se steg 5) med klient-ID:t och certifikatet som konfigurerades i steg 3.A call is made to Azure AD to request an access token (as specified in step 5) by using the client ID and certificate configured in step 3. Azure AD returnerar en åtkomsttoken för JSON Web Token (JWT).Azure AD returns a JSON Web Token (JWT) access token.

  7. Koden skickar åtkomsttoken vid ett anrop till en tjänst som stöder Azure AD-autentisering.Your code sends the access token on a call to a service that supports Azure AD authentication.

Hur använder jag hanterade identiteter för Azure-resurser?How can I use managed identities for Azure resources?

Gå självstudiekurserna nedan om du vill veta hur du använder hanterade identiteter för att få åtkomst till olika Azure-resurser.To learn how to use managed identities to access different Azure resources, try these tutorials.

Anteckning

Se kursen om att implementera hanterade identiteter för Microsoft Azure-resurser för mer information om hanterade identiteter, däribland detaljerade videogenomgångar av flera scenarier som stöds.Check out the Implementing Managed Identities for Microsoft Azure Resources course for more information about managed identities, including detailed video walkthroughs of several supported scenarios.

Lär dig hur du använder en hanterad identitet med en virtuell Windows-dator:Learn how to use a managed identity with a Windows VM:

Lär dig hur du använder en hanterad identitet med en virtuell Linux-dator:Learn how to use a managed identity with a Linux VM:

Lär dig hur du använder en hanterad identitet med andra Azure-tjänster:Learn how to use a managed identity with other Azure services:

Vilka Azure-tjänster stöder funktionen?What Azure services support the feature?

Hanterade identiteter för Azure-resurser kan användas för att autentisera till tjänster som stöder Azure AD-autentisering.Managed identities for Azure resources can be used to authenticate to services that support Azure AD authentication. En lista över Azure-tjänster som stöder funktionen Hanterade identiteter för Azure-resurser finns i Tjänster som stöder hanterade identiteter för Azure-resurser.For a list of Azure services that support the managed identities for Azure resources feature, see Services that support managed identities for Azure resources.

Nästa stegNext steps

Kom igång med funktionen Hanterade identiteter för Azure-resurser med följande snabbstarter:Get started with the managed identities for Azure resources feature with the following quickstarts: