Google Chat

Version de l'intégration : 2.0

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 Google Cloud.
  2. Cliquez sur le ☰ Menu, puis sélectionnez l'élément 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. Une fois le compte de service créé, 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. Conservez JSON sélectionné, puis cliquez sur CREATE (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 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 et collez-la dans SERVICE_ACCOUNT_EMAIL du 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'interface utilisateur 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 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 à ☰ > APIs & Services > Dashboard (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 de chat Google Security Operations".
    • Dans le champ Avatar URL (URL de l'avatar), saisissez https://developers.google.com/chat/images/chat-product-icon.png.
    • Dans le champ Description, saisissez "Application Google SecOps Chat qui peut être utilisée pour envoyer des messages de Google SecOps à un espace Google Chat".
    • Dans la section Fonctionnalité, 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.

Étant donné que l'application Google Chat ne peut pas créer d'espaces (ni lancer de 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 (et dans lesquels 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 d'avoir suivi chaque étape avec soin.

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 Obligatoire Description
URL racine de l'API Chaîne https://chat.googleapis.com/ Oui URL racine de l'API utilisée par l'intégration 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 fonctionner 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 pour 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 l'onglet "Google Security Operations Marketplace".

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, comme des identifiants incorrects ou une perte de connectivité : "Échec de la connexion au service Google Chat. Error is {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 Obligatoire Description
Clé de 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 filtrage à appliquer. La logique de filtrage fonctionne en fonction de 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 fonctionne en fonction de 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 aucune valeur n'est fournie, 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 les abonnements des utilisateurs sont ajoutées au tableau "Mur des cas" et au résultat JSON de l'action.

Date d'exécution

Cette action ne s'applique pas aux 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) : "Des espaces ajoutés correspondant aux critères fournis ont été trouvés dans Google Chat."

Si aucune donnée n'est disponible (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 aucune 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 une valeur" 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". Raison : 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 : "Une valeur incorrecte a été fournie pour "Nombre maximal d'enregistrements à renvoyer". Veuillez indiquer un nombre positif."

Si une erreur fatale est signalée (par exemple, des identifiants incorrects, une absence de connexion au serveur ou une autre erreur) :

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

Général
Tableau du mur des cas

Nom de la table : bot Espaces disponibles ajouté à Colonnes de la table : {fields}

Remarque : Si la case "Inclure les appartenances des utilisateurs" est cochée, des colonnes supplémentaires avec un nom à afficher pour les membres de l'espace sont ajoutées.

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

Date d'exécution

Cette action ne s'applique pas aux 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 a été 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 une erreur critique est signalée (par exemple, aucune connexion ou identifiants incorrects) : "Erreur lors de l'exécution de l'action "Envoyer un message". Raison : {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 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 message, consultez cet article.

Date d'exécution

Cette action ne s'applique pas aux 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 la charge utile JSON fournie n'est pas valide : "Erreur lors de l'exécution de l'action "Envoyer un message avancé". Motif : la charge utile JSON du message fourni n'est pas valide. "

Si une erreur critique est signalée (par exemple, aucune connexion ou identifiants incorrects) : "Erreur lors de l'exécution de l'action "Envoyer un message avancé". Raison : {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.