Chargement de Nomenclature logicielle fichiers à l’aide d’une REST API
Vérifiez les informations suivantes avant de charger des Nomenclature logicielle fichiers à l’aide d’une API.
Utilisation de REST API
Pour charger un fichier SBOM avec une API, le rôle sn_sbom_core.sbom_ingest est requis.
API de chargement.
Cette API est utilisée pour charger et ingérer un fichier SBOM (CycloneDX/SPDX) dans votre instance.
- XML et JSON dans CycloneDx (versions 1.0 - 1.6).
- JSON dans SPDX (versions 2.2-2.3)
-
Remarque :Les fichiers de plus de 32 Mo peuvent ne pas se charger correctement.
Méthode HTTP : (POST)
- ID de construction
- Étape du cycle de vie
- buildId : chaîne que vous envoyez
- Étape du cycle de vie : deux valeurs, production ou pre_production
- fetchVulenrabilityInfo- t/f
- fetchPackageInfo-t/f
| Paramètres de demande | Valeurs possibles | Description |
|---|---|---|
| productModelId | ID système | ID système du modèle de produit à mapper à l’application racine du SBOM. |
| businessApplicationId | ID système | ID système de l’application d’entreprise à mapper à l’application racine du SBOM. |
| businessApplicationName (déconseillé) | Nom de votre application d’entreprise | Nom de l’application d’entreprise à mapper à l’application racine du fichier .SBOM |
| Source sbom | Un produit tel que Veracode, par exemple | La source de votre SBOM fichier. |
| requestedBy | Un outil ou le nom d’une méthodologie, Jenkins. Si vous utilisez « devops », buildId et lifecycleStage sont obligatoires. | Chargement demandé par |
| ID de construction | Une chaîne que le demandeur envoie. | ID de build de la SBOM build. |
| Étape du cycle de vie | Production ou pre_production | Étape du cycle de vie de l’entité. |
| fetchVulenrabilityInfo | T/F | Si vrai, déclenche l’intégration de Vulnerability Intelligence. |
| Informations sur fetchPackage | T/F | Si vrai, déclenche l’intégration de l’intelligence des packages. |
{
"result": {
"status": "success",
"message": "Queued for processing.",
"bomRecordId": "f207059b4393c290629aa597cbb8f247"
}
}API d’état
- URL D’API : /API/SBOM/CORE/UPLOAD/STATUS
- Méthode HTTP (GET)
| Paramètres de demande | Valeurs possibles | Description |
|---|---|---|
| bomRecordId | ID système | ID d’enregistrement SBOM renvoyé via l’API de chargement pour un chargement SBOM réussi. |
Exemple de réponse par défaut de l’API d’état.
{
"result": {
"bomRecordId": "0407c0fea3e70a505df340f5251e617e",
"uploadStatus": "processed",
"additionalInfoStatus": "not_requested",
"uploadSummary": {
"components": {
"added": 0,
"removed": 0,
"total": 70
}
}
}
}
Réponse d’API d’état avec exemple de paramètres supplémentaires. Si vous avez demandé fetchVulenrabilityInfo pour ce SBOM, vous obtenez la répartition des vulnérabilités dans le cadre de la réponse.
{
"result": {
"bomRecordId": "93af349b4393c290629aa597cbb8f258",
"uploadStatus": "processed",
"additionalInfoStatus": "complete",
"uploadSummary": {
"components": {
"added": 0,
"removed": 0,
"total": 3
},
"vulnerabilityInfo": {
"critical": 0,
"high": 0,
"medium": 0,
"low": 0,
"none": 0
}
},
"buildId": "1"
}
}
Si vous avez demandé fetchPackageInfo pour ce SBOM, vous obtenez des nombres périmés et abandonnés dans le cadre de la réponse.
Une fois qu’un SBOM est traité avec succès, l’endroit où vous affichez les enregistrements chargés dépend des applications que vous utilisez.
- Si vous utilisez SBOM Réponse, l’enregistrement d’entité BOM s’affiche dans la liste État d’ingestion SBOM du module File d’attente BOM de l’espace SBOM de travail.
- Si vous utilisez SBOM Core, accédez à .
Améliorations des normes prises en charge SBOM et des informations générales d’utilisation
- XML et JSON dans CycloneDx (versions 1.0 - 1.6).
- JSON dans SPDX (versions 2.2-2.3)
-
Remarque :Les fichiers de plus de 32 Mo peuvent ne pas se charger correctement.
- Importez des informations supplémentaires dans des fichiers SBOM CycloneDX avec la propriété (sn_sbom_core.collect_properties). Cette propriété est désactivée par défaut. Activez la propriété pour importer des informations qui ne sont généralement pas prises en charge. Toutes les informations importées à partir de ces propriétés sont téléchargées dans la table Propriété du composant SBOM [sn_sbom_comp_property] pour ce qui suit :
- Fichiers SBOM chargés
- Métadonnées
- Vulnérabilités individuelles
- Composants
- Affichez les données de composant importées pour les licences déclarées et conclues pour les fichiers SBOM dans les versions 1.4 et ultérieures de CycloneDX dans deux nouveaux champs de licence :
- Déclaré
- Conclu
- La prise en charge de l’analyse SBOM est étendue aux types de composants CycloneDX suivants :
- Version 1.5 : plateforme, données, pilote d’appareil, modèle d’apprentissage machine
- Version 1.6 : Cryptographique
- XML et JSON dans CycloneDx (jusqu’à la version 1.4 incluse).
- JSON dans SPDX (jusqu’à la version 2.3 incluse).
Si l’utilisateur appelant est authentifié avec succès et qu’il dispose du rôle sn_sbom_core.sbom_ingest dans votre ServiceNow instance, vous pouvez accéder à l’API depuis l’extérieur de votre instance pour charger les SBOM données.
Une fois les données chargées, elles sont analysées. Avant d’analyser les données, les exigences suivantes sont vérifiées :
- La validité des données entrantes est vérifiée au format JSON ou XML.
- Le format BOM est pris en charge. À partir de la version 2.1 de SBOM Core, les formats CycloneDX (JSON et XML) et SPDX (XML) sont pris en charge.
- Les champs minimaux sont disponibles afin que les données puissent être analysées.
Une fois ces vérifications vérifiées, une entrée est effectuée dans la table Nomenclature [sn_sbom_doc] avec les données entrantes SBOM en pièce jointe.
Tous les composants répertoriés dans un SBOM ont un type défini.
- Les composants pour lesquels SBOM des fichiers ont été chargés sont considérés comme des entités BOM.
- Les composants répertoriés comme type=library sont considérés comme des composants tiers.