ServiceNow
GitGuardian propose une intégration avec ServiceNow, permettant aux utilisateurs de synchroniser leurs incidents GitGuardian avec les tickets ServiceNow. Cette intégration aide à rationaliser les processus de remédiation des incidents et à les aligner avec le cycle de vie de développement logiciel (SDLC).
Avantages
Cette fonctionnalité simplifie le processus de création de tickets ServiceNow à partir des incidents GitGuardian :
- Prend en charge la création manuelle et automatique de tickets lors de la détection d'incidents.
- Fournit des modèles personnalisables utilisant les variables GitGuardian pour des descriptions de tickets adaptées.
- Inclut une fonctionnalité de résolution automatique qui ferme automatiquement les incidents GitGuardian lorsque les tickets ServiceNow correspondants sont résolus.
Configuration de l'intégration
Pour permettre à GitGuardian de créer et gérer des tickets dans votre instance ServiceNow, vous devez configurer un utilisateur dédié, créer un service web et finaliser la configuration dans GitGuardian.
Étape A : Créer l'utilisateur ServiceNow
Dans cette section, nous créons un utilisateur dédié dans ServiceNow pour authentifier et autoriser l'accès de GitGuardian à créer et mettre à jour des incidents.
-
Ouvrez ServiceNow : dans l'interface web de votre instance ServiceNow, recherchez "Users" dans la barre de recherche et cliquez sur "Users" sous System Security > Users and Groups.

-
Créer un nouvel utilisateur : cliquez sur le bouton "New".

-
Configurer l'ID utilisateur : saisissez un nom d'utilisateur dans le champ "User ID" et cochez "Web service access only". Cliquez sur "Submit".
- Astuce : nous recommandons d'utiliser un nom d'utilisateur dédié pour les notifications GitGuardian.

- Astuce : nous recommandons d'utiliser un nom d'utilisateur dédié pour les notifications GitGuardian.
-
Définir le mot de passe : cliquez sur l'utilisateur nouvellement créé et définissez un mot de passe. Assurez-vous que les modifications sont enregistrées.
L'ID utilisateur et le mot de passe seront utilisés ultérieurement pour configurer l'intégration dans les paramètres GitGuardian. -
Attribuer des rôles : sous l'onglet "Roles", cliquez sur "Edit..." et ajoutez les rôles
import_set_loaderetimport_transformer. Enregistrez les modifications.

Assurez-vous de l'accès à la table cible : si votre table cible est restreinte par des rôles, vous devez attribuer ces rôles à l'utilisateur que vous créez.
Comment vérifier et ajouter les rôles requis
- Naviguez vers la définition de la table en allant dans System Definition > Tables dans le volet de navigation.
- Ouvrez la table souhaitée (par exemple, Incident), et faites défiler jusqu'à la section Controls.
- Vous pouvez y voir les rôles requis pour accéder à la table.
- Assurez-vous que l'utilisateur créé pour l'intégration GitGuardian se voit attribuer ces rôles, en plus des rôles déjà spécifiés (
import_set_loaderetimport_transformer).
Étape B : Configurer le service web pour les notifications GitGuardian
Dans cette section, nous créons et configurons un service web personnalisé dans ServiceNow pour recevoir les données d'incident de GitGuardian et les mapper aux enregistrements ServiceNow.
-
Créer le service web :
- Dans la barre de recherche ServiceNow, recherchez "Web Services" et sélectionnez "Create New" sous System Web Services > Inbound.

- Nommez le service web en l'identifiant pour les notifications GitGuardian.
- Sélectionnez la table cible comme "Incident" (ou toute autre table personnalisée utilisée pour les incidents).
- Ajoutez sept champs (lignes) pour le service web, en remplissant les libellés pour chacun. Les champs "Name" et "Length" seront remplis automatiquement.
- Assurez-vous que la longueur des champs
description,commentsetshort descriptionest ajustée (pour éviter que les données ne soient tronquées dans les tickets ServiceNow).
- Dans la barre de recherche ServiceNow, recherchez "Web Services" et sélectionnez "Create New" sous System Web Services > Inbound.
-
Finaliser la carte de transformation
La carte de transformation (Transform Map) lie les champs de la notification GitGuardian aux champs correspondants dans votre table ServiceNow. Les champs de coalescence garantissent que les enregistrements sont soit mis à jour si une correspondance est trouvée, soit créés si aucune correspondance n'existe.
- Après avoir créé le service web, sélectionnez Use Coalesce Field for Record Matching pour désigner le paramètre de coalescence pour le champ approprié et cliquez sur Submit.
- Dans la section "Related Links", cliquez sur Auto Map Matching Fields pour mapper automatiquement les champs de GitGuardian vers votre table ServiceNow.

- Vérifiez les champs mappés et créez toutes les correspondances manquantes :
- Pour le champ
Sys ID, mappez-le manuellement àu_sys_idet assurez-vous qu'il est défini sur coalesce. Cela garantit que les mises à jour sont appliquées aux enregistrements existants.
- Pour les autres champs, ne les définissez pas sur coalesce pour éviter l'écrasement involontaire d'enregistrements.

- Pour le champ
u_timestamp, ne modifiez pas le format de date - il doit êtreyyyy-MM-dd HH:mm:sspour que le mappage fonctionne.
- Pour le champ
La carte de transformation devrait ressembler à ceci :

-
Champs supplémentaires pour les tables personnalisées (facultatif) :
Si vous n'utilisez pas la table Incident par défaut, sachez que les champs suivants sont accessibles et peuvent être mappés pour un contexte plus détaillé sur les secrets détectés. (Ceux-ci seront vides si le ticket est créé manuellement à partir d'un incident GitGuardian)
u_source_nameu_source_typeu_location_urlu_author_nameu_author_emailu_secret_typeu_occurrence_idu_triggered_on(ne modifiez pas le format - il doit êtreyyyy-MM-dd HH:mm:ss)
-
Récupérer l'URL du service web :
- Sous "Related Links" du service web, cliquez sur Explore REST API.

- Copiez le lien vers l'API, en remplaçant
{stagingTableName}par le nom de votre service web.
Cette URL sera utilisée dans les paramètres de GitGuardian.
infoL'URL doit suivre ce format : https://xxxxx.service-now.com/api/now/import/gitguardian_notification (où xxxxx est l'ID de votre instance ServiceNow).
- Sous "Related Links" du service web, cliquez sur Explore REST API.
Étape C : Finaliser la configuration dans GitGuardian
Dans cette section, nous finalisons l'intégration dans GitGuardian en utilisant les identifiants et la configuration du service web créés dans les sections précédentes.
Dans GitGuardian, allez dans Settings > Integration > Destination > Issue Tracking > ServiceNow, puis cliquez sur Add Integration pour l'équipe où vous souhaitez que l'intégration s'applique (choisissez "All incidents" si elle n'est pas spécifique à une équipe). La configuration est ensuite mise en place via un assistant en quatre étapes.
-
Sélectionner les événements (étape 1 sur 4) :
- Donnez un nom à la configuration dans le champ Events name.
- Sous Event subscription, choisissez pour quels événements ServiceNow doit créer des incidents. Activez le groupe d'événements que vous souhaitez surveiller : Internal monitoring, Public monitoring ou Honeytoken. Un seul groupe d'événements peut être actif à la fois.
- Dans la section Notify when, sélectionnez les événements spécifiques qui doivent déclencher la création ou la mise à jour d'un incident dans ServiceNow. Utilisez Filters et Presets pour affiner la sélection, ou Unselect all pour repartir de zéro. L'événement "New incident detected" est toujours sélectionné.

-
Se connecter à votre instance ServiceNow (étape 2 sur 4) :
- Utilisez l'URL obtenue à l'étape 9 pour l'API endpoint URL.
- Pour Username et Password, saisissez les identifiants créés aux étapes 3 et 4. Laissez le mot de passe vide pour conserver l'actuel lors de la modification d'une configuration existante.

-
Définir le contenu du ticket (étape 3 sur 4) :
- Personnalisez le contenu du ticket ServiceNow (titre et description), en utilisant les variables disponibles.

-
Définir les paramètres d'automatisation (étape 4 sur 4) :
- Vous pouvez configurer les options d'automatisation suivantes :
- Auto-create : crée automatiquement un ticket ServiceNow pour chaque nouvel incident détecté dans GitGuardian - dans le périmètre de l'équipe. (Si laissé décoché, il est toujours possible de créer des tickets ServiceNow à partir d'incidents GitGuardian existants).
- Auto-update : envoie les mises à jour de GitGuardian au ticket ServiceNow associé sous forme de commentaires chaque fois que l'incident GitGuardian change.
- Auto-resolve : lorsque le ticket ServiceNow lié est marqué comme fermé, l'incident GitGuardian associé sera automatiquement marqué comme Resolved.
- Cliquez sur Save pour finaliser la configuration.

- Vous pouvez configurer les options d'automatisation suivantes :
Si vous avez sélectionné l'option Auto-resolve, des champs supplémentaires apparaissent pour vous permettre de définir comment le statut d'un ticket ServiceNow déclenche la fermeture de l'incident GitGuardian correspondant :
- Target table name : la table cible de ServiceNow (la valeur entre crochets de l'étape 6, par exemple
incident). - ServiceNow field for the issue status : le nom du champ dans votre table ServiceNow qui reflète le statut du ticket (dans la table Incident, ce champ est généralement appelé
state). - ServiceNow value(s) for the resolved status : la ou les valeurs du champ de statut qui doivent déclencher la fermeture de l'incident GitGuardian correspondant. Séparez les valeurs par une virgule s'il y en a plusieurs.
Les états d'incident ServiceNow par défaut sont : New=1, In Progress=2, On Hold=3, Resolved=6, Closed=7, Canceled=8 (ceux-ci peuvent différer sur une instance personnalisée). Vous pouvez les récupérer en allant dans System Definition > Tables, et en explorant le nom de la table, les colonnes et les choix.
La résolution du ticket ServiceNow lié déclenche la fermeture de l'incident GitGuardian avec un délai de 30 minutes.
Une fois la configuration enregistrée, envoyez une notification de test et confirmez la création d'un incident dans ServiceNow.

Création manuelle de tickets depuis GitGuardian
Une fois qu'une intégration ServiceNow est configurée, les tickets peuvent être créés depuis la page d'incident ou la page de liste des incidents.

Le formulaire de création est initialisé à partir de la configuration et du modèle de l'intégration. Notez que les paramètres auto-update et auto-resolve sont hérités de la configuration et ne peuvent pas être mis à jour manuellement.

Après la création, le ticket ServiceNow devient visible sur la page d'incident pour un accès rapide.
La création groupée de tickets depuis le tableau des incidents n'est pas prise en charge.
Dissocier un ticket
Vous pouvez supprimer le lien entre un incident GitGuardian et son ticket ServiceNow. Ceci est utile lorsqu'un ticket a été lié par erreur ou n'est plus pertinent pour l'incident.
-
Sur la page de l'incident, localisez le ticket ServiceNow lié sous Issue tracking et cliquez sur l'icône de dissociation à côté.

-
Confirmez en cliquant sur Unlink ticket dans la boîte de dialogue.
La dissociation supprime uniquement l'association dans GitGuardian. Le ticket ServiceNow lui-même n'est pas supprimé.