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
Internt är hanterade identiteter tjänstens huvudnamn av en särskild 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):
I följande tabell visas skillnaderna mellan de systemtilldelade och användartilldelade hanterade identiteterna:
Property | Systemtilldelad hanterad identitet | Användartilldelad hanterad identitet |
---|---|---|
Skapa | 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 | Delad 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 |
Arbetsbelastningar som körs på flera resurser och som kan dela en enda identitet. Arbetsbelastningar som behöver förhandsauktorisering till en säker resurs som en del av ett etableringsflö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
Azure Resource Manager tar emot en begäran om att aktivera den systemtilldelade hanterade identiteten på en virtuell dator.
Azure Resource Manager skapar ett huvudnamn för tjänsten i Microsoft Entra-ID för den virtuella datorns identitet. Tjänstens huvudnamn skapas i Microsoft Entra-klientorganisationen som är betrodd av prenumerationen.
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.
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. Om du vill anropa Azure Resource Manager använder du Rollbaserad åtkomstkontroll i Azure (Azure RBAC) för att tilldela lämplig roll till tjänstens huvudnamn för den virtuella datorn. Ge din kod åtkomst till den specifika hemligheten eller nyckeln i Key Vault när du anropar Key Vault.
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 anger IMDS-versionen, använd api-version=2018-02-01 eller högre.
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
- Resursparametern anger vilken tjänst som token ska skickas till. Använd
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.
Koden skickar åtkomsttoken vid ett anrop till en tjänst som stöder Microsoft Entra-autentisering.
Användartilldelad hanterad identitet
Azure Resource Manager tar emot en begäran om att skapa en användartilldelad hanterad identitet.
Azure Resource Manager skapar ett huvudnamn för tjänsten i Microsoft Entra-ID för den användartilldelade hanterade identiteten. Tjänstens huvudnamn skapas i Microsoft Entra-klientorganisationen som är betrodd av prenumerationen.
Azure Resource Manager tar emot en begäran om att konfigurera den användartilldelade hanterade identiteten på en virtuell dator och uppdaterar Azure Instance Metadata Service-identitetsslutpunkten med det användartilldelade klient-ID:t och certifikatet för den hanterade identitetstjänstens huvudnamn.
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. 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.
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:t i översikten över 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
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.
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: