Aller au contenu principal

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.

  1. 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. Click Users

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

  3. 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. User config
  4. 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. Click user Set password L'ID utilisateur et le mot de passe seront utilisés ultérieurement pour configurer l'intégration dans les paramètres GitGuardian.

  5. Attribuer des rôles : sous l'onglet "Roles", cliquez sur "Edit..." et ajoutez les rôles import_set_loader et import_transformer. Enregistrez les modifications. Edit roles Select roles

info

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_loader et import_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.

  1. Créer le service web :

    • Dans la barre de recherche ServiceNow, recherchez "Web Services" et sélectionnez "Create New" sous System Web Services > Inbound. Click create new web service
    • 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, comments et short description est ajustée (pour éviter que les données ne soient tronquées dans les tickets ServiceNow). Web service config
  2. 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. Transform map config
    • Vérifiez les champs mappés et créez toutes les correspondances manquantes : New map
      • Pour le champ Sys ID, mappez-le manuellement à u_sys_id et assurez-vous qu'il est défini sur coalesce. Cela garantit que les mises à jour sont appliquées aux enregistrements existants. Sys ID map
      • Pour les autres champs, ne les définissez pas sur coalesce pour éviter l'écrasement involontaire d'enregistrements. Timestamp Source
      • Pour le champ u_timestamp, ne modifiez pas le format de date - il doit être yyyy-MM-dd HH:mm:ss pour que le mappage fonctionne.

    La carte de transformation devrait ressembler à ceci :

    Back

  3. 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_name
  • u_source_type
  • u_location_url
  • u_author_name
  • u_author_email
  • u_secret_type
  • u_occurrence_id
  • u_triggered_on (ne modifiez pas le format - il doit être yyyy-MM-dd HH:mm:ss)
  1. Récupérer l'URL du service web :

    • Sous "Related Links" du service web, cliquez sur Explore REST API. 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.

    Webservice URL

    info

    L'URL doit suivre ce format : https://xxxxx.service-now.com/api/now/import/gitguardian_notification (où xxxxx est l'ID de votre instance ServiceNow).

É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.

  1. 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é.

    Select events

  2. 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.

    Connect to ServiceNow

  3. Définir le contenu du ticket (étape 3 sur 4) :

    • Personnalisez le contenu du ticket ServiceNow (titre et description), en utilisant les variables disponibles.

    Define issue content

  4. 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.

    Define automation parameters

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.

remarque

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.

Test integration

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.

Create manually

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.

Creation form

Après la création, le ticket ServiceNow devient visible sur la page d'incident pour un accès rapide.

attention

La création groupée de tickets depuis le tableau des incidents n'est pas prise en charge.

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.

  1. Sur la page de l'incident, localisez le ticket ServiceNow lié sous Issue tracking et cliquez sur l'icône de dissociation à côté.

    Issue tracking links

  2. Confirmez en cliquant sur Unlink ticket dans la boîte de dialogue.

remarque

La dissociation supprime uniquement l'association dans GitGuardian. Le ticket ServiceNow lui-même n'est pas supprimé.