Création d’informations d’identification OAuth 2.0 pour GitHub les applications : JWT pour la GitHub Application Vulnerability Integration

  • Rversion finale: Yokohama
  • Mis à jour 30 janv. 2025
  • 10 minutes de lecture
  • Pour intégrer vos GitHub applications à l’aide du jeton de porteur JWT pour le GitHub Application Vulnerability Integrationfichier .

    Rôles requis :
    • sn_vul.app_sec_manager et administrateur pour les enregistrements de votre Now Platform.
    • Aucun rôle d’instance requis pour les tâches de votre GitHub compte.
    • Pour plus d’informations sur le contexte des étapes de cette configuration, consultez la rubrique Protocole OAuth 2.0.

    Créer et configurer l’application GitHub pour le GitHub Application Vulnerability Integration

    Créez une application personnalisée GitHub à partir de votre GitHub compte pour activer l’authentification OAuth 2.0 avec votre GitHub Application Vulnerability Integration instance dans votre instance.

    Avant de commencer

    Rôle requis : aucun rôle d’instance requis

    Pourquoi et quand exécuter cette tâche

    Suivez ces étapes à partir de votre GitHub compte. Reportez-vous à Bâtiment GitHub Applications sur le site Developer pour obtenir des instructions sur la création et la configuration d’applications GitHub personnalisées.

    Procédure

    1. À partir de votre GitHub compte, créez votre GitHub application en accédant à Paramètres du développeur > Applications GitHub.
    2. Dans le champ URL de la page d’accueil , saisissez https://<nom-instance>.service-now.com.
    3. Dans le champ URL de rappel d’autorisation utilisateur , saisissez https://<nom-instance>.service-now.com/oauth_redirect.do.
    4. Dans la section Identification et autorisation des utilisateurs , désélectionnez le champ Faire expirer les jetons d’autorisation de l’utilisateur .
    5. Dans la section Webhook , sélectionnez le champ Actif .
    6. Dans le champ URL Webhook , saisissez https://instance-name>.service-now.com/.
    7. Laissez les champs restants vides (par défaut).
    8. Dans la section Autorisations du référentiel , configurez les paramètres suivants.
      Analyse du code Lecture seule
      Contenus Lecture seule
      Propriétés personnalisées Lecture seule
      Alertes Dependabot Lecture seule
      Métadonnées Lecture seule
      Alertes d’analyse secrète Lecture seule
      Remarque :
      Si vous utilisez déjà une application GitHub et que vous mettez à jour l’une des autorisations, vous devez passer en revue et accepter ces autorisations pour votre application GitHub. Vous pouvez accéder à votre application, puis sélectionner Configurer > Examiner la demande > Accepter de nouvelles autorisations.
    9. Laissez les autorisations restantes sur Aucun accès (par défaut).
    10. Dans la section S’abonner aux événements , sélectionnez l’option Règle de protection du déploiement .
    11. Cliquez avec le bouton droit de la souris sur l’en-tête pour enregistrer les modifications.
    12. Installez l’application nouvellement créée GitHub sur les comptes de votre choix.
      1. Dans la page des paramètres GitHub Apps, sélectionnez votre application.
      2. Dans la barre latérale gauche, sélectionnez Installer l’application.
      3. Sélectionnez Installer en regard du compte d’organisation ou personnel contenant le référentiel approprié.
      4. Installez l’application sur tous les référentiels ou sélectionnez des référentiels.
    13. Après l’installation, sélectionnez les paramètres (icône d’engrenage) de votre application et notez ou notez les informations suivantes.

      Ces détails sont requis lorsque vous créez le registre d’application dans votre Now Platform instance.

      • ID de l'application
      • ID client
      • Secret client.
      • Notez le jeton dans l’URL. Il s’agit de l’ID de jeton que vous saisissez dans l’URL du jeton de votre instance.
    14. Faites défiler la page vers le bas et générez une nouvelle clé privée et enregistrez-la sur votre ordinateur.

    Générer le certificat JKS pour le GitHub Application Vulnerability Integration

    Générez un certificat JKS pour l’authentification JWT pour le GitHub Application Vulnerability Integrationfichier .

    Avant de commencer

    Vous devez noter le mot de passe que vous utilisez pour générer le fichier .jks (mot de passe KeyStore).

    Rôle requis : sn_vul.app_sec_manager

    Procédure

    1. Créez un certificat signé par une autorité de certification à l’aide de la clé privée de l’application GitHub :
      openssl req -new -x509 -key <file-name>.pem -out <certificate-name>.pem -days 1095
    2. Entrez les détails requis.
    3. Créez le fichier PKCS 12 à l’aide de la clé privée de l’application et du certificat signé par l’autorité GitHub de certification :
      openssl pkcs12 -export -in <certificate-name>.pem -inkey <file-name>.pem -certfile <certificate-name>.pem -out <PKCS-12-file-name>.p12 
    4. Fournir le mot de passe d’exportation.
    5. Créez le fichier JKS :
      keytool -importkeystore -srckeystore <PKCS-12-file-name>.p12 -srcstoretype pkcs12 -destkeystore <JKS-certificate-filename>.jks -deststoretype JKS
    6. Fournissez les mots de passe de magasin de clés de destination et source.

    Joindre le certificat de magasin de GitHub clés Java à votre instance pour le GitHub Application Vulnerability Integration

    Activez l’authentification par jeton JWT Bearer Grant en joignant le certificat valide GitHub Java KeyStore (JKS) à votre instance.

    Avant de commencer

    Un certificat Java KeyStore valide.

    Rôle requis : sn_vul.app_sec_manager

    Procédure

    1. Accédez à la Tout > Définition du système > Certificats.
    2. Sélectionnez Nouveau.
    3. Renseignez les champs du formulaire.
      Tableau 1. Champs du formulaire Certificat X.509
      Champ Description
      Nom Nom permettant d'identifier l'enregistrement de façon unique. Par exemple, Mon certificat d’application GitHub pour AVR.
      Notification à l'expiration Option permettant de spécifier les utilisateurs à notifier lorsque le certificat expire.
      Avertissement avant l'expiration (en jours) Nombre de jours pour envoyer une notification avant l’expiration du certificat.
      Actif Option permettant d’activer le certificat.
      Type Option permettant de sélectionner le type de certificat. Sélectionnez Magasin de clés Java.
      Échéance en jours Nombre de jours jusqu’à l’expiration du certificat.
      Mot de passe de magasin de clés Mot de passe associé au certificat (indice : mot de passe KeyStore de destination précédemment créé).
      Description brève Résumé du certificat.
    4. Sélectionnez l’icône Pièces jointes et joignez un certificat JKS.
    5. Sélectionnez Valider les banques/certificats.
      Un message de key_store valide s’affiche pour les fichiers de certificat valides.

    Créer une clé de signature JWT pour le GitHub certificat JKS pour le GitHub Application Vulnerability Integration

    Créez une clé de signature JSON Web Token (JWT) à affecter à votre GitHub certificat Java KeyStore.

    Avant de commencer

    Rôles requis :
    • administrateur
    • sn_vul.app_sec_manager

    Procédure

    1. Accédez à la Tout > OAuth système > Clés JWT.
    2. Sélectionnez Nouveau.
    3. Renseignez les champs du formulaire.
      Tableau 2. Champs du formulaire Clés JWT
      Champ Description
      Nom Nom permettant d’identifier de façon unique la clé de signature JWT. Par exemple, Mon application GitHub Clé JWT pour AVR.
      Magasin de clés de signature Sélectionnez le certificat JKS valide que vous avez joint dans la tâche précédente.
      ID de clé Laissez ce champ vide.
      Algorithme de signature Laissez cette valeur sur RSA 256.
      Signature avec le mot de passe de clé Mot de passe associé à la clé de signature. Il s’agit du mot de passe que vous avez utilisé pour générer le fichier JKS.
      Actif Option permettant d’activer la clé.
    4. Cliquez avec le bouton droit n’importe où dans l’en-tête gris de la page et sélectionnez Enregistrer.

    Créer un fournisseur JWT pour votre GitHub clé de signature pour le GitHub Application Vulnerability Integration

    Ajoutez un fournisseur de jeton Web JSON (JWT) à votre ServiceNow instance pour GitHub.

    Avant de commencer

    Rôles requis :
    • administrateur
    • sn_vul.app_sec_manager

    Procédure

    1. Accédez à la Tout > OAuth système > Fournisseurs JWT.
    2. Sélectionnez Nouveau.
    3. Renseignez les champs du formulaire.
      Tableau 3. Champs du formulaire Fournisseur JWT
      Champ Description
      Nom Nom permettant d’identifier de façon unique le fournisseur JWT. Par exemple, Mon application GitHub Fournisseur JWT pour AVR.
      Intervalle d'expiration (s) Nombre en secondes pour définir la durée de vie des jetons de fournisseur JWT. Vous pouvez conserver ce paramètre par défaut.
      Configuration de la signature Sélectionnez la clé JWT que vous avez créée lors des étapes précédentes.
    4. Cliquez avec le bouton droit sur l’en-tête du formulaire, puis sélectionnez Enregistrer.
    5. Saisissez l’IDGitHub de votre application pour la valeur de la réclamation ISS, dans la liste connexe Réclamations standard.
      Il s’agit de l’ID de l’application GitHub dans votre GitHub console que vous avez créée aux étapes précédentes.
    6. Laissez les valeurs aud et sub vides (par défaut).
    7. Cliquez avec le bouton droit sur l’en-tête du formulaire, puis sélectionnez Enregistrer.

    Inscrivez-vous GitHub en tant que fournisseur OAuth (JWT) pour GitHub Application Vulnerability Integration

    Utilisez les informations générées pendant GitHub la configuration du compte d’application pour vous inscrire GitHub en tant que fournisseur OAuth et permettre à l’instance de demander des jetons OAuth 2.0.

    Avant de commencer

    Rôles requis :
    • administrateur
    • sn_vul.app_sec_manager

    Procédure

    1. Accédez à la Tout > OAuth système > Registre d'application.
    2. Sélectionnez Nouveau.
      Le message Quel type d’application OAuth ? s’affiche.
    3. Sélectionnez Se connecter à un fournisseur OAuth tiers.
    4. Renseignez les champs du formulaire.
      Tableau 4. Champs du formulaire Registre d’application
      Champ Description
      Nom Nom permettant d'identifier l'enregistrement de façon unique. Par exemple, saisissez Mon fournisseur d’applications GitHub pour AVR.
      ID client ID client de votre GitHub application. L’ID client provient de l’application GitHub de votre GitHub console que vous avez créée aux étapes précédentes. Cet ID disponible dans la section À propos de votre GitHub configuration d’application dans GitHub.
      Accessible Laissez ce paramètre dans sa valeur actuelle.
      Secret client Secret client de votre GitHub application. Le secret client provient de l’application GitHub de votre GitHub console que vous avez créée aux étapes précédentes. Cet ID disponible dans la section À propos de votre GitHub configuration d’application dans GitHub.
      Actif Option permettant d’activer la clé. Laissez cette option sélectionnée.
      URL d'autorisation Cette URL est générée automatiquement.
      URL de jeton Emplacement du point de terminaison du jeton que l’instance utilise pour récupérer et actualiser les jetons. Entrez le jeton à partir de l’URL dans votre GitHub application. Il s’agit du jeton affiché dans l’URL une fois votre application installée dans GitHub. Dans la section Installer l’application de votre configuration d’application GitHub dans GitHub, sélectionnez l’engrenage. Le jeton s’affiche dans l’URL de la page Web.
      Script de l’API OAuth Option qui vous permet de référencer un include de script OAuthUtil modifié. Sélectionnez OAuthGitHubJWTHandler.
      Type d'accord par défaut Type de subvention associé au registre d’application. Sélectionnez Support JWT.
    5. Laissez les autres champs de formulaire par défaut.
    6. Cliquez avec le bouton droit sur l’en-tête du formulaire, puis sélectionnez Enregistrer.
    7. Faites défiler l’écran jusqu’à la liste connexe Profils des entités OAuth , sélectionnez-la et ouvrez le profil par défaut qui a été créé dans la liste.
    8. Renseignez le champ Fournisseur JWT avec le fournisseur JWT précédemment créé et enregistrez le formulaire.
    9. Revenez au fichier de registre d’application et enregistrez-le.
    10. Accédez à la Gestion des clés > Politiques d'accès au module > Tout.
    11. Sélectionnez la politique afin qu’com_snc_platform_security_oauth_glideencrypter s’affiche en tant que valeur du champ Module de chiffrement et que OAuthGitHubJWTHandler soit l’include de script dans le champ de script Cible .

      Dans l’image suivante, le com_snc_platform_security_oauth_glideencrypter est sélectionné comme valeur pour le champ Module de chiffrement . Le champ Table Script affiche la table Script Include [sys_script_include] et la valeur du champ Script cible est OAuthGitHubJWTHandler.

      Champ du module de chiffrement avec include de script OAuthGitHubJWTHandler

    12. Sélectionnez Mettre à jour.

      Type : script et résultat : suivre

      Comme illustré dans l’image précédente, la valeur du champ Nom de la politique change et les champs Table de script et Script cible ne sont plus affichés.
    13. Vérifiez que le champ Résultat est défini sur Suivre et enregistrez vos modifications.

    Créer des informations d’identification et des connexions pour le GitHub Application Vulnerability Integration

    Créez un enregistrement d’informations d’identification auprès du fournisseur d’application GitHub précédemment créé pour autoriser des actions.

    Avant de commencer

    Rôles requis :
    • administrateur
    • sn_vul.app_sec_manager

    Procédure

    1. Accédez à la Informations d’identification et connexions > Informations d'identification.
    2. Sélectionnez Nouveau.
    3. Sélectionnez Informations d'identification OAuth 2.0.
    4. Sélectionnez Nouveau et renseignez les champs.
      ChampDescription
      Nom Nom unique pour l’enregistrement.
      Concerne Sélectionnez les informations d’identification OAuth 2.0 dans la liste.
      Profil de l'entité OAuth Sélectionnez l’icône de recherche et localisez le profil d’entité que vous avez créé lors des étapes précédentes.
      Autres champs Laissez ces champs dans leurs valeurs par défaut.
    5. Cliquez avec le bouton droit n’importe où dans l’en-tête de la page et sélectionnez Enregistrer.
      La liste des informations d’identification s’affiche.
    6. Ouvrez l’enregistrement que vous venez de créer et sélectionnez le lien connexe Obtenir un jeton OAuth .
      Un message s’affiche, indiquant que le jeton OAuth a été importé avec succès.
    7. Accédez à la Informations d’identification et connexions > Connexions.
    8. Sélectionnez Nouveau.
    9. Sélectionnez Connexion HTTP(s).
    10. Sélectionnez Nouveau et renseignez les champs.
      ChampDescription
      Nom Nom de l’enregistrement.
      Demande Lecture seule.
      Alias parent (facultatif) Sélectionnez l’icône de recherche et choisissez-en une dans la liste.
      Type Connexion et informations d’identification.
      Type de connexion HTTP.
      Prendre en charge plusieurs connexions actives (facultatif) Désactivé.
      Politique des nouveaux essais par défaut Politique des nouveaux essais HTTP par défaut
      Modèle de configuration À laisser vide.
    11. Sélectionnez Soumettre.
      La liste Alias de connexion et d’informations d’identification s’affiche.
    12. Ouvrez votre enregistrement, puis dans l’onglet de liste connexe Connexions, sélectionnez Nouveau et renseignez les champs de l’enregistrement Connexion HTTP.
      ChampDescription
      Nom Nom de l’enregistrement.
      Actif Activé.
      Information d'identification Sélectionnez l’enregistrement d’informations d’identification que vous avez créé lors des étapes précédentes.
      Alias de connexion Votre enregistrement s’affiche.
      Générateur d'URL Désactivé.
      URL de connexion

      Il s’agit de l’URL de base : https://api.github.com pour Enterprise. Sur site, il s’agit de l’URL de votre point de terminaison GitHub.

      Utiliser Serveur MID (facultatif) Serveur MID est requis pour les messages sur site. Il est facultatif pour Enterprise.
      Délai de connexion Saisissez une valeur.
    13. Sélectionnez Soumettre.
      La liste Alias de connexion et d’informations d’identification s’affiche. Vous êtes maintenant prêt à effectuer les étapes vers Configurez la GitHub Application Vulnerability Integration.. Dans le champ Connexion, entrez les informations d’identification que vous avez créées au cours des étapes précédentes.