Referencia de la API de Actividad de administración de Office 365
Use la API de actividad de Office 365 Management para recuperar información sobre las acciones y eventos de usuario, administrador, sistema y directiva de los registros de actividad de Office 365 y Microsoft Entra.
Puede usar las acciones y eventos de los registros de auditoría y actividad de Office 365 y Microsoft Entra para crear soluciones que proporcionen supervisión, análisis y visualización de datos. Estas soluciones ofrecen a las organizaciones mayor visibilidad de las acciones realizadas en el contenido. Estas acciones y eventos también están disponibles en los informes de actividad de Office 365. Para más información, vea Buscar en el registro de auditoría en Microsoft 365.
Sugerencia
Si está interesado en crear informes personalizados a partir de registros de auditoría, es posible que le resulte útil encontrar los siguientes blogs.
La API de Actividad de administración de Office 365 es un servicio web REST que se puede usar para desarrollar soluciones mediante cualquier lenguaje y entorno de hospedaje que admita HTTPS y certificados X.509. La API se basa en Microsoft Entra ID y el protocolo OAuth2 para la autenticación y autorización. Para acceder a la API desde la aplicación, primero debe registrarla en Microsoft Entra ID y configurarla con los permisos adecuados. Esto permitirá que la aplicación solicite los tokens de acceso OAuth2 que necesita para llamar a la API. Para obtener más información, vea Get started with Office 365 Management APIs (Introducción a las API de administración de Office 365).
Para obtener información sobre los datos que devuelve la API de Actividad de administración de Office 365, vea Esquema de la API de Actividad de administración de Office 365.
Importante
Para poder acceder a los datos a través de la API de Actividad de administración de Office 365, debe activar el registro de auditoría unificado para su organización de Office 365. Para ello, active el registro de auditoría de Office 365. Para obtener instrucciones, consulte Activar o desactivar la búsqueda de registros de auditoría de Office 365.
Trabajar con la API de Actividad de administración de Office 365
La API de Actividad de administración de Office 365 agrega acciones y eventos en blobs de contenido específicos del espacio empresarial, que se clasifican según el tipo y el origen del contenido que contienen. En la actualidad, se admiten estos tipos de contenido:
Audit.AzureActiveDirectory
Audit.Exchange
Audit.SharePoint
Audit.General (incluye todas las demás cargas de trabajo que no se incluyen en los tipos de contenido anteriores)
DLP.All (eventos exclusivos de DLP para todas las cargas de trabajo)
Para obtener más información sobre los eventos y las propiedades asociados a estos tipos de contenido, vea Office 365 Management Activity API schema (Esquema de la API de Actividad de administración de Office 365).
Para empezar a recuperar blobs de contenido para un inquilino, primero debe crear una suscripción a los tipos de contenido deseados. Si se van a recuperar blobs de contenido para varios espacios empresariales, cree varias suscripciones a todos los tipos de contenido deseados, una para cada espacio empresarial.
Después de crear una suscripción, puede sondear periódicamente para detectar nuevos blobs de contenido disponibles para descargar, o bien puede registrar un punto de conexión de webhook con la suscripción y se enviarán notificaciones a este punto de conexión cuando haya nuevos blobs de contenido disponibles.
Nota:
Cuando se crea una suscripción, pueden pasar hasta 12 horas hasta que los primeros blobs de contenido estén disponibles para esa suscripción. Para crear los blobs de contenido, se recopilan y agregan acciones y eventos de varios servidores y centros de datos. Como resultado de este proceso distribuido, las acciones y los eventos incluidos en los blobs de contenido no aparecerán necesariamente en el orden en que se producen. Un blob de contenido puede contener acciones y eventos que tuvieron lugar antes de las acciones y los eventos incluidos en un blob de contenido anterior. Estamos trabajando para reducir la latencia entre la aparición de los eventos y las acciones, y su disponibilidad en un blob de contenido, pero no podemos garantizar que aparezcan de forma secuencial.
Nota:
Los datos confidenciales de DLP solo están disponibles en la API de fuente de actividades para los usuarios a los que se les han concedido permisos "Leer datos confidenciales de DLP". Para obtener más información sobre la prevención de pérdida de datos (DLP), vea Información general sobre directivas de prevención de pérdida de datos.
Operaciones de la API de Actividad
Todas las operaciones de API están orientadas a un único espacio empresarial y la dirección URL raíz de la API incluye un identificador de espacio empresarial que especifica el contexto del espacio empresarial. El identificador de espacio empresarial es un GUID. Para obtener información sobre cómo conseguir el GUID, vea Get started with Office 365 Management APIs (Introducción a las API de administración de Office 365).
Como las notificaciones que se envían al webhook incluyen el identificador de espacio empresarial, puede usar el mismo webhook para recibir notificaciones para todos los espacios empresariales.
La URL del punto de conexión de la API que use está basada en el tipo de plan de suscripción de Microsoft 365 u Office 365 de su organización.
Plan para empresas
https://manage.office.com/api/v1.0/{tenant_id}/activity/feed/{operation}
Plan de Administración pública GCC
https://manage-gcc.office.com/api/v1.0/{tenant_id}/activity/feed/{operation}
Plan de Administración pública GCC High
https://manage.office365.us/api/v1.0/{tenant_id}/activity/feed/{operation}
Plan de Administración pública DoD
https://manage.protection.apps.mil/api/v1.0/{tenant_id}/activity/feed/{operation}
Todas las operaciones de API requieren un encabezado HTTP de autorización con un token de acceso obtenido de Microsoft Entra ID. El identificador de inquilino del token de acceso debe coincidir con el identificador de inquilino de la dirección URL raíz de la API y el token de acceso debe contener la notificación ActivityFeed.Read (esto corresponde al permiso [Leer datos de actividad de una organización] que configuró para la aplicación en Microsoft Entra ID).
Authorization: Bearer eyJ0e...Qa6wg
La API de Actividad admite las operaciones siguientes:
Iniciar una suscripción para empezar a recibir notificaciones y recuperar datos de actividad de un espacio empresarial.
Detener una suscripción para dejar de recuperar datos de un espacio empresarial.
Enumerar las suscripciones actuales
Enumerar el contenido disponible y las direcciones URL de contenido correspondientes.
Recibir notificaciones enviadas por un webhook cuando hay contenido nuevo disponible.
Recuperar contenido mediante la dirección URL de contenido.
Enumerar las notificaciones enviadas por un webhook.
Recuperar los nombres descriptivos de recurso de los objetos de la fuente de datos identificados mediante GUID.
Iniciar una suscripción
Esta operación inicia una suscripción para el tipo de contenido especificado. Si ya existe una suscripción para el tipo de contenido específico, esta operación se usa para:
Actualizar las propiedades de un webhook activo.
Habilitar un webhook que estaba deshabilitado debido a un exceso de notificaciones con error.
Volver a habilitar un webhook expirado mediante la especificación de una fecha de expiración nula o posterior.
Quitar un webhook.
Suscripción | Descripción |
---|---|
Ruta de acceso | /subscriptions/start?contentType={ContentType} |
Parámetros | contentType: debe ser un tipo de contenido válido. |
PublisherIdentifier | El GUID de espacio empresarial del proveedor que codifica la API. Este no es el GUID de aplicación ni el del cliente que usa la aplicación, sino el GUID de la empresa que escribe el código. Este parámetro se usa para limitar la velocidad de la solicitud. Asegúrese de que este parámetro se especifica en todas las solicitudes emitidas para obtener una cuota dedicada. Todas las solicitudes recibidas sin este parámetro compartirán la misma cuota. |
Cuerpo | webhook: objeto JSON opcional con tres propiedades:
|
Respuesta | contentType: el tipo de contenido especificado en la llamada. |
status | El estado de la suscripción. Si una suscripción está deshabilitada, no podrá enumerar ni recuperar contenido. |
webhook | Las propiedades del webhook especificado en la llamada junto con el estado del webhook. Si el webhook está deshabilitado, no recibirá ninguna notificación, pero podrá enumerar y recuperar contenido, siempre que la suscripción esté habilitada. |
Solicitud de muestra
POST {root}/subscriptions/start?contentType=Audit.SharePoint&PublisherIdentifier=46b472a7-c68e-4adf-8ade-3db49497518e
Content-Type: application/json; utf-8
Authorization: Bearer eyJ0e...Qa6wg
{
"webhook" : {
"address": "https://webhook.myapp.com/o365/",
"authId": "o365activityapinotification",
"expiration": ""
}
}
Respuesta de muestra
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
"contentType": "Audit.SharePoint",
"status": "enabled",
"webhook": {
"status": "enabled",
"address": "https://webhook.myapp.com/o365/",
"authId": "o365activityapinotification",
"expiration": null
}
}
Validación del webhook
Cuando se llama a la operación /start y se especifica un webhook, le enviaremos una notificación de validación a la dirección de webhook especificada para validar que una escucha activa puede aceptar y procesar las notificaciones. Si no recibimos una respuesta HTTP 200 Correcto, no se creará la suscripción. O bien, si se empieza a llamar a /start para agregar un webhook a una suscripción existente y no se recibe una respuesta de HTTP 200 Correcto, el webhook no se agregará y no se cambiará la suscripción.
Solicitud de muestra
POST {webhook address}
Content-Type: application/json; charset=utf-8
Webhook-AuthID: (webhook authId, if provided)
Webhook-ValidationCode: (random opaque string)
{
"validationCode": (random opaque string, same as header)
}
Respuesta de muestra
HTTP/1.1 200 OK
Detener una suscripción
Esta operación detiene una suscripción para el tipo de contenido especificado.
Cuando se detiene una suscripción, ya no recibirá notificaciones y no podrá recuperar el contenido disponible. Si la suscripción se reinicia más adelante, tendrá acceso al nuevo contenido desde ese momento. No podrá recuperar el contenido que estaba disponible entre el momento de detener la suscripción y reiniciarla.
Suscripción | Descripción |
---|---|
Ruta de acceso | /subscriptions/stop?contentType={ContentType} |
Parámetros | contentType: debe ser un tipo de contenido válido. |
PublisherIdentifier | El GUID de espacio empresarial del proveedor que codifica la API. Este no es el GUID de aplicación ni el del cliente que usa la aplicación, sino el GUID de la empresa que escribe el código. Este parámetro se usa para limitar la velocidad de la solicitud. Asegúrese de que este parámetro se especifica en todas las solicitudes emitidas para obtener una cuota dedicada. Todas las solicitudes recibidas sin este parámetro compartirán la misma cuota. |
Cuerpo | (vacío) |
Respuesta | (vacío) |
Solicitud de muestra
POST {root}/subscriptions/stop?contentType=Audit.SharePoint&PublisherIdentifier=46b472a7-c68e-4adf-8ade-3db49497518e
Authorization: Bearer eyJ0e...Qa6wg
Respuesta de muestra
HTTP/1.1 200 OK
Enumerar las suscripciones actuales
Esta operación devuelve una colección de las suscripciones actuales junto con los webhooks asociados.
Suscripción | Descripción | |
---|---|---|
Ruta de acceso | /subscriptions/list |
|
Parámetros | PublisherIdentifier | El GUID de espacio empresarial del proveedor que codifica la API. Este no es el GUID de aplicación ni el del cliente que usa la aplicación, sino el GUID de la empresa que escribe el código. Este parámetro se usa para limitar la velocidad de la solicitud. Asegúrese de que este parámetro se especifica en todas las solicitudes emitidas para obtener una cuota dedicada. Todas las solicitudes recibidas sin este parámetro compartirán la misma cuota. |
Cuerpo | (vacío) | |
Respuesta | Matriz JSON | Cada suscripción se representará mediante un objeto JSON con tres propiedades:
|
Solicitud de muestra
GET {root}/subscriptions/list?PublisherIdentifier=46b472a7-c68e-4adf-8ade-3db49497518e
Authorization: Bearer eyJ0e...Qa6wg
Respuesta de muestra
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
[
{
"contentType" : "Audit.SharePoint",
"status": "enabled",
"webhook": {
"status": "enabled",
"address": "https://webhook.myapp.com/o365/",
"authId": "o365activityapinotification",
"expiration": null
}
},
...
{
"contentType": "Audit.Exchange",
"webhook": null
}
]
Enumerar el contenido disponible
Esta operación enumera el contenido disponible actualmente que se puede recuperar para el tipo de contenido especificado. El contenido es una agregación de acciones y eventos recopilados de varios servidores en varios centros de datos. El contenido se mostrará en el orden en que estén disponibles las agregaciones, pero no se garantiza que los eventos y las acciones de las agregaciones sean secuenciales. Se devuelve un error si el estado de la suscripción es deshabilitado.
Suscripción | Descripción |
---|---|
Ruta de acceso | /subscriptions/content?contentType={ContentType}&startTime={0}&endTime={1} |
Parámetros | contentType: debe ser un tipo de contenido válido. |
PublisherIdentifier | El GUID de espacio empresarial del proveedor que codifica la API. Este no es el GUID de aplicación ni el del cliente que usa la aplicación, sino el GUID de la empresa que escribe el código. Este parámetro se usa para limitar la velocidad de la solicitud. Asegúrese de que este parámetro se especifica en todas las solicitudes emitidas para obtener una cuota dedicada. Todas las solicitudes recibidas sin este parámetro compartirán la misma cuota. |
startTime endTime | Fechas y horas (UTC) opcionales que indican el intervalo de tiempo del contenido que se va a devolver, en función de cuándo está disponible ese contenido. El intervalo de tiempo es inclusivo con respecto a startTime (startTime <= contentCreated) y exclusivo con respecto a endTime (contentCreated < endTime), de modo que se puedan usar intervalos de tiempo no superpuestos e incrementados para paginar a través del contenido disponible.
NOTA: Aunque se puede especificar un valor de startTime y endTime con más de 24 horas de diferencia, no es recomendable. Además, si obtiene algún resultado en respuesta a una solicitud de más de 24 horas, podrían ser resultados parciales y no deberían tenerse en cuenta. La solicitud se debe emitir con un intervalo de no más de 24 horas entre los valores de startTime y endTime. |
Respuesta | Matriz JSON: el contenido disponible se representará mediante objetos JSON con las siguientes propiedades:
|
Solicitud de muestra
GET {root}/subscriptions/content?contentType=Audit.SharePoint&PublisherIdentifier=46b472a7-c68e-4adf-8ade-3db49497518e
Authorization: Bearer eyJ0e...Qa6wg
Respuesta de muestra
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
[
{
"contentType": "Audit.SharePoint",
"contentId": "492638008028$492638008028$f28ab78ad40140608012736e373933ebspo2015043022$4a81a7c326fc4aed89c62e6039ab833b$04",
"contentUri": "https://manage.office.com/api/v1.0/f28ab78a-d401-4060-8012-736e373933eb/activity/feed/audit/492638008028$492638008028$f28ab78ad40140608012736e373933ebspo2015043022$4a81a7c326fc4aed89c62e6039ab833b$04",
"contentCreated": "2015-05-23T17:35:00.000Z",
"contentExpiration": "2015-05-30T17:35:00.000Z"
},
...
]
Paginación
Al enumerar el contenido disponible para un intervalo de tiempo, el número de resultados devueltos está limitado para impedir tiempos de espera de respuesta. Si en el intervalo de tiempo especificado hay más resultados de los que se pueden devolver en una única respuesta, los resultados se truncarán y se agregará un encabezado a la respuesta en el que se indica la dirección URL que se va a usar para recuperar la siguiente página de resultados. La dirección URL contendrá los mismos parámetros startTime y endTime que se especificaron en la solicitud original, junto con un parámetro que indica el identificador interno de la página siguiente. Si no se especificaron los parámetros startTime y endTime en la solicitud original, se establecerán para reflejar el intervalo de 24 horas anterior a la solicitud original.
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
NextPageUri: https://manage.office.com/api/v1/{tenant_id}/activity/feed/subscriptions/content?contentType=Audit.SharePoint&startTime=2015-10-01&endTime=2015-10-02&nextPage=2015101900R022885001761
Para mostrar todo el contenido disponible para un intervalo de tiempo especificado, es posible que tenga que recuperar varias páginas hasta que reciba una respuesta sin el encabezado NextPageUri.
Recibir notificaciones
Las notificaciones se envían al webhook configurado para una suscripción cuando hay contenido nuevo disponible. Como la notificación incluye el identificador de espacio empresarial, puede usar el mismo webhook para recibir notificaciones para todos los espacios empresariales para los que tiene suscripciones.
La notificación se realiza como HTTP POST sobre TLS (TLS 1.0 y versiones posteriores) a la dirección del webhook especificado. Si la configuración de webhook incluye un identificador de autenticación, se enviará como un encabezado HTTP: Webhook-AuthID. Cualquier respuesta distinta de HTTP 200 Correcto se considera un error y la notificación se volverá a intentar. También puede configurar el webhook para requerir autenticación basada en certificados de cliente y se autenticará con el certificado manage.office.com.
El cuerpo de la solicitud contendrá una matriz de uno o más objetos JSON que representan los blobs de contenido disponibles. El número de blobs de contenido en cada notificación es limitado para que el tamaño de la notificación sea relativamente pequeño. Como este límite puede cambiar, la implementación debe consultar la longitud de la matriz en lugar de esperar un tamaño fijo. Cada objeto incluirá las mismas propiedades que devuelve la operación /content, junto con el GUID del espacio empresarial al que corresponden los datos y el GUID de la aplicación que creó las suscripciones. Esto permite al webhook establecer el contexto cuando se usa con varios espacios empresariales y aplicaciones.
tenantId: el GUID del espacio empresarial al que pertenece el contenido.
clientId: el GUID de la aplicación que creó la suscripción.
contentType: indica el tipo de contenido.
contentId: una cadena opaca que identifica el contenido de forma única.
contentUri: la dirección URL que se va a usar al recuperar el contenido.
contentCreated: la fecha y hora de disponibilidad del contenido.
contentExpiration: la fecha y hora después de la que el contenido ya no estará disponible para su recuperación.
A continuación se muestra un ejemplo de una notificación.
POST https://webhook.myapp.com/o365/
Content-Type: application/json; utf-8
Webhook-AuthID: o365activityapinotification
[
{
"tenantId": "{GUID}",
"clientId": "{GUID}",
"contentType": "Audit.SharePoint",
"contentId": "492638008028$492638008028$f28ab78ad40140608012736e373933ebspo2015043022$4a81a7c326fc4aed89c62e6039ab833b$04",
"contentUri": "https://manage.office.com/api/v1.0/f28ab78a-d401-4060-8012-736e373933eb/activity/feed/audit/492638008028$492638008028$f28ab78ad40140608012736e373933ebspo2015043022$4a81a7c326fc4aed89c62e6039ab833b$04",
"contentCreated": "2015-05-23T17:35:00.000Z",
"contentExpiration": "2015-05-30T17:35:00.000Z"
},
...
]
Error de notificación y reintento
El sistema de notificaciones envía las notificaciones cuando hay nuevo contenido disponible. Si se producen errores excesivos al enviar las notificaciones, nuestro mecanismo de reintento aumentará de forma exponencial el tiempo entre los reintentos. Si se siguen produciendo errores, nos reservamos el derecho de deshabilitar el webhook y detener por completo el envío de notificaciones. Se puede usar la operación /start para volver a habilitar un webhook deshabilitado.
Recuperar contenido
Para recuperar un blob de contenido, realice una solicitud GET en el URI del contenido correspondiente que se incluye en la lista de contenido disponible y en las notificaciones enviadas a un webhook. El contenido devuelto será una colección de una más acciones o eventos en formato JSON.
Solicitud de muestra
GET https://manage.office.com/api/v1.0/41463f53-8812-40f4-890f-865bf6e35190/activity/feed/audit/301299007231$301299007231$41463f53881240f4890f865bf6e35190aad2015062920$e1c2ab19858a469fb1f1fd097effffc9$04 HTTP/1.1
Authorization: Bearer eyJ0e...Qa6wg
Respuesta de muestra
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
[
{
"CreationTime": "2015-06-29T20:03:19",
"Id": "80c76bd2-9d81-4c57-a97a-accfc3443dca",
"Operation": "PasswordLogonInitialAuthUsingPassword",
"OrganizationId": "41463f53-8812-40f4-890f-865bf6e35190",
"RecordType": 9,
"ResultStatus": "failed",
"UserKey": "1153977025279851686@contoso.onmicrosoft.com",
"UserType": 0,
"Workload": "AzureActiveDirectory",
"ClientIP": "134.170.188.221",
"ObjectId": "admin@contoso.onmicrosoft.com",
"UserId": "admin@contoso.onmicrosoft.com",
"AzureActiveDirectoryEventType": 0,
"ExtendedProperties": [
{
"Name": "LoginError",
"Value": "-2147217390;PP_E_BAD_PASSWORD;The entered and stored passwords do not match."
}
],
"Client": "Exchange",
"LoginStatus": -2147217390,
"UserDomain": "contoso.onmicrosoft.com"
},
{
"CreationTime": "2015-06-29T20:03:34",
"Id": "4e655d3f-35fa-42e0-b050-264b2d255c7a",
"Operation": "PasswordLogonInitialAuthUsingPassword",
"OrganizationId": "41463f53-8812-40f4-890f-865bf6e35190",
"RecordType": 9,
"ResultStatus": "success",
"UserKey": "1153977025279851686@contoso.onmicrosoft.com",
"UserType": 0,
"Workload": "AzureActiveDirectory",
"ClientIP": "134.170.188.221",
"ObjectId": "admin@contoso.onmicrosoft.com",
"UserId": "admin@contoso.onmicrosoft.com",
"AzureActiveDirectoryEventType": 0,
"Client": "Exchange",
"LoginStatus": 0,
"UserDomain": "contoso.onmicrosoft.com"
},
{
"CreationTime": "2015-06-29T20:04:55",
"Id": "b567caf0-088e-4c1c-a4ea-633a1e3d66c8",
"Operation": "Add User.",
"OrganizationId": "41463f53-8812-40f4-890f-865bf6e35190",
"RecordType": 8,
"ResultStatus": "success",
"UserKey": "1003BFFD8EC47CA6@contoso.onmicrosoft.com",
"UserType": 0,
"Workload": "AzureActiveDirectory",
"ObjectId": "user001@contoso.onmicrosoft.com",
"UserId": "admin@contoso.onmicrosoft.com",
"AzureActiveDirectoryEventType": 0,
"Actor": [
{
"ID": "1cef1fdb-ff52-48c4-8e4e-dfb5ea83d357",
"Type": 2
},
{
"ID": "admin@contoso.onmicrosoft.com",
"Type": 5
},
{
"ID": "1003BFFD8EC47CA6",
"Type": 3
}
],
"ActorContextId": "41463f53-8812-40f4-890f-865bf6e35190",
"InterSystemsId": "c2ced078-ad57-4079-a743-5c37f5284790",
"IntraSystemId": "d1497f7e-15b4-49aa-83ad-11a17ca4a2f4",
"Target": [
{
"ID": "user001@contoso.onmicrosoft.com",
"Type": 5
},
{
"ID": "10037FFE91510806",
"Type": 3
}
],
"TargetContextId": "41463f53-8812-40f4-890f-865bf6e35190"
}
]
Enumerar notificaciones
Esta operación enumera todos los intentos de notificación para el tipo de contenido especificado. Si no ha incluido un webhook al iniciar la suscripción para el tipo de contenido, no existirá ninguna notificación para recuperar. Como en caso de error se reintentan las notificaciones, esta operación puede devolver varias notificaciones para el mismo contenido, y el orden en el que se envían no coincidirá necesariamente con el orden en que el contenido está disponible (en especial si hay errores y reintentos).
Puede usar esta operación para ayudar a investigar problemas relacionados con los webhooks y las notificaciones, pero no debería usarla para determinar qué contenido está disponible actualmente para la recuperación. En su lugar, use la operación /content. Se devolverá un error si el estado de la suscripción es deshabilitado.
Suscripción | Descripción |
---|---|
Ruta de acceso | /subscriptions/notifications?contentType={ContentType}&startTime={0}&endTime={1} |
Parámetros | contentType: debe ser un tipo de contenido válido. |
PublisherIdentifier | El GUID de espacio empresarial del proveedor que codifica la API. Este no es el GUID de aplicación ni el del cliente que usa la aplicación, sino el GUID de la empresa que escribe el código. Este parámetro se usa para limitar la velocidad de la solicitud. Asegúrese de que este parámetro se especifica en todas las solicitudes emitidas para obtener una cuota dedicada. Todas las solicitudes recibidas sin este parámetro compartirán la misma cuota. |
startTime endTime | Fechas y horas (UTC) opcionales que indican el intervalo de tiempo del contenido que se va a devolver, en función de cuándo está disponible ese contenido. El intervalo de tiempo es inclusivo con respecto a startTime ( startTime<= contentCreated) y exclusivo con respecto a endTime (contentCreated< endTime), de modo que se puedan usar intervalos de tiempo no superpuestos e incrementados para paginar el contenido disponible.
|
Respuesta | Matriz JSON: las notificaciones se representarán mediante objetos JSON con las siguientes propiedades:
|
Solicitud de muestra
GET {root}/subscriptions/notifications?contentType=Audit.SharePoint&PublisherIdentifier=46b472a7-c68e-4adf-8ade-3db49497518e
Authorization: Bearer eyJ0e...Qa6wg
Respuesta de muestra
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
[
{
"contentType": "Audit.SharePoint",
"contentId": "492638008028$492638008028$f28ab78ad40140608012736e373933ebspo2015043022$4a81a7c326fc4aed89c62e6039ab833b$04",
"contentUri": "https://manage.office.com/api/v1.0/f28ab78a-d401-4060-8012-736e373933eb/activity/feed/audit/492638008028$492638008028$f28ab78ad40140608012736e373933ebspo2015043022$4a81a7c326fc4aed89c62e6039ab833b$04",
"contentCreated": "2015-05-23T17:35:00.000Z",
"contentExpiration": "2015-05-30T17:35:00.000Z",
"notificationSent": "2015-05-23T17:36:00.000Z",
"notificationStatus": "success"
},
...
]
Paginación
Al enumerar el historial de notificaciones para un intervalo de tiempo, el número de resultados devueltos está limitado para impedir tiempos de espera de respuesta. Si en el intervalo de tiempo especificado hay más resultados de los que se pueden devolver en una única respuesta, los resultados se truncan y se agrega un encabezado a la respuesta en el que se indica la dirección URL que se va a usar para recuperar la siguiente página de resultados. La dirección URL contendrá los mismos parámetros startTime y endTime que se especificaron en la solicitud original, junto con un parámetro que indica el identificador interno de la página siguiente. Si no se especificaron los parámetros startTime y endTime en la solicitud original, se establecerán para reflejar el intervalo de 24 horas anterior a la solicitud original.
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
NextPageUri: https://manage.office.com/api/v1/{tenant_id}/activity/feed/subscriptions/content?contentType=Audit.SharePoint&startTime=2015-10-01&endTime=2015-10-02&nextPage=2015101900R022885001761
Para mostrar todo el contenido disponible para un intervalo de tiempo especificado, es posible que tenga que recuperar varias páginas hasta que reciba una respuesta sin el encabezado NextPageUri.
Recuperar los nombres descriptivos de recurso
Esta operación recupera los nombres descriptivos de los objetos de la fuente de datos identificados mediante GUID. En la actualidad, el único objeto que se admite es "DlpSensitiveType".
Objeto | Suscripción | Descripción |
---|---|---|
Ruta de acceso | /resources/dlpSensitiveTypes |
|
Parámetros | PublisherIdentifier | El GUID de espacio empresarial del proveedor que codifica la API. Este no es el GUID de aplicación ni el del cliente que usa la aplicación, sino el GUID de la empresa que escribe el código. Este parámetro se usa para limitar la velocidad de la solicitud. Asegúrese de que este parámetro se especifica en todas las solicitudes emitidas para obtener una cuota dedicada. Todas las solicitudes recibidas sin este parámetro compartirán la misma cuota. |
Encabezados | Accept-Language | Encabezado para especificar el idioma que prefiere para los nombres localizados. Por ejemplo, use "en-US" para inglés o "es" para español. Si este encabezado no existe, se devolverá el idioma predeterminado (en-US). |
Cuerpo | (vacío) | |
Respuesta | Matriz JSON | El contenido disponible se representará mediante objetos JSON con las propiedades siguientes:
|
Solicitud de muestra
GET {root}/resources/dlpSensitiveTypes?PublisherIdentifier=46b472a7-c68e-4adf-8ade-3db49497518e
Authorization: Bearer eyJ0e...Qa6wg
Accept-Language: {language code}
Respuesta de muestra
HTTP/1.1 200 OK
[
{
"id": "50842eb7-edc8-4019-85dd-5a5c1f2bb085",
"name": "CreditCardNumber"
},
{
"id": "0e9b3178-9678-47dd-a509-37222ca96b42",
"name": "EUDebitCardNumber"
},
...
{
}
]
Limitación de API
Las organizaciones que tienen acceso a registros de auditoría a través de la API de Actividad de administración de Office 365 se restringieron con límites en el nivel de editor. Esto significa que, para un editor que extrae datos en nombre de varios clientes, todos los clientes han compartido el límite.
Estamos cambiando de un límite de nivel de editor a un límite de nivel de espacio empresarial. El resultado es que cada organización obtendrá su propia cuota de ancho de banda completamente asignada para tener acceso a los datos de auditoría. Se asigna inicialmente una línea base de 2 000 solicitudes por minuto a todas las organizaciones. Este no es un límite estático y predefinido, sino que se modela en base a una combinación de factores, incluido el número de puestos en la organización, y que las organizaciones de Office 365 y Microsoft 365 E5 tendrán aproximadamente el doble de ancho de banda que las organizaciones que no son E5. También habrá un límite en el ancho de banda máximo para proteger el estado del servicio.
Para obtener más información, vea la sección "acceso de banda ancha a la API de Actividad de administración de Office 365" en Auditoría avanzada en Microsoft 365.
Nota:
Aunque cada espacio empresarial puede enviar en un principio hasta 2 000 solicitudes por minuto, Microsoft no garantiza una velocidad de respuesta. La velocidad de respuesta depende de varios factores, como el rendimiento del sistema cliente y la capacidad y la velocidad de la red.
Errores
Cuando el servicio encuentra un error, notificará el código de respuesta de error al autor de la llamada, mediante la sintaxis estándar de código de error de HTTP. . En el cuerpo de la llamada con error se incluye información adicional como un único objeto JSON. A continuación se muestra un ejemplo de un cuerpo completo de error JSON:
{
"error":{
"code":"AF50000",
"message": "An internal server error occurred. Retry the request."
}
}
Código | Mensaje |
---|---|
AF10001 | El conjunto de permisos ({0}) enviados en la solicitud no incluía el permiso esperado ActivityFeed.Read. {0} = el conjunto de permisos en el token de acceso. |
AF20001 | Falta el parámetro: {0}. {0} = el nombre del parámetro que falta. |
AF20002 | Tipo de parámetro no válido: {0}. Tipo esperado: {1} {0} = el nombre del parámetro no válido. {1} = el tipo esperado (int, datetime, guid). |
AF20003 |
{0} de expiración proporcionada se establece en una fecha y hora pasadas. {0} = la expiración que se pasa en la llamada de API. |
AF20010 | El identificador de espacio empresarial que se pasa en la dirección URL ({0}) no coincide con el que se pasa en el token de acceso ({1}). {0} = id. de espacio empresarial pasado en la dirección URL{1} = id. de espacio empresarial pasado en el token de acceso |
AF20011 | El identificador de espacio empresarial ({0}) especificado no existe en el sistema o se ha eliminado. {0} = el identificador de espacio empresarial que se pasa en la dirección URL |
AF20012 | El identificador de espacio empresarial ({0}) especificado no está configurado correctamente en el sistema. {0} = el identificador de espacio empresarial que se pasa en la dirección URL |
AF20013 | El identificador de espacio empresarial que se pasa en la dirección URL ({0}) no es un GUID válido. {0} = el identificador de espacio empresarial que se pasa en la dirección URL |
AF20020 | El tipo de contenido especificado no es válido. |
AF20021 | El punto de conexión de webhook {{0}) no se pudo validar. {1} {0} = dirección del webhook. {1} = "El punto de conexión no devolvió HTTP 200" o "La dirección debe comenzar por HTTPS". |
AF20022 | No se encontró ninguna suscripción para el tipo de contenido especificado. |
AF20023 |
{0} ha deshabilitado la suscripción. {0} = "un administrador de espacio empresarial" o "un administrador de servicio" |
AF20030 | Se debe especificar la hora de inicio y la hora de finalización (o bien omitirse), con una diferencia menor o igual de 24 horas, y la hora de inicio no debe tener más de siete días de antigüedad. |
AF20031 | Entrada nextPage no válida: {0}. {0} = el indicador de página siguiente que se pasa en la dirección URL |
AF20050 | No existe el contenido especificado ({0}). {0} = identificador o dirección URL del recurso |
AF20051 | El contenido solicitado con la clave {0} ya ha expirado. El contenido de más de siete días no se puede recuperar.< {0} = identificador o dirección URL del recurso |
AF20052 | El identificador de contenido {0} en la dirección URL no es válido. {0} = identificador o dirección URL del recurso |
AF20053 | Solo puede haber un idioma en el encabezado Accept-Language. |
AF20054 | Sintaxis incorrecta en el encabezado Accept-Language. |
AF429 | Demasiadas solicitudes. Método={0}, PublisherId={1} {0} = método HTTP {1} = GUID de espacio empresarial usado como PublisherIdentifier |
AF50000 | Se ha producido un error interno. Vuelva a intentar realizar la solicitud. |