Google Chat

Ce document explique comment intégrer Google Chat à Google SecOps.

Autorisations liées aux produits

Créer un compte de service

  1. Dans la console Google Cloud , sélectionnez un projet Google Cloud existant ou créez-en un. Notez que le projet Google Cloud sélectionné doit faire partie de l'organisation dans Google Cloud.
  2. Cliquez sur le menu ☰, puis sélectionnez l'option de menu API et services > Identifiants.
  3. En haut de la page, cliquez sur + CRÉER DES IDENTIFIANTS > Compte de service.
  4. Saisissez le nom du compte de service à afficher dans la console.
  5. Facultatif : saisissez la description du compte de service.
  6. Cliquez sur CRÉER, puis sur CONTINUER et OK pour terminer la création du compte de service.

Créer les identifiants du compte de service

  1. Après avoir créé le compte de service, vous serez redirigé vers la liste des identifiants que vous pouvez utiliser pour le projet Google Cloud . Dans la section Comptes de service, cliquez sur le compte de service que vous venez de créer. Il sera nommé service-account-name@project-name-XXXXXX.iam.gserviceaccount.com.
  2. Cliquez sur AJOUTER UNE CLÉ > Créer une clé.
  3. Laissez l'option "JSON" sélectionnée, puis cliquez sur CRÉER.

Le téléchargement du fichier d'identifiants dont vous aurez besoin pour accéder à l'API en tant que compte de service commence.

Configurer un nouveau projet Apps Script

  1. Accédez à Google Apps Script.
  2. Créez un projet Apps Script.
  3. Pour exécuter la fonctionnalité d'intégration, ajoutez le code suivant au projet que vous venez de créer :

    var SCOPE = 'https://www.googleapis.com/auth/chat.bot';
    // The values below are copied from the JSON file downloaded upon
    // service account creation.
    // For SERVICE_ACCOUNT_PRIVATE_KEY, remember to include the BEGIN and END lines of the private key
    var SERVICE_ACCOUNT_PRIVATE_KEY = '...';
    var SERVICE_ACCOUNT_EMAIL = 'service-account@project-id.iam.gserviceaccount.com';
    
    // Posts a message into the given space ID via the API, using
    // service account authentication.
    function postMessage(spaceId, message) {
      var service = OAuth2.createService('chat')
          .setTokenUrl('https://accounts.google.com/o/oauth2/token')
          .setPrivateKey(SERVICE_ACCOUNT_PRIVATE_KEY)
          .setClientId(SERVICE_ACCOUNT_EMAIL)
          .setPropertyStore(PropertiesService.getUserProperties())
          .setScope(SCOPE);
      if (!service.hasAccess()) {
        Logger.log('Authentication error: %s', service.getLastError());
        return;
      }
      var url = 'https://chat.googleapis.com/v1/' + spaceId + '/messages';
      UrlFetchApp.fetch(url, {
        method: 'post',
        headers: { 'Authorization': 'Bearer ' + service.getAccessToken() },
        contentType: 'application/json',
        payload: JSON.stringify(message),
      });
    }
    
  4. Ouvrez le fichier d'identifiants du compte de service téléchargé depuis la consoleGoogle Cloud .

  5. Copiez la valeur private_key (celle qui commence par -----BEGIN PRIVATE KEY-----) et collez-la dans SERVICE_ACCOUNT_PRIVATE_KEY dans le projet Apps Script.

  6. Copiez la valeur "client_email" du fichier d'identifiants, puis collez-la dans SERVICE_ACCOUNT_EMAIL dans le projet Apps Script.

  7. Associez le projet Apps Script au projet Google Cloud que vous avez créé.

  8. Revenez à la console Google Cloud , puis sélectionnez l'élément de menu ☰ > IAM et administration > Paramètres.

  9. Copiez le numéro de projet défini sur cette page.

  10. Dans votre projet Apps Script, sélectionnez l'élément de menu Paramètres du projet > Google Cloud Projet, puis collez le numéro du projet dans la boîte de dialogue "Saisissez le numéro du projet ici".

  11. Cliquez sur Définir un projet.

Activer l'API Google Chat

  1. Accédez à ☰ > API et services, puis sélectionnez Bibliothèque.
  2. Recherchez API Google Chat, puis cliquez sur le seul résultat.
  3. Cliquez sur ACTIVER.

L'API est alors activée pour votre projet.

Déployer un bot

  1. Dans l'UI Apps Script, accédez à Déployer > Nouveau déploiement.
  2. Sélectionnez Module complémentaire pour le nouveau type de déploiement.
  3. Saisissez un nom et une description pour le déploiement, puis cliquez sur Enregistrer.
  4. Une fois l'enregistrement terminé, cliquez sur Get ID (Obtenir l'ID) à côté du déploiement que vous venez de créer, puis copiez la valeur de l'ID de déploiement.

Configurez le bot Google Chat :

  1. Dans la console Google Cloud , accédez à ☰ > API et services > Tableau de bord.
  2. Dans la liste des API activées, sélectionnez API Google Chat.
  3. Cliquez sur Gérer pour ouvrir la page de l'API Google Chat.
  4. Sur la page qui s'ouvre, sélectionnez l'onglet Configuration et configurez votre bot :

    • Dans le champ Nom de l'application, saisissez "Application Chat Google Security Operations".
    • Dans le champ URL de l'avatar, saisissez https://developers.google.com/chat/images/chat-product-icon.png.
    • Dans le champ Description, saisissez "Application Chat Google SecOps pouvant être utilisée pour envoyer des messages de Google SecOps vers un espace Google Chat".
    • Dans la section Fonctionnalités, sélectionnez L'application fonctionne dans les espaces comprenant plusieurs utilisateurs.
    • Dans la section Paramètres de connexion, sélectionnez Projet Apps Script et collez l'ID de déploiement obtenu lors de la procédure Déployer un bot.
    • Dans la section Autorisations, sélectionnez Utilisateurs et groupes spécifiques de votre domaine, puis indiquez qui doit pouvoir interagir avec le bot.
    • Cliquez sur Enregistrer. La configuration de l'application est terminée.

Comme l'application Google Chat ne peut pas créer d'espaces (lancer des conversations), l'application Google SecOps Chat doit être ajoutée aux espaces auxquels elle doit envoyer des messages.

Une fois l'intégration configurée, l'action "Lister les espaces" peut être utilisée pour récupérer les espaces auxquels l'application Google SecOps a accès (auxquels elle peut envoyer des messages).

Si l'action "Lister les espaces" n'affiche aucun espace disponible, cela signifie que votre application ne pourra envoyer de messages dans aucun espace. Veuillez revenir aux instructions détaillées ci-dessus et vous assurer que vous avez suivi chaque étape attentivement.

Configurer l'intégration de Google Chat dans Google SecOps

Pour obtenir des instructions détaillées sur la configuration d'une intégration dans Google SecOps, consultez Configurer des intégrations.

Paramètres d'intégration

Utilisez les paramètres suivants pour configurer l'intégration :

Nom à afficher du paramètre Type Valeur par défaut Est obligatoire Description
URL racine de l'API Chaîne https://chat.googleapis.com/ Oui URL racine de l'API que l'intégration utilise pour se connecter au service Google Chat.
Compte de service Mot de passe N/A Oui Contenu du fichier JSON du compte de service que le chatbot utilise pour interagir avec le service Google Chat.
Vérifier le protocole SSL Case à cocher Cochée Oui Si cette option est activée, vérifiez que le certificat SSL de la connexion au service Google Chat est valide.

Actions

Ping

Description

Testez la connectivité à Google Chat avec les paramètres fournis sur la page de configuration de l'intégration dans la page Google SecOps Content Hub.

Exécuter sur

Cette action ne s'exécute pas sur les entités et ne comporte pas de paramètres d'entrée obligatoires.

Résultats de l'action

Résultat du script
Nom du résultat du script Options de valeur Exemple
is_success Vrai/Faux is_success:False
Mur des cas
Type de résultat Valeur/Description Type
Message de sortie*

L'action ne doit pas échouer ni arrêter l'exécution d'un playbook :

Si l'opération réussit : "Connexion au service Google Chat établie avec les paramètres de connexion fournis."

L'action doit échouer et arrêter l'exécution d'un playbook :

Si une erreur critique est signalée, par exemple des identifiants incorrects ou une perte de connectivité : "Échec de la connexion au service Google Chat ! L'erreur est {0}".format(exception.stacktrace)"

Général

Lister les espaces

Description

Répertoriez les espaces auxquels le bot Google Chat actuellement configuré a été ajouté.

Paramètres

Nom à afficher du paramètre Type Valeur par défaut Est obligatoire Description
Clé du filtre LDD

Sélectionnez une réponse

Valeurs possibles :

  • Nom
  • Nom à afficher
  • Type
Non Spécifiez la clé à utiliser pour filtrer les espaces Google Chat.
Logique de filtrage LDD

Non spécifié

Valeurs possibles :

  • Non spécifié
  • Égal à
  • Contient
Non Spécifiez la logique de filtre à appliquer. La logique de filtrage est basée sur la valeur fournie dans le paramètre "Clé de filtre".
Valeur du filtre Chaîne N/A Non

Spécifiez la valeur à utiliser dans le filtre.

Si l'option "Égal" est sélectionnée, l'action tente de trouver la correspondance exacte parmi les résultats.

Si l'option "Contient" est sélectionnée, l'action tente de trouver des résultats contenant la sous-chaîne spécifiée.

Si aucune valeur n'est fournie pour ce paramètre, le filtre n'est pas appliqué. La logique de filtrage est basée sur la valeur fournie dans le paramètre "Clé de filtre".

Nombre maximal d'enregistrements à renvoyer Integer 50 Non

Spécifiez le nombre d'enregistrements à renvoyer.

Si rien n'est fourni, l'action renvoie 50 enregistrements.

Inclure les abonnements des utilisateurs Case à cocher Décochée Non Si cette option est activée, les informations sur l'appartenance des utilisateurs sont ajoutées au tableau "Mur d'affaires" et au résultat JSON de l'action.

Exécution

Cette action ne s'exécute pas sur les entités.

Résultats de l'action

Résultat du script
Nom du résultat du script Options de valeur Exemple
is_success Vrai/Faux is_success:False
Mur des cas
Type de résultat Valeur / Description Type
Message de sortie*

L'action ne doit pas échouer ni arrêter l'exécution d'un playbook :

Si des données sont disponibles (is_success=true) : "Successfully found added spaces for the provided criteria in Google Chat."

Si les données ne sont pas disponibles (is_success=false) : "Aucun espace n'a été trouvé pour les critères fournis dans Google Chat"

Si le paramètre "Valeur du filtre" n'a pas de valeur (is_success=true) :

"Le filtre n'a pas été appliqué, car le paramètre "Valeur du filtre" est vide."

L'action doit échouer et arrêter l'exécution d'un playbook :

Si le paramètre "Clé de filtre" est défini sur "Sélectionner" et que le paramètre "Logique de filtre" est défini sur "Égal" ou "Contient" :

"Erreur lors de l'exécution de l'action "Lister les espaces". Motif : vous devez sélectionner un champ dans le paramètre "Clé de filtre"."

Si une valeur non valide est fournie pour le paramètre "Nombre maximal d'enregistrements à renvoyer" :

"Erreur lors de l'exécution de l'action "Lister les espaces". Motif : "La valeur fournie pour "Nombre maximal d'enregistrements à renvoyer" n'est pas valide. Veuillez indiquer un nombre positif."

Si une erreur fatale est signalée (par exemple, des identifiants incorrects, l'absence de connexion au serveur, etc.) :

"Erreur lors de l'exécution de l'action "Lister les espaces". Reason: {0}''.format(error.Stacktrace)

Général
Tableau du mur des cas

Nom du tableau : Espaces disponibles auxquels le bot a été ajouté Colonnes du tableau : {fields}

Remarque : Si la case "Inclure les membres" est cochée, une colonne supplémentaire contenant le nom à afficher des membres de l'espace est ajoutée.

Général

Envoyer un message

Description

Envoyez un message à un espace Google Chat auquel l'application Google SecOps a été ajoutée.

Paramètres

Nom à afficher du paramètre Type Valeur par défaut Est obligatoire Description
Nom de l'espace Chaîne N/A Oui

Spécifiez le nom de l'espace auquel envoyer le message.

Exemple de nom d'espace : AAAAdaTsel0

Texte du message Chaîne N/A Oui Spécifiez le texte du message à envoyer.

Exécution

Cette action ne s'exécute pas sur les entités.

Résultats de l'action

Résultat du script
Nom du résultat du script Options de valeur Exemple
is_success Vrai/Faux is_success:False
Mur des cas
Type de résultat Valeur / Description Type
Message de sortie*

L'action ne doit pas échouer ni arrêter l'exécution d'un playbook :

Si un message est envoyé (is_success=true) : "Le message a bien été envoyé."

L'action doit échouer et arrêter l'exécution d'un playbook :

Si une erreur critique est signalée, par exemple une absence de connexion ou des identifiants incorrects : "Erreur lors de l'exécution de l'action "Envoyer un message". Reason: {0}''.format(error.Stacktrace)

Général

Envoyer un message avancé

Description

Envoyez un message avancé à un espace Google Chat en fonction de la charge utile JSON du message fourni.

Paramètres

Nom à afficher du paramètre Type Valeur par défaut Est obligatoire Description
Nom de l'espace Chaîne N/A Oui

Spécifiez le nom de l'espace auquel envoyer le message.

Exemple de nom d'espace : AAAAdaTsel0

Charge utile JSON du message Chaîne {"cards":[{"sections":[{"widgets":[{"image":{"imageUrl":"https://..."}},{"buttons":[{"textButton":{"text":"OPEN IN GOOGLE MAPS","onClick":{"openLink":{"url":"https://..."}}}}]}]}]}]} Oui

Spécifiez la charge utile JSON à envoyer avec le message.

Pour obtenir des exemples de charge utile de messages, consultez cet article.

Exécution

Cette action ne s'exécute pas sur les entités.

Résultats de l'action

Résultat du script
Nom du résultat du script Options de valeur Exemple
is_success Vrai/Faux is_success:False
Mur des cas
Type de résultat Valeur / Description Type
Message de sortie*

L'action ne doit pas échouer ni arrêter l'exécution d'un playbook :

Si un message est envoyé avec succès (is_success=True) : "Le message a bien été envoyé."

L'action doit échouer et arrêter l'exécution d'un playbook :

Si la charge utile JSON fournie n'est pas valide : "Error executing action "Send Advanced Message". Motif : la charge utile JSON du message fourni n'est pas valide. "

Si une erreur critique est signalée, par exemple une absence de connexion ou des identifiants incorrects : "Erreur lors de l'exécution de l'action "Envoyer un message avancé". Reason: {0}''.format(error.Stacktrace)

Général

Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.