Chargement de Nomenclature logicielle fichiers à l’aide d’une API REST
Vérifiez les informations suivantes avant de charger des Nomenclature logicielle fichiers à l’aide d’une API.
Utilisation de l’API REST
Pour charger un fichier SBOM avec une API, le rôle sn_sbom_core.sbom_ingest est requis.
Charger l’API.
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 version
- Étape du cycle de vie
- buildId : chaîne que vous envoyez
- Étape de 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 avec l’application racine du fichier donné SBOM. |
| businessApplicationId | ID système | ID système de l’application d’entreprise à mapper à l’application racine d’un utilisateur donné SBOM. |
| businessApplicationName (déconseillé) | Nom de votre application d’entreprise | Nom de l’application d’entreprise à mapper avec l’application racine du .SBOM |
| Source sbom | Un produit tel que , par Veracode 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 version | Une chaîne que le demandeur envoie. | ID de version de la SBOM version. |
| É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 la connaissance des vulnérabilités. |
| 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 de l’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 API d’état avec exemple de paramètres supplémentaires. Si vous avez demandé fetchVulenrabilityInfo pour cette nomenclature logicielle, 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 cette SBOM, vous obtenez des comptes périmés et abandonnés dans le cadre de la réponse.
Une fois qu’un SBOM est traité avec succès, l’emplacement d’affichage des 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 apportées aux normes prises en charge SBOM et aux 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 les informations supplémentaires dans des fichiers CycloneDX SBOM 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 les éléments suivants :
- Fichiers SBOM chargés
- Métadonnées
- Vulnérabilités individuelles
- Composants
- Consultez les données de composants 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 de machine learning
- 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 :
- Les données entrantes sont vérifiées qu’elles sont au format JSON ou XML valide.
- 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.
- Le minimum de champs est disponible 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 les 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.