Delen via


Versterking van de integratie van beveiliging en opslagplaatsen

Met deze update verbeteren we de beveiliging en verificatie in Azure DevOps. Overlappende geheimen voor Azure DevOps OAuth maken het rouleren van geheimen naadloos, terwijl GitHub Advanced Security zorgt voor betere filtering op de pagina met beveiligingsoverzichten, terwijl het publiceren van meerdere opslagplaatsen ervoor zorgt dat afhankelijkheids- en codescanwaarschuwingen correct worden gerouteerd.

Gehoste installatiekopie-updates in Azure Pipelines omvatten Ubuntu-24.04, Windows 2025 en mac-OS 15 Sequoia, waardoor een veiligere en betrouwbare ervaring wordt gegarandeerd.

Bekijk de releaseopmerkingen voor meer informatie.

Algemeen

GitHub Advanced Security voor Azure DevOps

Azure-pipelines

Testplannen

Algemeen

Overlappende geheimen voor Azure DevOps OAuth

We introduceren graag de nieuwe overlappende geheimenfunctie in Azure DevOps OAuth, ontworpen om de beveiliging te verbeteren en geheimenrotaties te stroomlijnen. Met deze functie kunt u een nieuw geheim toevoegen aan uw OAuth-client terwijl de vorige actief blijft, zodat uw toepassingen continu kunnen worden uitgevoerd. U kunt deze geheimen programmatisch beheren via API of via de gebruikersinterface van de Visual Studio App-pagina.

Als onderdeel van doorlopende beveiligingsverbeteringen wordt Azure DevOps OAuth gepland voor afschaffing in 2026. We raden u aan om te migreren naar Microsoft Entra ID OAuth- voor verbeterde beveiligingsfuncties en langetermijninvesteringen. In de tussentijd raden we u aan om uw geheimen regelmatig te roteren met behulp van onze nieuwe functie voor overlappende geheimen.

Afschaffing van tags voor talenstatistieken op de pagina Projectoverzicht

In de komende weken zullen we de tags voor de statistieken van talen verwijderen van de pagina Projectoverzicht. Als u deze tags verwijdert, kunt u de prestaties optimaliseren, wat resulteert in snellere laadtijden en een responsievere interface.

De update wordt automatisch uitgevoerd, zonder dat u actie hoeft te ondernemen.

Toestemming leveringsplannen toegevoegd

Als onderdeel van onze doorlopende beveiligingsverbeteringen hebben we een nieuwe Beheer leveringsplannen projectniveau-machtiging geïntroduceerd. Deze wijziging is geïmplementeerd om onbedoelde lees-/schrijftoegang voor gebruikers in de groep Lezers te voorkomen.

GitHub Advanced Security voor Azure DevOps

Beveiligingsoverzichtspagina uitgebreid met nieuwe kolommen en filteropties

Op het tabblad Risico vindt u onlangs toegevoegde kolommen met nieuwe, verholpen en afgewezen beveiligingswaarschuwingen binnen uw organisatie. We hebben filteropties toegevoegd om resultaten te verfijnen op project, hulpprogramma (geheimen, afhankelijkheden of scanresultaten van code) en een tijdfilter om zoekgrenzen te definiëren.

Bovendien voegt het toepassen van een filter een URL-queryparameter toe, zodat u de vooraf gefilterde weergave kunt delen met anderen in uw organisatie.

Publicatiescenario's voor meerdere opslagplaatsen die worden ondersteund voor GitHub Advanced Security voor Azure DevOps

Eerder, wanneer een pijplijndefinitie zich in een opslagplaats bevond en de broncode die door GitHub Advanced Security moet worden gescand in een andere opslagen was, werden de resultaten verwerkt en naar de verkeerde opslagplaats verzonden. In plaats van waarschuwingen te publiceren naar de opslagplaats met de broncode, worden deze weergegeven in de opslagplaats waarin de pijplijn is gedefinieerd.

Nu worden waarschuwingen voor het scannen van afhankelijkheden en het scannen van code correct doorgestuurd naar de opslagplaats met de gescande broncode in scenario's met meerdere opslagplaatsen.

Als u deze functie wilt inschakelen, stelt u de omgevingsvariabele voor de pijplijn advancedsecurity.publish.repository.infer: true in om de opslagplaats af te leiden die wordt gepubliceerd vanuit de opslagplaats in de werkmap.

Als u een opslagplaats niet expliciet uitcheckt of een alias gebruikt om uw opslagplaats uit te checken, gebruikt u in plaats daarvan de variabele advancedsecurity.publish.repository: $[ convertToJson(resources.repositories['YourRepositoryAlias']) ].

YAML-codefragment:

  trigger:
  - main

resources:
  repositories:
    - repository: BicepGoat
      type: git
      name: BicepGoat
      ref: refs/heads/main
      trigger:
        - main

jobs:
  # Explicit - `advancedsecurity.publish.repository` explicitly defines the repository to submit SARIF to.
  - job: "AdvancedSecurityCodeScanningExplicit"
    displayName: "🛡 Infrastructure-as-Code Scanning (Explicit)"
    variables:
      advancedsecurity.publish.repository: $[ convertToJson(resources.repositories['BicepGoat']) ]
    steps:
      - checkout: BicepGoat
      - task: TemplateAnalyzerSarif@1
        displayName: Scan with Template Analyzer
      - task: AdvancedSecurity-Publish@1
        displayName: Publish to IaC Scanning Results to Advanced Security


  # Infer - `advancedsecurity.publish.repository.infer` specifies that the `AdvancedSecurity-Publish` must
  # infer repository to submit SARIF to from the working directory on the build agent.
  - job: "AdvancedSecurityCodeScanningInfer"
    displayName: "🛡 Infrastructure-as-Code Scanning (Infer)"
    variables:
      advancedsecurity.publish.repository.infer: true
    steps:
      - checkout: BicepGoat
      - task: TemplateAnalyzerSarif@1
        displayName: Scan with Template Analyzer
      - task: AdvancedSecurity-Publish@1
        displayName: Publish to IaC Scanning Results to Advanced Security

Servicehooks voor GitHub Advanced Security voor Azure DevOps-waarschuwingen (preview)

U kunt nu servicehook configureren voor waarschuwingen voor GitHub Advanced Security, waaronder:

  • Nieuwe waarschuwing gemaakt
  • Waarschuwingsgegevens zijn gewijzigd
  • Waarschuwingsstatus gewijzigd

Net als andere gebeurtenissen in de opslagplaats kunt u filteren op opslagplaats en vertakking. Voor waarschuwingen kunt u filteren op waarschuwingstype (afhankelijkheden, codescans of geheimen) en de ernst van waarschuwingen.

Als u wilt deelnemen aan de preview, vult u het formulier preview-interesseformulier in of stuurt u ons een e-mail!

pnpm v9-ondersteuning komt naar GitHub Advanced Security voor afhankelijkhedenscans in Azure DevOps

Wanneer pnpm v8 eind april het einde van de levensduur bereikt, bevat de volgende update voor het scannen van afhankelijkheden ondersteuning voor pnpm v9. Deze update is in reactie op uw Developer Community aanvraag voor pnpm v9-ondersteuning.

Azure-pipelines

Updates voor gehoste afbeeldingen

Er worden updates geïmplementeerd om de gehoste agents van Azure Pipelines veilig en actueel te houden. Deze updates omvatten het toevoegen van ondersteuning voor Ubuntu-24.04-, Windows 2025-installatiekopieën en macOS-15 Sequoia, terwijl oudere installatiekopieën, zoals Ubuntu-20.04 en Windows Server 2019, worden afgeschaft.

Ga voor meer informatie naar onze blogpost.

macOS-15 Sequoia is algemeen beschikbaar

De macOS-15-image is beschikbaar op agents die door Azure Pipelines worden gehost vanaf 1 april. Als u deze afbeelding wilt gebruiken, werkt u het YAML-bestand bij met het volgende vmImage:'macos-15':

- job: macOS15
  pool:
    vmImage: 'macOS-15'
  steps:
  - bash: |
      echo Hello from macOS Sequoia
      sw_vers

Zie imageconfiguratievoor de software geïnstalleerd op macOS-15.

Het macOS-14-beeld zal nog steeds gebruikt worden bij het specificeren van macOS-latest. We zullen macOS-latest bijwerken om macOS-15 te gebruiken in April.

Windows-2025-afbeelding is beschikbaar als voorbeeldweergave

De windows-2025 afbeelding is nu beschikbaar in preview voor agents die door Azure Pipelines worden gehost. Als u deze afbeelding wilt gebruiken, werkt u het YAML-bestand bij met het volgende vmImage:'windows-2025':

- job: win2025
  pool:
    vmImage: 'windows-2025'
  steps:
  - pwsh: |
      Write-Host "(Get-ComputerInfo).WindowsProductName"
      Get-ComputerInfo | Select-Object WindowsProductName
      Write-Host "`$PSVersionTable.OS"
      $PSVersionTable.OS

Zie de configuratie van afbeelding voor geïnstalleerde software van Windows Server 2025.

De ubuntu-laatste pipeline-image zal ubuntu-24.04 gaan gebruiken.

In de komende weken gaan pijplijntaken die ubuntu-latest specificeren ubuntu-24.04 gebruiken in plaats van ubuntu-22.04.

Zie onze ubuntu-24.04voor hulp bij taken die gebruikmaken van hulpprogramma's die niet meer op de afbeelding staan. Om Ubuntu 22.04 te blijven gebruiken, gebruik het ubuntu-22.04 image label.

- job: ubuntu2404
  pool:
    vmImage: 'ubuntu-24.04'
  steps:
  - bash: |
      echo Hello from Ubuntu 24.04
      lsb_release -d
  - pwsh: |
      Write-Host "`$PSVersionTable.OS"
      $PSVersionTable.OS

De ubuntu-20.04-pijplijnimage is afgeraden en wordt buiten gebruik gesteld op 1 april.

Ondersteuning voor de Ubuntu 20.04-installatiekopie in Azure Pipelines wordt afgeschaft, omdat deze binnenkort het einde van de ondersteuning bereikt. Vind het afschaffingsplan met uitvalschema in ons blogbericht.

Federatie van workloadidentiteit maakt gebruik van Entra-uitgever

Iets meer dan een jaar geleden hebben we Workloadidentiteitsfederatie algemeen beschikbaar gemaakt. Met workload-identiteitsfederatie kunt u een serviceverbinding zonder wachtwoord configureren. De identiteit (app-registratie, beheerde identiteit) die ten grondslag ligt aan de serviceverbinding, kan alleen worden gebruikt voor het beoogde doel: de serviceverbinding die is geconfigureerd in de federatieve referentie van de identiteit.

We wijzigen nu de indeling van de federatieve referentie voor nieuwe Azure- en Docker-serviceverbindingen. Bestaande serviceverbindingen werken net als voorheen.

  Azure DevOps-uitgever Entra-verlener (nieuwe serviceverbindingen)
Uitgevende instelling https://vstoken.dev.azure.com/<organization id> https://login.microsoftonline.com/<Entra tenant id>/v2.0
Onderwerp sc://<organization name>/<project name>/<service connection name> <entra prefix>/sc/<organization id>/<service connection id>

Er is geen wijziging in de configuratie en de manier waarop tokens worden verkregen, blijft hetzelfde. Pijplijntaken hoeven niet te worden bijgewerkt en werken zoals voorheen.

De stappen voor het maken van een serviceverbinding worden niet gewijzigd en in de meeste gevallen is de nieuwe verlener niet zichtbaar. Wanneer handmatig een Azure-serviceverbinding configureert, worden de nieuwe federatieve referenties weergegeven:

Kopieer deze waarden zoals voorheen bij het maken van een federatieve referentie voor een app-registratie of beheerde identiteit.

Automatisering

Wanneer u een serviceverbinding maakt in automatisering met de REST API, gebruikt u de federatieve referentie die wordt geretourneerd door de API:

authorization.parameters.workloadIdentityFederationIssuer
authorization.parameters.workloadIdentityFederationSubject

Ook bij het maken van een serviceverbinding met de Terraform azuredevops-provider retourneert de azuredevops_serviceendpoint_azurerm resource workload_identity_federation_issuer en workload_identity_federation_subject kenmerken.

Meer informatie

Gradle@4 taak

Er is een nieuwe Gradle@4 taak gemaakt met ondersteuning voor Gradle 8.0. De ingebouwde optie voor codedekking wordt verwijderd uit de Gradle-taak die begint met Gradle@4. Codedekking gebruiken met Gradle in uw pijplijn:

De configuratie van de SonarQube-analyse is verplaatst naar de SonarQube- of SonarCloud-extensies in de Prepare Analysis Configuration-taak.

Identiteit van de gebruiker die een fase heeft aangevraagd om uit te voeren

Als u de beveiliging van uw YAML-pijplijnen wilt verbeteren, wilt u mogelijk weten wie een fase heeft aangevraagd om te worden uitgevoerd. Om deze behoefte te verhelpen, voegt u twee nieuwe vooraf gedefinieerde variabelen toe, Build.StageRequestedBy en Build.StageRequestedById. Deze variabelen zijn vergelijkbaar met de variabelen Build.RequestedFor en Build.RequestedForId, maar dan voor een fase, niet voor een run.

Wanneer een gebruiker bijvoorbeeld expliciet een gebruiker activeert in het geval van een handmatig geactiveerde fase of het opnieuw uitvoeren van een fase, wordt hun identiteit gebruikt om de twee variabelen in te vullen.

Testplannen

Verbeteringen in de v2-taak voor het publiceren van codedekkingsresultaten

Met deze release zijn er verschillende verbeteringen aan de v2-taak inbegrepen:

  • Uitgebreide ondersteuning voor verschillende indelingen voor codedekking, waaronder: .coverage,.covx,.covb,.cjson,.xml,.lcov en pycov1.
  • Genereren van een uitgebreid cjson-bestand (en een codedekkingsrapport) dat gedetailleerde codedekkingsgegevens bevat, zoals bestandsnamen, regels die worden gedekt/niet gedekt, enzovoort.
  • Ondersteuning voor diff-dekking (PR-dekking): v2 kan pr-opmerkingen over diff-dekking genereren voor meerdere talen binnen dezelfde pijplijn.
  • v2-taak ondersteunt nu de taak Build Quality Check, die niet werd ondersteund in v1-taak.

Testcases exporteren met aangepaste kolommen in XLSX

U kunt nu testcases exporteren met aangepaste kolommen in XLSX. Op basis van uw feedback ondersteunt Test plans het exporteren van testcases met aangepaste kolommen, waardoor u meer flexibiliteit en controle hebt over de gegevens die u deelt en analyseert. Deze verbetering helpt u bij het aanpassen van exports aan uw behoeften, zodat de informatie die u exporteert relevant en uitvoerbaar is.

Volgende stappen

Notitie

Deze functies worden de komende twee tot drie weken uitgerold.

Ga naar Azure DevOps en kijk eens.

Feedback geven

We horen graag wat u van deze functies vindt. Gebruik het Help-menu om een probleem te melden of een suggestie op te geven.

Een suggestie doen

U kunt ook advies krijgen en uw vragen beantwoorden door de community op Stack Overflow.

Bedankt

Gepleiu Andrica