Dela via


Arbetsbelastningsidentitetsfederation för offentlig förhandsversion av Azure Pipelines

Vi är glada över att kunna meddela att arbetsbelastningsidentitetsfederationen för Azure Pipelines nu är i offentlig förhandsversion! Azure-tjänstanslutningar (ARM) har uppdaterats med ytterligare ett schema för att stödja arbetsbelastningsidentitetsfederation.

Läs viktig information om hur du kan registrera dig för den offentliga förhandsversionen.

Azure-tavlor

Azure-pipelines

Azure-lagringsplatser

Azure-tavlor

Gränser för områdes- och iterationssökvägar

Gränser spelar en viktig roll för att upprätthålla hälsan och effektiviteten hos en stor, global tjänst. I den här sprinten inför vi hårda gränser på 10 000 per projekt för både områdes- och iterationsvägar. Gå till sidan Arbetsspårning, process- och projektbegränsningar för att lära dig mer om olika gränser i tjänsten.

Screenshots of Area and Iteration Paths.

Azure-pipelines

Arbetsbelastningsidentitetsfederation i Azure Pipelines (offentlig förhandsversion)

Vill du sluta lagra hemligheter och certifikat i Azure-tjänstanslutningar? Vill du sluta oroa dig för att rotera dessa hemligheter när de upphör att gälla? Nu presenterar vi en offentlig förhandsversion av arbetsbelastningsidentitetsfederationen för Azure-tjänstanslutningar.Arbetsbelastningsidentitetsfederationen använder en branschstandardteknik, Open ID Anslut (OIDC), för att förenkla autentiseringen mellan Azure Pipelines och Azure. I stället för hemligheter används ett federationsämne för att underlätta den här autentiseringen.

Som en del av den här funktionen har Azure-tjänstanslutningen (ARM) uppdaterats med ett annat schema för att stödja arbetsbelastningsidentitetsfederation. På så sätt kan Pipeline-uppgifter som använder Azure-tjänstanslutningen autentiseras med hjälp av ett federationsämne (sc://<org>/<project>/<service connection name>). De största fördelarna med att använda det här schemat jämfört med befintliga autentiseringsscheman är följande:

  • Förenklad hantering: Du behöver inte längre generera, kopiera och lagra hemligheter från tjänstens huvudnamn i Azure AD till Azure DevOps. Hemligheter som används i andra autentiseringsscheman för Azure-tjänstanslutningar (t.ex. tjänstens huvudnamn) upphör att gälla efter en viss period (för närvarande två år). När de upphör att gälla misslyckas pipelines. Du måste återskapa en ny hemlighet och uppdatera tjänstanslutningen. Om du byter till arbetsbelastningsidentitetsfederation eliminerar du behovet av att hantera dessa hemligheter och förbättrar den övergripande upplevelsen av att skapa och hantera tjänstanslutningar.
  • Förbättrad säkerhet: Med arbetsbelastningsidentitetsfederation finns det ingen beständiga hemlighet som är involverad i kommunikationen mellan Azure Pipelines och Azure. Därför kan uppgifter som körs i pipelinejobb inte läcka eller exfiltra hemligheter som har åtkomst till dina produktionsmiljöer. Detta har ofta varit ett bekymmer för våra kunder.

Du kan dra nytta av dessa funktioner på två sätt:

  • Använd det nya identitetsfederationsschemat för arbetsbelastningar när du skapar en ny Azure-tjänstanslutning. Framöver kommer detta att vara den rekommenderade mekanismen.
  • Konvertera dina befintliga Azure-tjänstanslutningar (som baseras på hemligheter) till det nya schemat. Du kan utföra den här konverteringen en anslutning i taget. Bäst av allt är att du inte behöver ändra någon av de pipelines som använder dessa tjänstanslutningar. De tillämpar automatiskt det nya schemat när du har slutfört konverteringen.

Om du vill skapa en ny Azure-tjänstanslutning med hjälp av arbetsbelastningsidentitetsfederation väljer du helt enkelt Arbetsbelastningsidentitetsfederation (automatisk) eller (manuell) i azure-tjänstens anslutningsupplevelse:

 Screenshot of resource.

Screenshot of identify federation.

Om du vill konvertera en tidigare skapad Azure-tjänstanslutning väljer du åtgärden "Konvertera" när du har valt anslutningen:

 Screenshot of convert.

Alla Azure-uppgifter som ingår i Azure Pipelines stöder nu det här nya schemat. Men om du använder en uppgift från Marketplace eller en egen anpassad uppgift för att distribuera till Azure kanske den inte har stöd för arbetsbelastningsidentitetsfederation ännu. I dessa fall ber vi dig att uppdatera din uppgift för att stödja arbetsbelastningsidentitetsfederation för att förbättra säkerheten. En fullständig lista över aktiviteter som stöds finns här.

För den här förhandsversionen stöder vi endast arbetsbelastningsidentitetsfederation för Azure-tjänstanslutningar. Det här schemat fungerar inte med andra typer av tjänstanslutningar. Mer information finns i våra dokument.

Det här blogginlägget innehåller mer information.

Pipelineagenter kan registreras med Microsoft Entra-ID i stället för en PAT

Pipeline-agenten har nu stöd för fler argument för att använda antingen tjänstens huvudnamn eller en användare för att registrera en agent. Du bör ge den identitet som används åtkomst till agentpoolen i dess säkerhetsinställningar. Detta tar bort behovet av att använda en personlig åtkomsttoken (PAT) för engångskonfiguration av agenter.

Registrera en agent med hjälp av tjänstens huvudnamn

Om du vill använda tjänstens huvudnamn för att registrera en Pipelines-agent med Azure DevOps Services anger du följande argument:

--auth 'SP' --clientid 00001111-aaaa-2222-bbbb-3333cccc4444 --clientsecret --tenantid aaaabbbb-0000-cccc-1111-dddd2222eeee

Använda tjänstens huvudnamn i tillägget för den virtuella agentdatorn

Virtuella Azure-datorer kan ingå i distributionsgrupper med hjälp av ett VM-tillägg. Vm-tillägget har uppdaterats för att använda tjänstens huvudnamn i stället för en PAT för att registrera agenten:

"settings": {
  "userServicePrincipal": true     
}
"protectedSettings": {
  "clientId": "[parameters('clientId')]"      
  "clientSecret": "[parameters('clientSecret')]"      
  "tenantId": "[parameters('tenantId')]"      
}

Registrera en agent interaktivt med hjälp av enhetskodflöde

Du kan använda en webbläsare för att enkelt slutföra installationen. När du kör agentkonfigurationsskriptet anger du "AAD" som autentiseringstyp . Skriptet vägleder dig genom nästa steg, inklusive var du ska gå på webben och vilken kod du ska ange. När du har angett koden på webben går du tillbaka till konsolen för att slutföra konfigurationen av agenten.

 Screenshot of authentication flow.

REST-API:er för miljöer

En miljö är en samling resurser som du kan rikta in dig på med distributioner från en pipeline. Miljöer ger dig distributionshistorik, spårbarhet för arbetsobjekt och incheckningar samt mekanismer för åtkomstkontroll.

Vi vet att du vill skapa miljöer programmatiskt, så vi publicerade dokumentation för deras REST API.

Förhindra oavsiktliga pipelinekörningar

Om YAML-pipelinen i dag inte anger något trigger avsnitt körs den för ändringar som skickas till dess lagringsplats. Detta kan skapa förvirring om varför en pipeline kördes och ledde till många oavsiktliga körningar.

Vi har lagt till en inställning för pipelines på organisations- och projektnivå med namnet Inaktivera underförstådd YAML CI-utlösare som gör att du kan ändra det här beteendet. Du kan välja att inte utlösa pipelines om deras utlösaravsnitt saknas.

 Screenshot of YAML CI trigger.

Skapa GitHub-lagringsplatser på ett säkert sätt som standard

Förra sprinten introducerade vi en centraliserad kontroll för att skapa PR från förgrenade GitHub-lagringsplatser.

Med den här sprinten Securely build pull requests from forked repositories aktiverar vi alternativet på organisationsnivå för nya organisationer. Befintliga organisationer påverkas inte.

Inaktiverad åsidosättning av kodtäckningsprincipens status till Misslyckades när bygget misslyckas

Tidigare i åsidosättades statusen för kodtäckningsprincipen till "Misslyckades" om ditt bygge i PR misslyckades. Det här var en blockerare för vissa av er som hade bygget som en valfri kontroll och kodtäckningsprincipen som en nödvändig kontroll för pr-koder, vilket ledde till att PR blockerades.

Screenshot of PRs blocked.

Med den här sprinten kommer kodtäckningsprincipen inte att åsidosättas till "Failed" om bygget misslyckas. Den här funktionen aktiveras för alla kunder.

Screenshot of results after change.

Azure-lagringsplatser

Stöd för bloblöst och trädlöst filter

Azure DevOps stöder nu ytterligare två filtreringar vid kloning/hämtning. Följande är: --filter=blob:none Och --filter=tree:0 Det första alternativet (bloblös klon) används bäst för regelbunden utveckling medan det andra alternativet (trädlös klon) passar bättre för de fall där du tar bort klonen efter, till exempel när du kör en version.

Nästa steg

Kommentar

Dessa funktioner kommer att distribueras under de kommande två till tre veckorna.

Gå över till Azure DevOps och ta en titt.

Så här ger du feedback

Vi vill gärna höra vad du tycker om de här funktionerna. Använd hjälpmenyn för att rapportera ett problem eller ge ett förslag.

Screenshot Make a suggestion.

Du kan också få råd och dina frågor som besvaras av communityn på Stack Overflow.

Tack,

Silviu Andrica