Surveiller les e-mails

Pour configurer la surveillance des e-mails avec l'API Email Audit, un administrateur définit une plage de dates pendant laquelle l'auditeur recevra, sous forme de pièce jointe, une copie des e-mails envoyés et reçus par un utilisateur particulier. Le nombre maximal de requêtes de création et de suppression de surveillance 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é inclut trois types d'utilisateurs:

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

  • Utilisateur source : utilisateur qui reçoit ou envoie les messages 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.

    • Reçoit une copie carbone invisible (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 à partir d'appareils mobiles.
    • Un administrateur de domaine peut, s'il le souhaite, activer des fonctionnalités d'audit supplémentaires pour l'utilisateur de destination. Les fonctionnalités facultatives incluent l'audit des brouillons enregistrés et l'audit des discussions Hangouts archivées avec d'autres utilisateurs membres ou non du domaine.
    • Même si l'utilisateur de destination reçoit une copie du message en Cci, l'association en Cci n'est pas visible dans les en-têtes du message accessibles dans le compte de l'utilisateur source.
    • Chaque e-mail audité est envoyé à l'utilisateur de destination sous forme de pièce jointe. L'administrateur de domaine peut configurer ces messages de sorte qu'ils correspondent soit à l'e-mail complet, soit uniquement à l'en-tête du message.
    • Cet utilisateur de destination doit avoir 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 également 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 une surveillance des e-mails auditée pour une paire utilisateur de destination/utilisateur source unique. En d'autres termes, la relation d'audit est un utilisateur de destination avec un utilisateur source. Chaque audit est effectué à l'aide d'une ressource de surveillance d'API. L'utilisation de plusieurs moniteurs d'API permet à un utilisateur de destination d'auditer de nombreux utilisateurs du domaine. De plus, à l'aide 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 dernier moniteur créé remplace tous les moniteurs préexistants pour cette paire. En gros, c'est ainsi que vous mettez à jour un moniteur d'API. Pour en savoir plus sur la mise à jour d'une surveillance, consultez la page Mettre à jour une surveillance des e-mails.

Créer une surveillance des e-mails

Pour créer une surveillance des 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'une surveillance

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 réussit, 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);

Mettre à jour une surveillance des e-mails

Lors de la mise à jour d'un moniteur avec le même utilisateur source et le même utilisateur de destination, les paramètres de propriété de la surveillance initiale sont remplacés par les nouveaux paramètres.

Pour mettre à jour la configuration d'audit dans une surveillance des e-mails, envoyez une requête POST à l'URI du flux de surveillance 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 de la surveillance des e-mails que vous souhaitez mettre à jour.

Exemple de mise à jour d'une surveillance des e-mails

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

  • Le nouveau 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 valeurs par défaut des propriétés de surveillance qui n'ont pas été mises à jour sont rétablies. 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 réussit, le serveur renvoie un code d'état 201 CREATED et une entrée AtomPub avec les éléments entry mis à jour. Les valeurs par défaut des propriétés qui n'ont pas été mises à jour et qui s'affichent dans la réponse sont rétablies.

<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-mail d'un utilisateur source

Pour récupérer toutes les surveillances associées à un utilisateur source, envoyez une requête HTTP GET à l'URI du flux de surveillance, en utilisant le format UTC pour la date, et incluez 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 de la surveillance des e-mails que vous souhaitez récupérer.

Le corps de la requête n'inclut aucun paramètre pour cette opération. Le corps XML est donc vide.

Exemple de récupération de tous les moniteurs d'e-mail

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 de 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 de la surveillance des 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 surveillances créées 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");