Aller au contenu principal

ServiceNow

GitGuardian propose une intégration avec ServiceNow, permettant aux utilisateurs de synchroniser leurs incidents GitGuardian avec les issues ServiceNow. Cette intégration aide à simplifier les processus de remédiation d'incidents et à les aligner avec le Software Development Lifecycle (SDLC).

Bénéfices

Cette fonctionnalité simplifie le processus de création d'issues ServiceNow à partir des incidents GitGuardian :

  • Supporte la création d'issues manuelle et automatique lors de la détection d'incident.
  • Fournit des templates personnalisables qui utilisent les variables GitGuardian pour des descriptions d'issues sur mesure.
  • Inclut une fonctionnalité d'auto-resolve qui ferme automatiquement les incidents GitGuardian lorsque les issues ServiceNow correspondantes sont résolues.

Configuration de l'intégration

Pour permettre à GitGuardian de créer et gérer des issues dans votre instance ServiceNow, vous devez configurer un utilisateur dédié, créer un web service 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 à la création et mise à jour d'incidents.

  1. Ouvrez ServiceNow : dans l'interface web de votre instance ServiceNow, cherchez « 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 changements sont sauvegardés. Click user Set password L'ID utilisateur et le mot de passe seront utilisés plus tard pour configurer l'intégration dans les paramètres GitGuardian.

  5. Assigner les rôles : sous l'onglet « Roles », cliquez sur « Edit... » et ajoutez les rôles import_set_loader et import_transformer. Sauvegardez les changements. Edit roles Select roles

info

Assurez l'accès à la table cible : si votre table cible est restreinte par des rôles, vous devez assigner 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 panneau de navigation.
  • Ouvrez la table désirée (par exemple, Incident), et faites défiler jusqu'à la section Controls.
  • Là, vous pouvez 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 web service pour les notifications GitGuardian

Dans cette section, nous créons et configurons un web service personnalisé dans ServiceNow pour recevoir les données d'incident depuis GitGuardian et les mapper vers les enregistrements ServiceNow.

  1. Créer le web service :

    • Dans la barre de recherche ServiceNow, cherchez « Web Services » et sélectionnez « Create New » sous System Web Services > Inbound. Click create new web service
    • Nommez le web service en l'identifiant pour les notifications GitGuardian.
    • Sélectionnez la table cible « Incident » (ou toute table personnalisée utilisée pour les incidents).
    • Ajoutez sept champs (lignes) pour le web service, en remplissant les labels pour chacun. Les champs « Name » et « Length » se rempliront automatiquement.
    • Assurez-vous que la longueur des champs description, comments et short description est ajustée (pour éviter le rognage des données dans les tickets ServiceNow). Web service config
  2. Finaliser la transform map

    La Transform Map relie les champs de la notification GitGuardian aux champs correspondants dans votre table ServiceNow. Les champs Coalesce assurent 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 web service, sélectionnez Use Coalesce Field for Record Matching pour désigner le paramètre coalesce 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 les correspondances manquantes : New map
      • Pour le champ Sys ID, mappez-le manuellement vers 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 changez pas le format de date - il doit être yyyy-MM-dd HH:mm:ss pour que le mapping fonctionne.

    La transform map devrait ressembler à ceci :

    Back

  3. Champs additionnels pour les tables personnalisées (Optionnel) :

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. (Ils seront vides si l'issue est créée manuellement depuis 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 changez pas le format - il doit être yyyy-MM-dd HH:mm:ss)
  1. Récupérer l'URL du web service :

    • Sous les « Related Links » du web service, cliquez sur Explore REST API. Explore REST API
    • Copiez le lien vers l'API, en remplaçant {stagingTableName} par le nom de votre web service.

    Cette URL sera utilisée dans les paramètres de GitGuardian.

    Webservice URL

    info

    L'URL devrait 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 credentials et la configuration du web service créés dans les sections précédentes.

  1. Configurer GitGuardian :

    • Dans GitGuardian, allez dans Settings > Integration > Destination > Issue Tracking > ServiceNow.
    • Cliquez sur Add Integration pour l'équipe où vous voulez que l'intégration s'applique (choisissez « All incidents » si elle n'est pas spécifique à une équipe).
    • Utilisez l'URL obtenue à l'étape 9 pour l'Endpoint API URL.
    • Pour Username et Password, saisissez les credentials créés aux étapes 3 et 4.

    Step 1

  2. Définir le contenu de l'issue :

    • Personnalisez le contenu de l'issue ServiceNow (titre et description), en utilisant les variables disponibles.

    Step 2

  3. Définir les paramètres d'automatisation :

    • Vous pouvez configurer les options d'automatisation suivantes :
      • Auto-create : crée automatiquement une issue ServiceNow pour chaque nouvel incident détecté dans GitGuardian - dans le périmètre de l'équipe. (Si non coché, il est toujours possible de créer des issues ServiceNow depuis un incident GitGuardian existant).
      • Auto-update : envoie les mises à jour de GitGuardian vers l'issue ServiceNow associée sous forme de commentaires chaque fois que l'incident GitGuardian change.
      • Auto-resolve : lorsque l'issue ServiceNow liée est marquée comme fermée, l'incident GitGuardian associé sera automatiquement marqué comme Résolu.

    Step 3

  4. Configurer les paramètres auto-resolve (si activés) : Si vous avez sélectionné l'option « Auto-resolve », vous devez définir comment le statut d'une issue ServiceNow déclenchera la fermeture de l'incident GitGuardian correspondant.

    • Pour la table, saisissez la table cible de ServiceNow (la valeur entre crochets de l'étape 6).
    • Pour le resolve status, spécifiez :
      • Le nom du champ dans votre table ServiceNow qui reflète le statut de l'issue (dans la table Incident, ce champ est typiquement appelé « state »).
      • La/les valeur(s) du champ statut (séparées par des virgules) qui devraient déclencher la fermeture de l'incident GitGuardian correspondant.

    Celles-ci peuvent être récupérées en allant dans System Definition > Tables, et en explorant le nom de la table, les colonnes et les choix.

  5. Tester et valider l'intégration : Envoyez une notification de test et confirmez la création d'un incident dans ServiceNow. Test integration

Création manuelle d'issues depuis GitGuardian

Une fois qu'une intégration ServiceNow est configurée, des issues peuvent être créées depuis la page d'incident ou la page liste des incidents.

Create manually

Le formulaire de création est initialisé à partir de la configuration et du template 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, l'issue ServiceNow devient visible sur la page d'incident pour un accès rapide.

attention

La création d'issues en masse depuis la table des incidents n'est pas supportée.