Dela via


Identitetsfederation för arbetsbelastning

Den här artikeln innehåller en översikt över arbetsbelastningsidentitetsfederation för programvaruarbetsbelastningar. Med hjälp av arbetsbelastningsidentitetsfederation kan du komma åt Microsoft Entra-skyddade resurser utan att behöva hantera hemligheter (för scenarier som stöds).

Du kan använda arbetsbelastningsidentitetsfederation i scenarier som GitHub Actions, arbetsbelastningar som körs på Kubernetes eller arbetsbelastningar som körs på beräkningsplattformar utanför Azure.

Varför ska jag använda arbetsbelastningsidentitetsfederation?

Titta på den här videon om du vill veta varför du använder arbetsbelastningsidentitetsfederation.

Vanligtvis behöver en programvaruarbetsbelastning (till exempel ett program, en tjänst, ett skript eller ett containerbaserat program) en identitet för att kunna autentisera och komma åt resurser eller kommunicera med andra tjänster. När dessa arbetsbelastningar körs i Azure kan du använda hanterade identiteter och Azure-plattformen hanterar autentiseringsuppgifterna åt dig. Du kan dock bara använda hanterade identiteter för programvaruarbetsbelastningar som körs i Azure. För en programvaruarbetsbelastning som körs utanför Azure måste du använda programautentiseringsuppgifter (en hemlighet eller ett certifikat) för att få åtkomst till Microsoft Entra-skyddade resurser (till exempel Azure, Microsoft Graph, Microsoft 365 eller resurser från tredje part). Dessa autentiseringsuppgifter utgör en säkerhetsrisk och måste lagras på ett säkert sätt och roteras regelbundet. Du riskerar också tjänstavbrott om autentiseringsuppgifterna upphör att gälla.

Du använder arbetsbelastningsidentitetsfederation för att konfigurera en användartilldelad hanterad identitet eller appregistrering i Microsoft Entra-ID för att lita på token från en extern identitetsprovider (IdP), till exempel GitHub eller Google. Den användartilldelade hanterade identiteten eller appregistreringen i Microsoft Entra-ID blir en identitet för programvaruarbetsbelastningar som körs, till exempel i lokala Kubernetes- eller GitHub Actions-arbetsflöden. När förtroenderelationen har skapats utbyter din externa programvaruarbetsbelastning betrodda token från den externa IdP:t för åtkomsttoken från Microsofts identitetsplattform. Din programvaruarbetsbelastning använder den åtkomsttoken för att få åtkomst till de Microsoft Entra-skyddade resurser som arbetsbelastningen har beviljats åtkomst till. Du eliminerar underhållsbördan för manuellt hantering av autentiseringsuppgifter och eliminerar risken för att hemligheter läcker eller att certifikat upphör att gälla.

Stödda scenarier

Följande scenarier stöds för åtkomst till Microsoft Entra-skyddade resurser med hjälp av arbetsbelastningsidentitetsfederation:

  • Arbetsbelastningar som körs på kubernetes-kluster (Azure Kubernetes Service (AKS), Amazon Web Services EKS, Google Kubernetes Engine (GKE) eller lokalt). Upprätta en förtroenderelation mellan din användartilldelade hanterade identitet eller app i Microsoft Entra-ID och en Kubernetes-arbetsbelastning (beskrivs i översikten över arbetsbelastningsidentitet).
  • GitHub Actions. Konfigurera först en förtroenderelation mellan din användartilldelade hanterade identitet eller ditt program i Microsoft Entra-ID och en GitHub-lagringsplats i administrationscentret för Microsoft Entra eller med hjälp av Microsoft Graph. Konfigurera sedan ett GitHub Actions-arbetsflöde för att hämta en åtkomsttoken från Microsofts identitetsprovider och få åtkomst till Azure-resurser.
  • Google Cloud. Konfigurera först en förtroenderelation mellan din användartilldelade hanterade identitet eller app i Microsoft Entra-ID och en identitet i Google Cloud. Konfigurera sedan din programvaruarbetsbelastning som körs i Google Cloud för att hämta en åtkomsttoken från Microsofts identitetsprovider och få åtkomst till Microsoft Entra-skyddade resurser. Se Åtkomst till Microsoft Entra-skyddade resurser från en app i Google Cloud.
  • Arbetsbelastningar som körs i Amazon Web Services (AWS). Konfigurera först en förtroenderelation mellan din användartilldelade hanterade identitet eller app i Microsoft Entra-ID och en identitet i Amazon Cognito. Konfigurera sedan din programvaruarbetsbelastning som körs i AWS för att hämta en åtkomsttoken från Microsofts identitetsprovider och få åtkomst till Microsoft Entra-skyddade resurser. Se Arbetsbelastningsidentitetsfederation med AWS.
  • Andra arbetsbelastningar som körs på beräkningsplattformar utanför Azure. Konfigurera en förtroenderelation mellan din användartilldelade hanterade identitet eller ditt program i Microsoft Entra ID och den externa IdP:t för beräkningsplattformen. Du kan använda token som utfärdats av plattformen för att autentisera med Microsofts identitetsplattform och anropa API:er i Microsofts ekosystem. Använd flödet för klientautentiseringsuppgifter för att hämta en åtkomsttoken från Microsofts identitetsplattform och skicka in identitetsproviderns JWT i stället för att skapa en själv med hjälp av ett lagrat certifikat.
  • SPIFFE och SPIRE är en uppsättning plattformsoberoende standarder med öppen källkod för att tillhandahålla identiteter till dina programvaruarbetsbelastningar som distribueras mellan plattformar och molnleverantörer. Konfigurera först en förtroenderelation mellan din användartilldelade hanterade identitet eller app i Microsoft Entra-ID och ett SPIFFE-ID för en extern arbetsbelastning. Konfigurera sedan din externa programvaruarbetsbelastning för att hämta en åtkomsttoken från Microsofts identitetsprovider och få åtkomst till Microsoft Entra-skyddade resurser. Se Arbetsbelastningsidentitetsfederation med SPIFFE och SPIRE.
  • Skapa en ny tjänstanslutning i Azure Pipelines (förhandsversion). Skapa en Azure Resource Manager-tjänstanslutning med hjälp av arbetsbelastningsidentitetsfederation.

Kommentar

Utfärdade Microsoft Entra-ID-token kanske inte används för federerade identitetsflöden. Flödet för federerade identitetsuppgifter stöder inte token som utfärdats av Microsoft Entra-ID.

Hur det fungerar

Skapa en förtroenderelation mellan den externa IdP:en och en användartilldelad hanterad identitet eller ett program i Microsoft Entra-ID. Den federerade identitetsautentiseringsuppgiften används för att ange vilken token från den externa IdP:t som ska vara betrodd av ditt program eller din hanterade identitet. Du konfigurerar antingen en federerad identitet:

  • På en användartilldelad hanterad identitet via administrationscentret för Microsoft Entra, Azure CLI, Azure PowerShell, Azure SDK och ARM-mallar (Azure Resource Manager). Den externa arbetsbelastningen använder åtkomsttoken för att komma åt Microsoft Entra-skyddade resurser utan att behöva hantera hemligheter (i scenarier som stöds). Stegen för att konfigurera förtroenderelationen varierar beroende på scenario och extern IdP.
  • Vid en appregistrering i administrationscentret för Microsoft Entra eller via Microsoft Graph. Med den här konfigurationen kan du hämta en åtkomsttoken för ditt program utan att behöva hantera hemligheter utanför Azure. Mer information finns i konfigurera en app för att lita på en extern identitetsprovider.

Kommentar

Värdena för federerad identitetsautentisering issuer, subjectoch audience måste skiftlägeskänsligt matcha motsvarande issueroch audience subject värden som finns i token som skickas till Microsoft Entra-ID:t av den externa IdP:t för att scenariot ska kunna auktoriseras. Mer information om den här ändringen finns i Nyheter för autentisering.

Arbetsflödet för utbyte av en extern token för en åtkomsttoken är dock detsamma för alla scenarier. Följande diagram visar det allmänna arbetsflödet för en arbetsbelastning som utbyter en extern token mot en åtkomsttoken och sedan kommer åt Microsoft Entra-skyddade resurser.

Diagram som visar en extern token som utbyts för en åtkomsttoken och åtkomst till Azure

  1. Den externa arbetsbelastningen (till exempel ett GitHub Actions-arbetsflöde) begär en token från den externa IdP:en (till exempel GitHub).
  2. Det externa IdP:t utfärdar en token till den externa arbetsbelastningen.
  3. Den externa arbetsbelastningen (inloggningsåtgärden i ett GitHub-arbetsflöde, till exempel) skickar token till Microsofts identitetsplattform och begär en åtkomsttoken.
  4. Microsofts identitetsplattform kontrollerar förtroenderelationen på den användartilldelade hanterade identiteten eller appregistreringen och verifierar den externa token mot utfärdarens URL för OpenID Connect (OIDC) på den externa IdP:en.
  5. När kontrollerna är uppfyllda utfärdar Microsofts identitetsplattform en åtkomsttoken till den externa arbetsbelastningen.
  6. Den externa arbetsbelastningen kommer åt Microsoft Entra-skyddade resurser med hjälp av åtkomsttoken från Microsofts identitetsplattform. Ett GitHub Actions-arbetsflöde använder till exempel åtkomsttoken för att publicera en webbapp till Azure App Service.

Microsofts identitetsplattform lagrar endast de första 100 signeringsnycklarna när de laddas ned från den externa IdP:ts OIDC-slutpunkt. Om det externa IdP:t exponerar fler än 100 signeringsnycklar kan det uppstå fel när du använder arbetsbelastningsidentitetsfederation.

Nästa steg

Läs mer om hur arbetsbelastningsidentitetsfederation fungerar:

  • Så här skapar, tar du bort, hämtar eller uppdaterar autentiseringsuppgifter för federerad identitet på en användartilldelad hanterad identitet.
  • Så här skapar, tar du bort, hämtar eller uppdaterar federerade identitetsautentiseringsuppgifter för en appregistrering.
  • Läs översikten över arbetsbelastningsidentitet för att lära dig hur du konfigurerar en Kubernetes-arbetsbelastning för att hämta en åtkomsttoken från Microsofts identitetsprovider och få åtkomst till Microsoft Entra-skyddade resurser.
  • Läs GitHub Actions-dokumentationen om du vill veta mer om hur du konfigurerar ditt GitHub Actions-arbetsflöde för att hämta en åtkomsttoken från Microsofts identitetsprovider och få åtkomst till Microsoft Entra-skyddade resurser.
  • Hur Microsoft Entra-ID använder OAuth 2.0-klientautentiseringsuppgifterna och ett klientintyg som utfärdats av en annan IdP för att hämta en token.
  • Information om det nödvändiga formatet för JWT:er som skapats av externa identitetsprovidrar finns i kontrollformatet.