Labo 06-ado : ADO Advanced Security et intégration SARIF
| Durée | 35 min |
| Niveau | Intermédiaire |
| Prérequis | Labo 05 |
| Plateforme | Azure DevOps |
Objectifs d’apprentissage
À la fin de ce labo, vous serez en mesure de :
- Examiner les fichiers de sortie SARIF des labos d’analyse précédents
- Activer GHAzDO Advanced Security sur un projet ADO
- Créer un pipeline YAML ADO utilisant AdvancedSecurity-Publish@1
- Exécuter le pipeline et surveiller son exécution
- Consulter les résultats dans l’aperçu ADO Advanced Security
- Comparer ADO Advanced Security avec l’onglet GitHub Security
Exercices
Exercice 6.1 : Examiner la sortie SARIF des labos précédents (5 min)
Vous allez examiner les fichiers SARIF générés lors des labos 02 à 05 pour comprendre leur structure avant de les publier vers ADO Advanced Security.
-
Ouvrez l’un des fichiers SARIF de vos résultats d’analyse précédents (par exemple,
results/demo-001.sarif). -
Examinez la structure SARIF v2.1.0. Chaque fichier SARIF suit ce schéma :
{ "$schema": "https://raw.githubusercontent.com/oasis-tcs/sarif-spec/main/sarif-2.1/schema/sarif-schema-2.1.0.json", "version": "2.1.0", "runs": [ { "tool": { "driver": { "name": "axe-core", "version": "4.x", "rules": [ ... ] } }, "results": [ { "ruleId": "color-contrast", "level": "error", "message": { "text": "..." }, "locations": [ ... ] } ] } ] } -
Notez les éléments clés :
Élément Objectif $schemaDéclare la conformité SARIF v2.1.0 runs[].tool.driverIdentifie le moteur d’analyse (axe-core, IBM Equal Access ou personnalisé) runs[].results[]Violations d’accessibilité individuelles avec sévérité, emplacement et message 
-
Confirmez que vous disposez d’au moins un fichier SARIF valide. ADO Advanced Security consomme ces fichiers via la tâche de pipeline
AdvancedSecurity-Publish@1.
Exercice 6.2 : Activer GHAzDO Advanced Security (10 min)
Vous allez activer Azure DevOps Advanced Security (GHAzDO) sur le projet AODA WCAG Compliance dans l’organisation MngEnvMCAP675646.
-
Accédez à votre projet ADO :
https://dev.azure.com/MngEnvMCAP675646/AODA%20WCAG%20Compliance -
Ouvrez Paramètres du projet (icône d’engrenage en bas à gauche du portail ADO).
-
Sous Repos, sélectionnez Advanced Security.

- Activez Advanced Security au niveau du projet :
- Basculez Advanced Security sur Activé
- Consultez l’avis de facturation — Advanced Security est facturé par contributeur actif
- Confirmez l’activation
-
Vérifiez qu’Advanced Security est activé pour chaque dépôt du projet. Chaque dépôt affiche un badge Activé à côté de son nom.

- Après l’activation, vous verrez de nouveaux éléments de menu sous Advanced Security :
- Vue d’ensemble — Tableau de bord affichant les alertes par sévérité
- Alertes — Liste détaillée des alertes avec filtrage
Exercice 6.3 : Créer un pipeline YAML ADO avec AdvancedSecurity-Publish@1 (10 min)
Vous allez examiner le pipeline YAML ADO qui publie les résultats SARIF vers Advanced Security à l’aide de la tâche AdvancedSecurity-Publish@1.
-
Ouvrez
.azuredevops/pipelines/a11y-scan-advancedsecurity.ymldans votre éditeur. -
Examinez la structure du pipeline :
trigger: branches: include: - main pool: vmImage: 'ubuntu-latest' steps: - checkout: self - task: NodeTool@0 inputs: versionSpec: '20.x' - script: | npm ci npx playwright install --with-deps chromium displayName: 'Install dependencies' - script: | npx ts-node src/cli/commands/scan.ts \ --url $(APP_URL) \ --format sarif \ --output $(Build.ArtifactStagingDirectory)/a11y-results.sarif displayName: 'Run accessibility scan' - task: AdvancedSecurity-Publish@1 inputs: sarifInputFilePath: '$(Build.ArtifactStagingDirectory)/a11y-results.sarif' category: 'accessibility' displayName: 'Publish SARIF to Advanced Security' -
Notez les éléments clés de
AdvancedSecurity-Publish@1:Entrée Objectif sarifInputFilePathChemin vers le fichier SARIF généré par l’étape d’analyse categoryRegroupe les alertes sous une catégorie dans le tableau de bord Advanced Security 
-
Le pipeline exécute l’analyse d’accessibilité et publie les résultats en un seul travail. ADO Advanced Security ingère le fichier SARIF et crée des alertes pour chaque résultat.
Exercice 6.4 : Exécuter le pipeline et observer l’exécution (5 min)
Vous allez déclencher le pipeline et surveiller son exécution dans l’interface Pipelines d’ADO.
-
Accédez à Pipelines dans le portail ADO.
-
Sélectionnez le pipeline a11y-scan-advancedsecurity.
-
Cliquez sur Exécuter le pipeline et acceptez la branche par défaut (
main).
- Surveillez l’exécution du pipeline :
- Observez chaque étape se terminer dans la vue du travail
- Cliquez sur les étapes individuelles pour consulter leurs journaux
- L’étape Publish SARIF to Advanced Security affiche l’état du téléversement
-
Consultez les journaux du pipeline pour l’étape de publication. Vous devriez voir une sortie confirmant l’ingestion du fichier SARIF :
Uploading SARIF file: a11y-results.sarif Category: accessibility Results published to Advanced Security
- Attendez que le pipeline se termine avec succès avant de poursuivre.
Exercice 6.5 : Consulter les résultats dans l’aperçu ADO Advanced Security (5 min)
Vous allez accéder au tableau de bord Advanced Security et examiner les alertes d’accessibilité.
-
Accédez à Advanced Security → Vue d’ensemble dans le portail ADO :
https://advsec.dev.azure.com/MngEnvMCAP675646/AODA%20WCAG%20Compliance/ - Le tableau de bord Vue d’ensemble affiche :
- Le nombre total d’alertes
- Les alertes regroupées par sévérité (Critique, Élevée, Moyenne, Faible)
- Les alertes regroupées par outil (axe-core, IBM Equal Access, personnalisé)
- Un graphique de tendance montrant les alertes au fil du temps

- Cliquez sur Alertes pour voir la liste détaillée des alertes. Chaque alerte affiche :
- L’identifiant de la règle et sa description
- Le niveau de sévérité
- L’emplacement du fichier et le numéro de ligne
- L’outil qui a détecté la violation

- Cliquez sur une alerte individuelle pour voir ses détails, y compris le message SARIF, l’emplacement du code concerné et les recommandations de remédiation.
Exercice 6.6 : Comparer avec l’onglet GitHub Security (5 min)
Vous allez comparer l’expérience ADO Advanced Security avec l’onglet GitHub Security du labo 05.
-
Ouvrez l’aperçu ADO Advanced Security et l’onglet GitHub Security côte à côte.
-
Comparez les aspects suivants :
Aspect Onglet GitHub Security ADO Advanced Security Regroupement des alertes Par outil et sévérité Par sévérité, outil et catégorie Attribution de l’outil SARIF Affiche le nom de l’outil depuis le pilote SARIF Affiche le nom de l’outil et la catégorie Flux de remédiation Créer un ticket depuis l’alerte, lier à une PR Créer un élément de travail depuis l’alerte, lier à AB# Fermeture d’alerte Fermer avec motif Fermer avec état de résolution Accès API REST API et GraphQL REST API - Notez la différence clé dans les flux de remédiation :
- GitHub utilise des tickets et des pull requests pour le suivi des corrections
- ADO utilise des éléments de travail et le lien AB# pour le suivi des corrections (voir labo 07-ado pour plus de détails)

- Les deux plateformes consomment le même format SARIF, les résultats d’analyse sont donc identiques. La différence réside dans la manière dont chaque plateforme présente et gère les alertes.
Point de vérification
Avant de poursuivre, vérifiez :
- Examiné la structure du fichier SARIF et compris le schéma v2.1.0
- Activé GHAzDO Advanced Security sur le projet ADO
- Examiné le pipeline YAML
AdvancedSecurity-Publish@1 - Exécuté le pipeline et confirmé le téléversement SARIF réussi
- Consulté les alertes dans l’aperçu ADO Advanced Security
- Comparé ADO Advanced Security avec l’onglet GitHub Security
Prochaines étapes
Passez au Labo 07-ado : Pipelines YAML ADO pour l’analyse d’accessibilité.