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. För en programvaruarbetsbelastning som körs utanför Azure, eller de som körs i Azure men använder appregistreringar för sina identiteter, 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.
  • Arbetsbelastningar som körs på Azure-beräkningsplattformar med hjälp av appidentiteter. Tilldela först en användartilldelad hanterad identitet till din virtuella Azure-dator eller App Service. Sedan konfigurera en förtroenderelation mellan din app och den användartilldelade identiteten.
  • 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:

Kommentar

Värdena för federerad identitetsautentisering issuer, subjectoch audience måste skiftlägeskänsligt matcha motsvarande issueroch subjectaudience 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.

Se även