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 particulier en pièce jointe. Le nombre maximal de requêtes de création et de suppression de moniteurs par jour est de 1 000. Cette limite s'applique par domaine et inclut toutes les requêtes effectuées par un administrateur au cours de la journée.

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

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

  • Utilisateur source : l'utilisateur source est celui qui reçoit ou envoie des messages qui sont audités par l'utilisateur de destination de la surveillance. Tout administrateur de domaine ou utilisateur de compte peut être un utilisateur source. L'utilisateur source doit appartenir au même domaine que l'administrateur et l'utilisateur de destination.

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

    • Il reçoit les copies carbone masquées (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.
    • Un administrateur de domaine peut éventuellement 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 l'audit des chats Hangouts archivés avec d'autres utilisateurs qui peuvent être membres ou non du domaine.
    • Même si l'utilisateur de destination reçoit une copie du message en Cci, l'association Cci n'est pas visible dans les en-têtes de message accessibles dans le compte de l'utilisateur source.
    • Chaque e-mail audité est envoyé à l'utilisateur de destination en tant que pièce jointe. L'administrateur du domaine peut configurer ces messages pour qu'ils incluent le message d'e-mail complet ou uniquement les en-têtes de message.
    • 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. 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 de messagerie audité pour une paire "utilisateur de destination - utilisateur source" unique. En d'autres termes, la relation d'audit est un utilisateur de destination par rapport à un utilisateur source. Chaque audit est effectué à l'aide d'une ressource de surveillance de l'API. À l'aide de plusieurs moniteurs d'API, un utilisateur de destination peut auditer de nombreux utilisateurs du domaine. De plus, grâce à l'utilisation de 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. Voici comment mettre à jour un moniteur d'API. Pour en savoir plus sur la mise à jour d'un moniteur, consultez Mettre à jour un moniteur de messagerie.

Créer une surveillance des e-mails

Pour créer un moniteur d'e-mails, envoyez la requête POST suivante avec la ressource de surveillance des 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 la page 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 la requête 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 du moniteur:

<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 moniteur avec le même utilisateur source et utilisateur de destination, les paramètres de propriété du moniteur initial sont remplacés par les nouveaux paramètres.

Pour mettre à jour la configuration d'audit dans un moniteur de messagerie, 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 de messagerie que vous souhaitez mettre à jour.

Exemple de mise à jour d'un moniteur de messagerie

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

  • La nouvelle 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 à 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 la requête 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 ne s'affichent pas dans la réponse reprennent 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érez tous les moniteurs de messagerie 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 de messagerie 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 de récupération de tous les moniteurs de messagerie

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 réussit, le serveur renvoie un code d'état 201 CREATED et un flux AtomPub avec les éléments entry pour deux moniteurs 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 de messagerie que vous souhaitez supprimer.
  • DESTINATION_USERNAME: l'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");