Surveiller les e-mails

Pour configurer la surveillance des e-mails avec l'API Email Audit, un administrateur définit une plage de dates pour que l'auditeur reçoive une copie des e-mails envoyés et reçus par un utilisateur spécifique en pièce jointe. Le nombre maximal de demandes de création et de suppression de moniteurs par jour est de 1 000. Cette limite s'applique à chaque domaine et inclut toutes les demandes effectuées par un administrateur au cours de la journée.

Un scénario d'e-mail surveillé inclut trois types d'utilisateurs :

  • Administrateur : tout administrateur de domaine peut créer, récupérer, mettre à jour et supprimer un moniteur d'e-mails à l'aide de la ressource de moniteur de l'API Email Audit. De plus, un administrateur peut utiliser l'API pour télécharger la boîte aux lettres. Ces opérations ne peuvent être effectuées que dans le domaine sur lequel l'administrateur exerce un contrôle.

  • Utilisateur source : il s'agit de l'utilisateur qui reçoit ou envoie les messages audités par l'utilisateur de la destination de surveillance. Tout administrateur de domaine ou utilisateur de compte peut être un utilisateur source. L'utilisateur source doit se trouver dans le même domaine que l'administrateur et l'utilisateur de destination.

  • Utilisateur de destination : il s'agit de l'auditeur qui reçoit les e-mails audités.

    • reçoit des copies carbone invisibles (Cci) de tous les e-mails entrants et sortants, y compris les pièces jointes entrantes et sortantes, les messages transférés et les e-mails envoyés depuis des appareils mobiles.
    • Si vous le souhaitez, un administrateur de domaine peut activer des fonctionnalités d'audit supplémentaires pour l'utilisateur de destination. Les fonctionnalités facultatives incluent l'audit des brouillons d'e-mails enregistrés et des discussions Hangouts archivées avec d'autres utilisateurs, qu'ils appartiennent ou non au domaine.
    • Même si l'utilisateur de destination reçoit une copie Cci du message, l'association Cci n'est pas visible dans les en-têtes de message accessibles dans le compte de l'utilisateur source.
    • Chaque message électronique audité est envoyé à l'utilisateur de destination sous forme de pièce jointe. L'administrateur du domaine peut configurer ces messages pour qu'ils contiennent l'intégralité de l'e-mail ou uniquement les en-têtes.
    • Cet utilisateur de destination doit disposer d'un compte de messagerie actif dans le domaine surveillé. Il doit s'agir du même domaine que celui associé à l'administrateur et à l'utilisateur source.
    • Un utilisateur de destination peut être un administrateur ou un utilisateur du domaine. De plus, cet utilisateur de destination peut changer de rôle pour devenir un utilisateur source audité par un autre utilisateur de destination qui, à son tour, reçoit des copies de tous les e-mails audités envoyés au premier utilisateur de destination.
    • Un administrateur de domaine crée un moniteur d'e-mails audités pour une paire unique "utilisateur de destination – utilisateur source". En d'autres termes, la relation d'audit est de type "un utilisateur de destination pour un utilisateur source". Chaque audit est effectué à l'aide d'une ressource de surveillance de l'API. À l'aide de plusieurs outils de surveillance des API, un utilisateur de destination peut auditer de nombreux utilisateurs du domaine. De plus, en utilisant plusieurs moniteurs d'API, de nombreux utilisateurs de destination peuvent auditer un utilisateur source.
    • Si un moniteur d'API supplémentaire est créé ou qu'un moniteur d'API existant est mis à jour pour une paire "utilisateur de destination – utilisateur source", le moniteur créé en dernier remplace tous les moniteurs préexistants pour cette paire. En gros, voici comment mettre à jour un contrôleur d'API. Pour en savoir plus sur la mise à jour d'un moniteur, consultez Mettre à jour un moniteur d'e-mails.

Créer une surveillance des e-mails

Pour créer un moniteur d'e-mails, envoyez la requête POST suivante avec la ressource du moniteur d'e-mails :

POST https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/DOMAIN_NAME/SOURCE_USERNAME

Remplacez les éléments suivants :

  • DOMAIN_NAME : nom de domaine Google Workspace (par exemple, example.com).
  • SOURCE_USERNAME : nom d'utilisateur que vous souhaitez surveiller.

La requête POST contient l'en-tête Content-type suivant :

Content-type: application/atom+xml

Pour obtenir la liste complète des paramètres à utiliser dans une requête de surveillance des e-mails, consultez Ressources : monitor.

Exemple de création d'un moniteur

L'exemple utilise les paramètres suivants :

  • L'utilisateur à auditer est amal@example.com.
  • "destUserName" indique "izumi".
  • "beginDate" indique "June 15, 2022, 00:00 hours".
  • "endDate" indique "June 30, 2022, 23:20 hours".
  • "incomingEmailMonitorLevel" indique "FULL_MESSAGE".
  • "outgoingEmailMonitorLevel" indique "HEADER_ONLY".
  • "draftMonitorLevel" indique "FULL_MESSAGE".
  • "chatMonitorLevel" indique "FULL_MESSAGE".

Protocole

POST https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal

<atom:entry xmlns:atom='http://www.w3.org/2005/Atom' xmlns:apps='http://schemas.google.com/apps/2006'>
   <apps:property name='destUserName' value='izumi'/>
   <apps:property name='beginDate' value='2022-06-15 00:00'/>
   <apps:property name='endDate' value='2022-06-30 23:20'/>
   <apps:property name='incomingEmailMonitorLevel' value='FULL_MESSAGE'/>
   <apps:property name='outgoingEmailMonitorLevel' value='HEADER_ONLY'/>
   <apps:property name='draftMonitorLevel' value='FULL_MESSAGE'/>
   <apps:property name='chatMonitorLevel' value='FULL_MESSAGE'/>
</atom:entry>

Si l'opération aboutit, le serveur renvoie un code d'état 201 CREATED et une entrée AtomPub avec l'élément entry affichant les nouveaux paramètres de surveillance :

<entry xmlns:atom='http://www.w3.org/2005/Atom' xmlns:apps='http://schemas.google.com/apps/2006'>
    <id>https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal/id</id>
    <updated>2022-04-17T15:02:45.646Z</updated/>
    <link rel='self' type='application/atom+xml' href='https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal/id'/>
    <link rel='edit' type='application/atom+xml' href='https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal/id'/>
    <apps:property name='destUserName' value='izumi'/>
    <apps:property name='beginDate' value='2022-06-15 00:00'/>
    <apps:property name='endDate' value='2022-06-30 23:20'/>
    <apps:property name='incomingEmailMonitorLevel' value='FULL_MESSAGE'/>
    <apps:property name='outgoingEmailMonitorLevel' value='HEADER_ONLY'/>
    <apps:property name='draftMonitorLevel' value='FULL_MESSAGE'/>
    <apps:property name='chatMonitorLevel' value='FULL_MESSAGE'/>
</entry>

Java

import java.util.Calendar;
import com.google.gdata.client.appsforyourdomain.audit.AuditService;
import com.google.gdata.data.appsforyourdomain.generic.GenericEntry;
import com.google.gdata.client.appsforyourdomain.audit.MailMonitor;
...

MailMonitor monitor = new MailMonitor();
Calendar beginDate = Calendar.getInstance();
beginDate.set(2022, Calendar.JUNE, 15, 0, 0)
monitor.setBeginDate(beginDate.getTime());
Calendar endDate = Calendar.getInstance();
endDate.set(2022, Calendar.JUNE, 30, 23, 20);
monitor.setEndDate(endDate.getTime());
monitor.setIncomingEmailMonitorLevel("FULL_MESSAGE");
monitor.setOutgoingEmailMonitorLevel("HEADER_ONLY");
monitor.setDraftMonitorLevel("FULL_MESSAGE");
monitor.setChatMonitorLevel("FULL_MESSAGE");
monitor.setDestUserName("izumi");

AuditService service = new AuditService("admin@example.com", "p@55w0rd", "example.com", "example.com-auditapp-v1");
GenericEntry entry = service.createMailMonitor("amal", monitor);

.NET

using System;
using Google.GData.Apps;
using Google.GData.Extensions.Apps;
...

MailMonitor monitor = new MailMonitor();
monitor.BeginDate = new DateTime(2022, 6, 15);
monitor.EndDate = new DateTime(2022, 6, 30, 23, 20, 0);
monitor.IncomingEmailMonitorLevel = MonitorLevel.FULL_MESSAGE;
monitor.OutgoingEmailMonitorLevel = MonitorLevel.HEADER_ONLY;
monitor.DraftMonitorLevel = MonitorLevel.FULL_MESSAGE;
monitor.ChatMonitorLevel = MonitorLevel.FULL_MESSAGE;
monitor.DestinationUserName = "izumi";

AuditService service = new AuditService("example.com", "example.com-auditapp-v1");
service.setUserCredentials("admin@example.com", "p@55w0rd");
MailMonitor monitorEntry = service.CreateMailMonitor("amal", monitor);

Modifier une surveillance des e-mails

Lorsque vous mettez à jour un écran avec le même utilisateur source et le même utilisateur de destination, les paramètres de propriété de l'écran initial sont remplacés par les nouveaux paramètres.

Pour mettre à jour la configuration d'audit dans un moniteur d'e-mails, envoyez une requête POST à l'URI du flux du moniteur et incluez l'en-tête Authorization :

POST https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/DOMAIN_NAME/SOURCE_USERNAME

Remplacez les éléments suivants :

  • DOMAIN_NAME : nom de domaine Google Workspace (par exemple, example.com).
  • SOURCE_USERNAME : nom d'utilisateur du moniteur d'e-mails que vous souhaitez mettre à jour.

Exemple de mise à jour d'un moniteur d'e-mails

Cet exemple met à jour le moniteur créé dans l'exemple de création d'un moniteur d'e-mails en mettant à jour la propriété requise endDate et la propriété facultative chatMonitorLevel. Cet exemple utilise les paramètres suivants :

  • La nouvelle valeur endDate est August 30, 2022, 23:20 hours.
  • chatMonitorLevel est désormais HEADER_ONLY.
  • L'utilisateur à auditer reste amal@example.com.
  • destUserName reste izumi.

Les propriétés du moniteur qui n'ont pas été mises à jour retrouvent leurs valeurs par défaut. Par exemple, dans cet exemple, les propriétés incomingEmailMonitorLevel et outgoingEmailMonitorLevel reviennent à FULL_MESSAGE, et draftMonitorLevel revient à NONE.

Protocole

POST https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal

<atom:entry xmlns:atom='http://www.w3.org/2005/Atom' xmlns:apps='http://schemas.google.com/apps/2006'>
    <apps:property name='destUserName' value='izumi'/>
    <apps:property name='endDate' value='2022-08-30 23:20'/>
    <apps:property name='chatMonitorLevel' value='HEADER_ONLY'/>
</atom:entry>

Si l'opération aboutit, le serveur renvoie un code d'état 201 CREATED et une entrée AtomPub avec les éléments entry mis à jour. Les propriétés qui n'ont pas été mises à jour et qui sont affichées dans la réponse reviennent à leurs valeurs par défaut.

<entry>
<entry xmlns='http://www.w3.org/2005/Atom' xmlns:apps='http://schemas.google.com/apps/2006'>
    <id>https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal/izumi</id>
    <updated>2022-08-20T00:28:57.319Z</updated>
    <link rel='self' type='application/atom+xml' href="https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal/izumi" />
    <link rel='edit' type='application/atom+xml' href="https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal/izumi" />
    <apps:property name='chatMonitorLevel' value='HEADER_ONLY' />
    <apps:property name='destUserName' value='izumi' />
    <apps:property name='endDate' value='2022-08-30 23:20' />
</entry>

Java

import java.util.Calendar;
import com.google.gdata.client.appsforyourdomain.audit.AuditService;
import com.google.gdata.client.appsforyourdomain.audit.MailMonitor;
import com.google.gdata.data.appsforyourdomain.generic.GenericEntry;
...

MailMonitor monitor = new MailMonitor();
Calendar endDate = Calendar.getInstance();
endDate.set(2022, Calendar.AUGUST, 30, 23, 20);
monitor.setEndDate(endDate.getTime());
monitor.setChatMonitorLevel("HEADER_ONLY");
monitor.setDestUserName("izumi");

AuditService service = new AuditService("admin@example.com", "p@55w0rd", "example.com", "example.com-auditapp-v1");
GenericEntry entry = service.createMailMonitor("amal", monitor);

.NET

using System;
using Google.GData.Apps;
using Google.GData.Extensions.Apps;
...

MailMonitor monitor = new MailMonitor();
monitor.EndDate = new DateTime(2022, 8, 30, 23, 20, 0);
monitor.ChatMonitorLevel = MonitorLevel.HEADER_ONLY;
monitor.DestinationUserName = "izumi";

AuditService service = new AuditService("example.com", "example.com-auditapp-v1");
service.setUserCredentials("admin@example.com", "p@55w0rd");
MailMonitor monitorEntry = service.CreateMailMonitor("amal", monitor);

Récupérer tous les moniteurs d'e-mails d'un utilisateur source

Pour récupérer tous les moniteurs associés à un utilisateur source, envoyez une requête HTTP GET à l'URI du flux de moniteurs, en utilisant le format UTC pour la date et en incluant l'en-tête Authorization :

GET https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/DOMAIN_NAME/SOURCE_USERNAME

Remplacez les éléments suivants :

  • DOMAIN_NAME : nom de domaine Google Workspace (par exemple, example.com).
  • SOURCE_USERNAME : nom d'utilisateur du moniteur d'e-mails que vous souhaitez récupérer.

Cette opération ne comporte aucun paramètre dans le corps de la requête. Le corps XML est donc vide.

Exemple pour récupérer tous les moniteurs d'e-mails

Cet exemple récupère tous les moniteurs créés pour l'utilisateur amal@example.com :

Protocole

GET https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal

Si l'opération aboutit, le serveur renvoie un code d'état 201 CREATED et un flux AtomPub avec les éléments entry pour deux écrans affichant les paramètres de deux utilisateurs de destination (izumi@example.com, taylor@example.com).

<feed xmlns:atom='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:apps='http://schemas.google.com/apps/2006'>
    <id>https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal</id>
    <updated>2010-03-17T15:29:21.064Z</updated>
    <link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal'/>
    <link rel='http://schemas.google.com/g/2005#post' type='application/atom+xml' href='https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal'/>
    <link rel='self' type='application/atom+xml' href='https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal'/>
    <openSearch:startIndex>1</openSearch:startIndex>
    <entry>
        <id>https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal/izumi</id>
        <updated>2022-04-17T15:29:21.064Z</updated>
        <link rel='self' type='application/atom+xml' href='https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal/izumi&'/>
        <link rel='edit' type='application/atom+xml' href='https://apps-apis.google.com/feeds/compliance/audit/mail/monitor/example.com/amal/izumi&'/>
        <apps:property name='requestId' value='53156'/>
        <apps:property name='destUserName' value='izumi'/>
        <apps:property name='beginDate' value='2022-06-15 00:00'/>
        <apps:property name='endDate' value='2022-06-30 23:20'/>
        <apps:property name='incomingEmailMonitorLevel' value='FULL_MESSAGE'/>
        <apps:property name='outgoingEmailMonitorLevel' value='FULL_MESSAGE'/>
        <apps:property name='draftMonitorLevel' value='FULL_MESSAGE'/>
        <apps:property name='chatMonitorLevel' value='FULL_MESSAGE'/>
   </entry>
   <entry>
        <id>>https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal/taylor</id>
        <updated>2022-05-17T15:29:21.064Z</updated>
        <link rel='self' type='application/atom+xml' href='https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal/taylor'/>
        <link rel='edit' type='application/atom+xml' href='https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal/taylor'/>
        <apps:property name='requestId' value='22405'/>
        <apps:property name='destUserName' value='taylor'/>
        <apps:property name='beginDate' value='2022-06-20 00:00'/>
        <apps:property name='endDate' value='2022-07-30 23:20'/>
        <apps:property name='incomingEmailMonitorLevel' value='FULL_MESSAGE'/>
        <apps:property name='outgoingEmailMonitorLevel' value='FULL_MESSAGE'/>
        <apps:property name='draftMonitorLevel' value='FULL_MESSAGE'/>
        <apps:property name='chatMonitorLevel' value='FULL_MESSAGE'/>
    </entry>
</feed>

Java

import com.google.gdata.client.appsforyourdomain.audit.AuditService;
import com.google.gdata.data.appsforyourdomain.generic.GenericFeed;
...

AuditService service = new AuditService("admin@example.com", "p@55w0rd", "example.com", "example.com-auditapp-v1");
GenericFeed feed = service.retrieveMonitors("amal");

.NET

using System;
using System.Collections.Generic;
using Google.GData.Apps;
using Google.GData.Extensions.Apps;
...

AuditService service = new AuditService("example.com", "example.com-auditapp-v1");
service.setUserCredentials("admin@example.com", "p@55w0rd");
GenericFeed<MailMonitor> monitors = service.RetrieveMailMonitors("amal");

Supprimer une surveillance des e-mails

Pour supprimer une surveillance des e-mails, envoyez une requête HTTP DELETE à l'URI de suppression du flux de surveillance et incluez l'en-tête Authorization :

DELETE https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/DOMAIN_NAME/SOURCE_USERNAME/DESTINATION_USERNAME

Remplacez les éléments suivants :

  • DOMAIN_NAME : nom de domaine Google Workspace (par exemple, example.com).
  • SOURCE_USERNAME : nom d'utilisateur du moniteur d'e-mails que vous souhaitez supprimer.
  • DESTINATION_USERNAME : auditeur qui reçoit les e-mails audités.

Exemple de suppression d'une surveillance des e-mails

Cet exemple supprime les moniteurs créés pour l'utilisateur amal@example.com avec destinationUserName comme izumi.

Protocole

DELETE https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal/izumi

Java

import com.google.gdata.client.appsforyourdomain.audit.AuditService;
...

AuditService service = new AuditService("admin@example.com", "p@55w0rd", "example.com", "example.com-auditapp-v1");
service.deleteMonitor("amal", "izumi");

.NET

using System;
using Google.GData.Apps;
using Google.GData.Extensions.Apps;
...

AuditService service = new AuditService("example.com", "example.com-auditapp-v1");
service.setUserCredentials("admin@example.com", "p@55w0rd");
service.DeleteMailMonitor("amal", "izumi");