Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Avec cette mise à jour, nous améliorons la sécurité et l’authentification dans Azure DevOps. Les secrets qui se chevauchent pour Azure DevOps OAuth facilitent la rotation des secrets, tandis que GitHub Advanced Security apporte un meilleur filtrage à la page vue d’ensemble de la sécurité tout en garantissant que la publication à plusieurs référentiels achemine correctement les alertes de dépendance et d’analyse du code.
Les mises à jour d’images hébergées dans Azure Pipelines incluent Ubuntu-24.04, Windows 2025 et mac-OS 15 Sequoia, ce qui garantit une expérience plus sécurisée et fiable.
Pour plus d’informations, consultez les notes de publication.
Généralités
- Chevauchement de secrets pour Azure DevOps OAuth
- Abandon des balises de statistiques sur les langues de la page Résumé du projet
- Autorisation Plan de livraison ajoutée
Sécurité avancée GitHub pour Azure DevOps
- Page de risque de la vue d’ensemble de la sécurité étendue avec de nouvelles colonnes et options de filtrage
- Scénarios de publication sur plusieurs dépôts pris en charge par GitHub Advanced Security dans Azure DevOps
- Crochets de service pour les alertes GitHub Advanced Security pour Azure DevOps (préversion)
- La prise en charge de pnpm v9 est disponible pour l’analyse des dépendances pour GitHub Advanced Security pour Azure DevOps
Azure Pipelines
- mises à jour d’images hébergées
- Fédération des Identités de charge de travail utilise l’émetteur Entra
- Tâche Gradle@4
- Identité de l’utilisateur qui a demandé qu’une étape s’exécute
Plans de test
- Publier les résultats de la couverture du code améliorations des tâches v2
- Exporter des cas de test avec des colonnes personnalisées dans XLSX
Généralités
Chevauchement de secrets pour Azure DevOps OAuth
Nous sommes ravis d’introduire la nouvelle fonctionnalité de secrets qui se chevauchent dans Azure DevOps OAuth, conçue pour améliorer la sécurité et simplifier les rotations des secrets. Cette fonctionnalité vous permet d’ajouter un nouveau secret à votre client OAuth alors que le précédent reste actif, garantissant ainsi le fonctionnement continu de vos applications. Vous pouvez gérer ces secrets par programmation via l’API ou via l’interface utilisateur de la page Application Visual Studio.
Dans le cadre des améliorations de sécurité en cours, la mise hors service d'Azure DevOps OAuth est prévue pour 2026. Nous vous encourageons à migrer vers Microsoft Entra ID OAuth pour améliorer les fonctionnalités de sécurité et les investissements à long terme. Dans l’intervalle, nous vous recommandons la rotation régulière de vos secrets en utilisant notre nouvelle fonctionnalité de chevauchement des secrets.
Abandon des balises de statistiques sur les langues de la page Résumé du projet
Dans les semaines à venir, nous allons supprimer les balises de statistiques de langues de la page résumé du projet. La suppression de ces balises permet d’optimiser les performances, ce qui entraîne des temps de chargement plus rapides et une interface plus réactive.
La mise à jour se produit automatiquement, sans aucune action requise de votre part.
Autorisation Plans de livraison ajoutée
Dans le cadre de nos améliorations de sécurité en cours, nous avons introduit une nouvelle autorisation gérer les plans de livraison au niveau du projet. Cette modification a été implémentée pour empêcher l'accès fortuit en lecture et écriture aux utilisateurs du groupe Lecteurs.
Sécurité avancée GitHub pour Azure DevOps
Page des risques de vue d’ensemble de la sécurité améliorée avec de nouvelles colonnes et options de filtrage
Sous l’onglet Risque, vous trouverez les colonnes nouvellement ajoutées affichant de nouvelles alertes de sécurité fixes et ignorées au sein de votre organisation. Nous avons ajouté des options de filtrage pour affiner les résultats par projet, outil (secrets, dépendances ou résultats d’analyse du code) et un filtre basé sur le temps pour définir des limites de recherche.
En outre, l’application d’un filtre ajoute un paramètre de requête d’URL, ce qui vous permet de partager l’affichage préfiltré avec d’autres membres de votre organisation.
Scénarios de publication de plusieurs référentiels pris en charge pour GitHub Advanced Security pour Azure DevOps
Auparavant, lorsqu’une définition de pipeline était hébergée dans un référentiel et que le code source à analyser par GitHub Advanced Security se trouvait dans un autre, les résultats ont été traités et envoyés au dépôt incorrect. Au lieu de publier des alertes dans le référentiel avec le code source, elles apparaissent dans le référentiel où le pipeline a été défini.
À présent, l’analyse des dépendances et l’analyse du code acheminent correctement les alertes vers le référentiel contenant le code source analysé dans les scénarios multi-référentiels.
Pour activer cette fonctionnalité, définissez la variable d’environnement de pipeline advancedsecurity.publish.repository.infer: true pour déduire le dépôt à publier à partir du référentiel dans le répertoire de travail.
Sinon, si vous n’examinez pas explicitement un référentiel ou utilisez un alias pour extraire votre référentiel, utilisez la variable advancedsecurity.publish.repository: $[ convertToJson(resources.repositories['YourRepositoryAlias']) ] à la place.
Extrait de code YAML :
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
Crochets de service pour les alertes GitHub Advanced Security pour Azure DevOps (préversion)
Vous pouvez maintenant configurer des hooks de service pour les événements d’alerte GitHub Advanced Security, notamment :
- Nouvelle alerte créée
- Données d’alerte modifiées
- État d’alerte modifié
Tout comme d’autres événements de référentiel, vous pouvez filtrer par dépôt et branche. Pour les alertes en particulier, vous pouvez filtrer par type d’alerte (dépendances, analyse du code ou secrets) et par gravité d’alerte.
Pour participer à l'aperçu, remplissez le formulaire d'intérêt ou envoyez-nous un e-mail !
La prise en charge de la version 9 de pnpm est désormais disponible avec GitHub Advanced Security pour l'analyse des dépendances dans Azure DevOps.
Avec pnpm v8 atteignant la fin de son cycle de vie fin avril, la prochaine mise à jour de l’analyse des dépendances inclura la prise en charge de pnpm v9. Cette mise à jour est en réponse à votre demande de la communauté des développeurs pour la prise en charge de pnpm v9.
Azure Pipelines
Mises à jour d’images hébergées
Nous déployons des mises à jour pour sécuriser et mettre à jour les agents hébergés d’Azure Pipelines. Ces mises à jour incluent l’ajout de la prise en charge des images Ubuntu-24.04, Windows 2025, et de macOS-15 Sequoia, en supprimant progressivement les anciennes images comme Ubuntu-20.04 et Windows Server 2019.
Pour plus d’informations, consultez notre billet de blog .
macOS-15 Sequoia est généralement disponible
L’image macOS-15 sera disponible sur les agents hébergés par Azure Pipelines à compter du 1er avril. Pour utiliser cette image, mettez à jour votre fichier YAML pour inclure vmImage:'macos-15':
- job: macOS15
pool:
vmImage: 'macOS-15'
steps:
- bash: |
echo Hello from macOS Sequoia
sw_vers
Pour les logiciels installés sur macOS-15, consultez configuration d’image.
L’image macOS-14 sera toujours utilisée lors de la spécification macOS-latest. Nous allons mettre à jour macOS-latest pour utiliser macOS-15 en avril.
L’image Windows-2025 est disponible en préversion
L’image windows-2025 est désormais disponible en préversion pour des agents hébergés Azure Pipelines. Pour utiliser cette image, mettez à jour votre fichier YAML pour inclure 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
Pour les logiciels installés par Windows Server 2025, consultez la configuration de l'image .
L’image de pipeline ubuntu-latest va commencer à utiliser ubuntu-24.04
Dans les semaines à venir, les travaux de pipeline spécifiant ubuntu-latest commenceront à utiliser ubuntu-24.04 au lieu de ubuntu-22.04.
Pour obtenir des conseils sur les tâches qui utilisent des outils qui ne sont plus sur l’image ubuntu-24.04, consultez notre billet de blog . Pour continuer à utiliser Ubuntu 22.04, utilisez l’étiquette d’image ubuntu-22.04 :
- 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
L’image de pipeline ubuntu-20.04 est déconseillée et sera mise hors service le 1er avril
Nous cessons de prendre en charge l’image Ubuntu 20.04 dans Azure Pipelines, car elle atteindra bientôt la fin de son support. Trouvez le plan d’obsolescence avec le calendrier de réduction dans notre billet de blog.
Fédération des Identités de charge de travail utilise l’émetteur Entra
Depuis un peu plus d’un an, la Fédération des identités de charge de travail est généralement disponible. La fédération des identités de charge de travail vous permet de configurer une connexion de service sans secret. L’identité (inscription d’application, identité managée) qui sous-tend la connexion de service ne peut être utilisée qu’à des fins prévues : la connexion de service configurée dans les informations d’identification fédérées de l’identité.
Nous modifions maintenant le format des informations d’identification fédérées pour les nouvelles connexions de service Azure et Docker. Les connexions de service existantes fonctionnent comme avant.
| Émetteur Azure DevOps | Émetteur Entra (nouvelles connexions de service) | |
|---|---|---|
| Émetteur | https://vstoken.dev.azure.com/<organization id> |
https://login.microsoftonline.com/<Entra tenant id>/v2.0 |
| Objet | sc://<organization name>/<project name>/<service connection name> |
<entra prefix>/sc/<organization id>/<service connection id> |
Il n’existe aucune modification de la configuration et la façon dont les jetons sont obtenus reste identique. Les tâches de pipeline n’ont pas besoin d’être mises à jour et de fonctionner comme avant.
Les étapes de création d’une connexion de service ne changent pas et, dans la plupart des cas, le nouvel émetteur n’est pas visible. Lors de la configuration d’une connexion de service Azure manuellement, vous verrez les nouvelles informations d’identification fédérées affichées :
Copiez ces valeurs comme avant lors de la création d’informations d’identification fédérées pour une inscription d’application ou une identité managée.
Automatisation
Lors de la création d’une connexion de service dans l’automatisation avec l’api REST , utilisez les informations d’identification fédérées retournées par l’API :
authorization.parameters.workloadIdentityFederationIssuer
authorization.parameters.workloadIdentityFederationSubject
De même, lors de la création d’une connexion de service avec le fournisseur Terraform azuredevops, la ressource azuredevops_serviceendpoint_azurerm retourne workload_identity_federation_issuer et workload_identity_federation_subject attributs.
Plus d’informations
- Se connecter à Azure avec une connexion de service Azure Resource Manager
- Résoudre des problèmes de connexion au service d’identité de charge de travail Azure Resource Manager
tâche Gradle@4
Une nouvelle tâche Gradle@4 a été créée avec prise en charge de Gradle 8.0. L’option prédéfinie de couverture du code est supprimée de la tâche Gradle à partir de Gradle@4. Pour utiliser la couverture du code avec Gradle dans votre pipeline :
- Spécifiez les plug-ins de couverture du code dans votre fichier build.gradle. Pour plus d’informations, consultez les options d’analyse du code Gradle.
- Utilisez la tâche PublishCodeCoverageResults@2 dans votre pipeline après la tâche
Gradle@4.
La configuration de l’analyse SonarQube a été déplacée vers les extensions SonarQube ou SonarCloud dans la tâche Prepare Analysis Configuration.
Identité de l’utilisateur qui a demandé une étape à exécuter
Pour améliorer la sécurité de vos pipelines YAML, vous souhaiterez peut-être savoir qui a demandé une étape à exécuter. Pour répondre à ce besoin, ajoutiez deux nouvelles variables prédéfinies, Build.StageRequestedBy et Build.StageRequestedById. Ces variables sont similaires aux variables Build.RequestedFor et Build.RequestedForId, mais pour une étape, pas une exécution.
Lorsqu’un utilisateur déclenche explicitement un utilisateur, par exemple, en cas d’étape déclenchée manuellement ou de réexécution d’une phase, son identité est utilisée pour remplir les deux variables.
Plans de test
Publier les résultats de la couverture du code améliorations des tâches v2
Avec cette version, nous incluons plusieurs améliorations apportées à la tâche v2 :
- Prise en charge étendue des différents formats de couverture de code, notamment : .coverage, .covx, .covb, .cjson,.xml, .lcov et pycov1.
- Génération d’un fichier cjson complet (et d’un rapport de couverture du code) qui contient des informations détaillées sur la couverture du code, telles que les noms de fichiers, les lignes couvertes/non couvertes, etc.
- Prise en charge de la couverture différentielle (couverture PR) : v2 peut générer des commentaires PR de couverture différentielle pour plusieurs langues au sein du même pipeline.
- La tâche v2 prend désormais en charge la tâche Build Quality Check, qui n’a pas été prise en charge dans la tâche v1.
Exporter des cas de test avec des colonnes personnalisées dans XLSX
Vous pouvez désormais exporter des cas de test avec des colonnes personnalisées dans XLSX. En fonction de vos commentaires, les plans de test prennent en charge l’exportation de cas de test avec des colonnes personnalisées, ce qui vous offre une plus grande flexibilité et un meilleur contrôle des données que vous partagez et analysez. Cette amélioration vous aide à adapter les exportations à vos besoins, en vous assurant que les informations que vous exportez sont pertinentes et exploitables.
Étapes suivantes
Remarque
Ces fonctionnalités seront déployées au cours des deux à trois prochaines semaines.
Passez à Azure DevOps et jetez un coup d’œil.
Comment fournir des commentaires
Nous aimerions entendre ce que vous pensez de ces fonctionnalités. Utilisez le menu d’aide pour signaler un problème ou fournir une suggestion.
Vous pouvez également obtenir des conseils et répondre à vos questions par la communauté sur Stack Overflow.
Merci
Silviu Andrica