Dela via


Så här fungerar hanterade identiteter för Azure-resurser med virtuella Azure-datorer

Hanterade identiteter för Azure-resurser ger Azure-tjänster en automatiskt hanterad identitet i Microsoft Entra ID. Du kan använda den här identiteten för att autentisera mot alla tjänster som har stöd för Microsoft Entra-autentisering, utan att behöva ha några autentiseringsuppgifter i koden.

I den här artikeln får du lära dig hur hanterade identiteter fungerar med virtuella Azure-datorer (VM).

Hur det fungerar

Hanterade identiteter är internt tjänstprincipaler av en specifik typ, som endast kan användas med Azure-resurser. När den hanterade identiteten tas bort tas motsvarande tjänsthuvudnamn bort automatiskt. När en användartilldelad eller systemtilldelad identitet skapas utfärdar MSRP (Managed Identity Resource Provider) dessutom ett certifikat internt till den identiteten.

Koden kan använda en hanterad identitet för att begära åtkomsttoken för tjänster som stöder Microsoft Entra-autentisering. Azure tar hand om de autentiseringsuppgifter som används av tjänstinstansen.

Följande diagram visar hur hanterade tjänstidentiteter fungerar med virtuella datorer i Azure (VM):

Diagram som visar hur hanterade tjänstidentiteter associeras med virtuella Azure-datorer, hämtar en åtkomsttoken och anropar en skyddad Microsoft Entra-resurs.

I följande tabell visas skillnaderna mellan de systemtilldelade och användartilldelade hanterade identiteterna:

Egendom Systemtilldelad hanterad identitet Användartilldelad hanterad identitet
Skapelse Skapades som en del av en Azure-resurs (till exempel en virtuell Azure-dator eller Azure App Service). Skapad som en fristående Azure-resurs.
Livscykel Delar livscykel med den Azure-resurs som den hanterade identiteten skapas med.
När den överordnade resursen tas bort tas även den hanterade identiteten bort.
Oberoende livscykel.
Måste tas bort uttryckligen.
Dela mellan Azure-resurser Det går inte att dela.
Den kan bara associeras med en enda Azure-resurs.
Kan delas.
Samma användartilldelade hanterade identitet kan associeras med mer än en Azure-resurs.
Vanliga användningsfall Arbetsbelastningar som finns i en enda Azure-resurs.
Arbetsbelastningar som du behöver oberoende identiteter för.
Till exempel ett program som körs på en enda virtuell dator
Arbetslaster som kör på flera resurser och kan dela en enda identitet.
Arbetsuppgifter som behöver förgodkännande till en säker resurs som en del av ett provisioneringsflöde.
Arbetsbelastningar där resurser återanvänds ofta, men behörigheter bör förbli konsekventa.
Till exempel en arbetsbelastning där flera virtuella datorer behöver komma åt samma resurs

Systemtilldelad hanterad identitet

  1. Azure Resource Manager tar emot en begäran om att aktivera den systemtilldelade hanterade identiteten på en virtuell dator.

  2. Azure Resource Manager skapar ett tjänsthuvudnamn i Microsoft Entra ID för identiteten för den virtuella datorn. Tjänstens huvudnamn skapas i prenumerationens betrodda Microsoft Entra-klientorganisation.

  3. Azure Resource Manager uppdaterar identiteten för den virtuella datorn med hjälp av Azure Instance Metadata Service-identitetsslutpunkten (för Windows och Linux) och tillhandahåller slutpunkten med klient-ID och certifikat för tjänstens huvudnamn.

  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. För att anropa Azure Resource Manager använder du Rollbaserad åtkomstkontroll i Azure (Azure RBAC) för att tilldela lämplig roll till den virtuella datorns tjänsteprincipal. Ge din kod åtkomst till den specifika hemligheten eller nyckeln i Key Vault när du anropar Key Vault.

  5. Din kod som körs på den virtuella datorn kan begära en token från tjänstslutpunkten för Azure Instance Metadata, som endast är tillgänglig från den virtuella datorn: http://169.254.169.254/metadata/identity/oauth2/token

    • Resursparametern anger vilken tjänst som token ska skickas till. Använd resource=https://management.azure.com/ för att autentisera mot Azure Resource Manager.
    • API-versionsparametern specificerar vilken IMDS-version som används. Använd api-version=2018-02-01 eller senare.

    I följande exempel visas hur du använder CURL för att göra en begäran till den lokala slutpunkten för hanterad identitet för att hämta en åtkomsttoken för Azure Instance Metadata Service.

    curl 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https%3A%2F%2Fstorage.azure.com%2F' -H Metadata:true
    
  6. Ett anrop görs till Microsoft Entra-ID för att begära en åtkomsttoken (som anges i steg 5) med hjälp av klient-ID:t och certifikatet som konfigurerades i steg 3. Microsoft Entra ID returnerar en JSON Web Token (JWT) åtkomsttoken.

  7. Koden skickar åtkomsttoken vid ett anrop till en tjänst som stöder Microsoft Entra-autentisering.

Användartilldelad hanterad identitet

  1. Azure Resource Manager tar emot en begäran om att skapa en användartilldelad hanterad identitet.

  2. Azure Resource Manager skapar ett huvudnamn för tjänsten i Microsoft Entra-ID för den användartilldelade hanterade identiteten. Tjänstehuvudnamnet skapas i prenumerationens betrodda Microsoft Entra-klientorganisation.

  3. Azure Resource Manager tar emot en begäran om att konfigurera en användartilldelad hanterad identitet på en virtuell dator och uppdaterar identitetsslutpunkten för Azure Instance Metadata Service med tjänstehuvudmannens klient-ID och certifikat för den användartilldelade hanterade identiteten.

  4. När den användartilldelade hanterade identiteten har skapats använder du tjänstens huvudinformation för att ge identiteten åtkomst till Azure-resurser. Om du vill anropa Azure Resource Manager använder du Azure RBAC för att tilldela lämplig roll till tjänstens huvudnamn för den användartilldelade identiteten. Ge din kod åtkomst till den specifika hemligheten eller nyckeln i Key Vault när du anropar Key Vault.

    Kommentar

    Du kan även utföra det här steget före steg 3.

  5. Din kod som körs på den virtuella datorn kan begära en token från Azure Instance Metadata Service-identitetsslutpunkten, som endast är tillgänglig från den virtuella datorn: http://169.254.169.254/metadata/identity/oauth2/token

    • Resursparametern anger vilken tjänst som token ska skickas till. Använd resource=https://management.azure.com/ för att autentisera mot Azure Resource Manager.

    • Parametern client_id anger den identitet som token begärs för. 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. Du hittar klient-ID i översikten över Managed Identity:

      Skärmbild som visar hur du kopierar klient-ID för hanterad identitet.

    • Parametern för API-version anger Azure Instance Metadata Service-versionen. Använd api-version=2018-02-01 eller senare.

      I följande exempel visas hur du använder CURL för att göra en begäran till den lokala slutpunkten för hanterad identitet för att hämta en åtkomsttoken för Azure Instance Metadata Service.

      curl 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https%3A%2F%2Fstorage.azure.com%2F&client_id=00001111-aaaa-2222-bbbb-3333cccc4444' -H Metadata:true
      
  6. Ett anrop görs till Microsoft Entra-ID för att begära en åtkomsttoken (som anges i steg 5) med hjälp av klient-ID:t och certifikatet som konfigurerades i steg 3. Microsoft Entra ID returnerar en JSON-webbtoken (JWT) åtkomsttoken.

  7. Koden skickar åtkomsttoken vid ett anrop till en tjänst som stöder Microsoft Entra-autentisering.

Nästa steg

Kom igång med funktionen Hanterade identiteter för Azure-resurser med följande snabbstarter: