Supervisar los correos electrónicos

Para configurar la supervisión de correo electrónico con la API de auditoría de correo electrónico, un administrador establece un período para que el auditor reciba como archivo adjunto una copia de los correos electrónicos enviados y recibidos de un usuario específico. La cantidad máxima de solicitudes de creación y eliminación de supervisión por día es de 1,000 solicitudes. Este límite es por dominio y, además, incluye todas las solicitudes que haga cualquier administrador durante el día.

Una situación de correo electrónico supervisado incluye tres tipos de usuarios:

  • Administrador: cualquier administrador de dominio puede crear, recuperar, actualizar y borrar un supervisor de correo electrónico con el recurso de supervisión de la API de auditoría de correo electrónico. Además, un administrador puede usar la API para descargar el buzón. Estas operaciones solo se pueden realizar dentro del dominio sobre el que el administrador ejerce control.

  • Usuario de origen: El usuario de origen es el usuario que recibe o envía mensajes que audita el usuario de destino de supervisión. Cualquier administrador de dominio o usuario de la cuenta puede ser un usuario de origen. El usuario de origen debe estar en el mismo dominio que el administrador y el usuario de destino.

  • Usuario de destino: el usuario de destino es el auditor que recibe los mensajes de correo electrónico auditados.

    • Recibe copias ocultas (Cco) de todos los mensajes de correo electrónico entrantes y salientes, incluidos los archivos adjuntos entrantes y salientes, los mensajes reenviados y los mensajes de correo electrónico enviados desde dispositivos móviles.
    • Como opción, un administrador de dominio puede habilitar funciones de auditoría adicionales para el usuario de destino. Las funciones opcionales incluyen la auditoría de borradores de correo electrónico guardados y la auditoría de chats archivados de Hangouts con otros usuarios que pueden estar dentro o fuera del dominio.
    • Aunque el usuario de destino recibe una copia en Cco del mensaje, la asociación con Cco no es visible en los encabezados del mensaje a los que se puede acceder en la cuenta del usuario de origen.
    • Cada mensaje de correo electrónico auditado se envía al usuario de destino como un archivo adjunto de correo electrónico. Y el administrador del dominio puede configurar estos mensajes para que sean el mensaje de correo electrónico completo o solo los encabezados de los mensajes.
    • Este usuario de destino debe tener una cuenta de correo electrónico activa en el dominio supervisado. Debe ser el mismo dominio asociado con el administrador y el usuario de origen.
    • Un usuario de destino puede ser un administrador o un usuario dentro del dominio. Además, este usuario de destino puede cambiar de roles para convertirse en un usuario de origen auditado por otro usuario de destino que, a su vez, recibe copias de todos los mensajes de correo electrónico auditados que se enviaron al primer usuario de destino.
    • Un administrador de dominio crea un supervisor de correo electrónico auditado para un par único “usuario de destino - usuario de origen”. En otras palabras, la relación de auditoría es un usuario de destino a un usuario de origen. Cada auditoría se realiza con un recurso de supervisión de API. Cuando se usan varios supervisores de API, un usuario de destino puede auditar a muchos usuarios en el dominio. Además, con el uso de varios supervisores de API, muchos usuarios de destino pueden auditar a un usuario de origen.
    • Si se crea un monitor de API adicional o se actualiza uno existente para un par “usuario de destino - usuario de origen”, el monitor que se creó por última vez sustituye a cualquier monitor preexistente para este par. Básicamente, así es como se actualiza un monitor de API. Para obtener más información sobre cómo actualizar un supervisor, consulta Actualiza un supervisor de correo electrónico.

Crear un supervisor de correos electrónicos

Para crear un supervisor de correo electrónico, envía la siguiente solicitud POST con el recurso de supervisión de correo electrónico:

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

Reemplaza lo siguiente:

  • DOMAIN_NAME: Es el nombre de dominio de Google Workspace, por ejemplo, example.com.
  • SOURCE_USERNAME: Es el nombre de usuario que deseas supervisar.

La solicitud POST contiene el siguiente encabezado Content-type:

Content-type: application/atom+xml

Para obtener una lista completa de los parámetros que se deben usar en una solicitud de supervisión de correo electrónico, consulta Recursos: monitor.

Ejemplo para crear un monitor nuevo

En el ejemplo, se usan los siguientes parámetros:

  • El usuario que se auditará es amal@example.com.
  • La destUserName es izumi.
  • La beginDate es June 15, 2022, 00:00 hours.
  • La endDate es June 30, 2022, 23:20 hours.
  • La incomingEmailMonitorLevel es FULL_MESSAGE.
  • La outgoingEmailMonitorLevel es HEADER_ONLY.
  • La draftMonitorLevel es FULL_MESSAGE.
  • La chatMonitorLevel es FULL_MESSAGE.

Protocolo

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 se ejecuta de forma correcta, el servidor muestra un código de estado 201 CREATED y una entrada de AtomPub con el elemento entry que muestra la nueva configuración del monitor:

<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);

Actualizar un supervisor de correo electrónico

Cuando se actualiza un monitor con el mismo usuario de origen y de destino, la configuración inicial de la propiedad del monitor se reemplaza por la configuración nueva.

Para actualizar la configuración de auditoría en un supervisor de correos electrónicos, envía una solicitud POST al URI del feed de supervisión y, luego, incluye el encabezado Authorization:

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

Reemplaza lo siguiente:

  • DOMAIN_NAME: Es el nombre de dominio de Google Workspace, por ejemplo, example.com.
  • SOURCE_USERNAME: Es el nombre de usuario del supervisor de correo electrónico que deseas actualizar.

Ejemplo para actualizar un supervisor de correo electrónico

En este ejemplo, se actualiza el monitor creado en el ejemplo para crear un supervisor de correo electrónico mediante la actualización de la propiedad obligatoria endDate y de la propiedad opcional chatMonitorLevel. En este ejemplo, se usan los siguientes parámetros:

  • El nuevo endDate es August 30, 2022, 23:20 hours.
  • chatMonitorLevel ahora es HEADER_ONLY.
  • El usuario que se auditará sigue siendo amal@example.com.
  • El destUserName sigue siendo izumi.

Las propiedades de supervisor que no se actualizaron se revierten a sus valores predeterminados. Por ejemplo, en este ejemplo, las propiedades incomingEmailMonitorLevel y outgoingEmailMonitorLevel se revierten a FULL_MESSAGE, y draftMonitorLevel se revierte a NONE.

Protocolo

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 se ejecuta de forma correcta, el servidor muestra un código de estado 201 CREATED y una entrada de AtomPub con los elementos entry actualizados. Las propiedades que no se actualizaron y se mostraron en la respuesta se revierten a sus valores predeterminados.

<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);

Recuperar todos los supervisores de correo electrónico de un usuario de origen

Para recuperar todos los monitores asociados con un usuario de origen, realiza una solicitud HTTP GET al URI del feed de supervisión con el formato UTC para la fecha y, además, incluye el encabezado Authorization:

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

Reemplaza lo siguiente:

  • DOMAIN_NAME: Es el nombre de dominio de Google Workspace, por ejemplo, example.com.
  • SOURCE_USERNAME: Es el nombre de usuario del supervisor de correo electrónico que deseas recuperar.

Esta operación no tiene parámetros en el cuerpo de la solicitud, por lo que el cuerpo XML está vacío.

Ejemplo para recuperar todos los supervisores de correo electrónico

En este ejemplo, se recuperan todos los monitores creados para el usuario amal@example.com:

Protocolo

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

Si se ejecuta de forma correcta, el servidor muestra un código de estado 201 CREATED y un feed AtomPub con los elementos entry para dos monitores que muestran la configuración de dos usuarios de destino (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");

Borrar un supervisor de correo electrónico

Para borrar un supervisor de correos electrónicos, realiza una solicitud DELETE HTTP al URI de eliminación del feed de supervisión y, luego, incluye el encabezado Authorization:

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

Reemplaza lo siguiente:

  • DOMAIN_NAME: Es el nombre de dominio de Google Workspace, por ejemplo, example.com.
  • SOURCE_USERNAME: Es el nombre de usuario del supervisor de correo electrónico que deseas borrar.
  • DESTINATION_USERNAME: El auditor que recibe los mensajes de correo electrónico auditados.

Ejemplo para borrar un supervisor de correo electrónico

En este ejemplo, se borran los monitores creados para el usuario amal@example.com con destinationUserName como izumi.

Protocolo

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");