userDataSecurityAndGovernance: processContent

Espacio de nombres: microsoft.graph

Importante

Las API de la versión /beta de Microsoft Graph están sujetas a cambios. No se admite el uso de estas API en aplicaciones de producción. Para determinar si una API está disponible en la versión 1.0, use el selector de Versión.

Procesar el contenido con respecto a las directivas de protección de datos en el contexto del usuario actual o especificado.

Esta API está disponible en las siguientes implementaciones en la nube nacional.

Servicio global Administración pública de EE. UU. Gobierno de EE. UU. L5 (DOD) China operado por 21Vianet
✅ ✅ ✅ ❌

Permissions

Elija el permiso o los permisos marcados como con privilegios mínimos para esta API. Use uno o varios permisos con privilegios más altos solo si la aplicación lo requiere. Para obtener más información sobre los permisos delegados y de aplicación, consulte Tipos de permisos. Para obtener más información sobre estos permisos, consulte la referencia de permisos.

Tipo de permiso Permisos con privilegios mínimos Permisos con privilegios más altos
Delegado (cuenta profesional o educativa) Content.Process.User Content.Process.All
Delegado (cuenta personal de Microsoft) No admitida. No admitida.
Aplicación Content.Process.User Content.Process.All

Solicitud HTTP

POST /me/dataSecurityAndGovernance/processContent

Nota:

Para llamar al punto de conexión /me, se requiere un usuario con la sesión iniciada y, por lo tanto, un permiso delegado. Los permisos de aplicación no se admiten al usar el /me punto de conexión.

POST /users/{userId}/dataSecurityAndGovernance/processContent

Encabezados de solicitud

Nombre Descripción
Authorization {token} de portador. Obligatorio. Obtenga más información sobre autenticación y autorización.
Content-Type application/json. Obligatorio.
If-None-Match Opcional. La API usa este valor para determinar si el estado de la directiva cambió desde la última llamada a la API. El valor procede del encabezado Etag devuelto por el proceso de protectionScopes. Si el valor Etag recién calculado no coincide con el valor pasado en este encabezado, la propiedad protectionScopeState devuelta se "modificará" y la aplicación debe actualizarse llamando al proceso de protectionScopes.
client-request-id Cadena (se recomienda GUID). Opcional. Identificador único de esta solicitud, que se usa para el seguimiento y la depuración en los registros y las interacciones de soporte técnico. Si no se proporciona una identificación, se puede generar una automáticamente. Se recomienda especificar el identificador para facilitar el seguimiento y la depuración. El mismo identificador que se envió en la solicitud se devolverá en la respuesta.

Cuerpo de la solicitud

En el cuerpo de la solicitud, proporcione una representación JSON de los parámetros.

En la tabla siguiente se enumeran los parámetros necesarios al llamar a esta acción.

Parámetro Tipo Description
contentToProcess processContentRequest Obligatorio. El objeto que contiene las entradas de contenido y los metadatos (actividad, dispositivo, aplicación) que se van a evaluar para el usuario especificado.

Para el contenido del archivo, use una entrada processFileMetadata en contentEntries. Para proporcionar metadatos de etiquetas de confidencialidad, incluya su colección sensitivityLabels heredada con uno o varios objetos currentLabel . Use una matriz incluso cuando proporcione solo una etiqueta. Proporcionar estos metadatos no se aplica o cambia las etiquetas en el archivo.

Omita sensitivityLabels, o proporcione una colección vacía, cuando no proporcione metadatos de etiquetas proporcionadas por el autor de la llamada. Ninguno de los casos quita una etiqueta del contenido.

Proporcionar metadatos de etiquetas solo para las actividades admitidas por esta API. Las solicitudes que asertan etiquetas para actividades no admitidas pueden ser rechazadas. La herencia de esquemas no establece la compatibilidad con la actividad.

Respuesta

Si se realiza correctamente, esta acción devuelve un 200 OK código de respuesta y un processContentResponse en el cuerpo de la respuesta o 202 Accepted, 204 No Content sin cuerpo de respuesta.

Encabezados de respuesta

Nombre Descripción
ETag Un indicador que puede utilizarse para detectar si el estado de la directiva configurada ha cambiado. Si el estado de la directiva cambió, el valor ETag cambiará y la propiedad protectionScopeState devuelta se "modificará" y la aplicación debe actualizarse llamando al proceso de protectionScopes.

Ejemplos

Ejemplo 1: Aplicación de empresa

Solicitud

En el ejemplo siguiente se muestra una solicitud de una aplicación empresarial, que puede ser una aplicación que no sea de IA o una aplicación de IA. El texto con el que envías data puede ser cualquier texto de la aplicación; por ejemplo, el cuerpo de un documento, un mensaje de chat o la pregunta del usuario sobre si la aplicación es una aplicación de IA.

POST https://graph.microsoft.com/beta/me/dataSecurityAndGovernance/processContent
Content-Type: application/json
Client-Request-Id: 50dc805c-3af4-42d9-ad16-a746235cc736

{
    "contentToProcess": {
       "contentEntries": [
          {
             "@odata.type": "microsoft.graph.processConversationMetadata",
             "identifier": "07785517-9081-4fe7-a9dc-85bcdf5e9075",
             "content": {
                "@odata.type": "microsoft.graph.textContent", 
                "data": "Write an acceptance letter for Alex Wilber with Credit card number 4532667785213500, ssn: 120-98-1437 at One Microsoft Way, Redmond, WA 98052"
             },
             "name":"PC Purview API Explorer message",
             "correlationId": "d63eafd2-e3a9-4c1a-b726-a2e9b9d9580d",
             "sequenceNumber": 0, 
             "isTruncated": false,
             "createdDateTime": "2025-05-27T17:23:20",
             "modifiedDateTime": "2025-05-27T17:23:20",
             "contentCategory": "ai"
          }
       ],
       "activityMetadata": { 
          "activity": "uploadText"
       },
       "deviceMetadata": {
          "deviceType": "Unmanaged",
          "operatingSystemSpecifications": {
             "operatingSystemPlatform": "Windows 11",
             "operatingSystemVersion": "10.0.26100.0" 
          },
          "ipAddress": "127.0.0.1"
       },
       "protectedAppMetadata": {
          "name": "PC Purview API Explorer",
          "version": "0.2",
          "applicationLocation":{
             "@odata.type": "microsoft.graph.policyLocationApplication",
             "value": "83ef208a-0396-4893-9d4f-d36efbffc8bd"
          }
       },
       "integratedAppMetadata": {
          "name": "PC Purview API Explorer",
          "version": "0.2" 
       }
    }
}

Respuesta

En el ejemplo siguiente se muestra la respuesta.

Nota: Se puede acortar el objeto de respuesta que se muestra aquí para mejorar la legibilidad.

HTTP/1.1 200 OK
Content-Type: application/json
Client-Request-Id: 50dc805c-3af4-42d9-ad16-a746235cc736

{
  "@odata.context": "https://graph.microsoft.com/beta/$metadata#microsoft.graph.processContentResponse",
  "protectionScopeState": "notModified",
   "policyActions": [],
  "processingErrors": []
}

Ejemplo 2: Agente de IA

Solicitud

En el ejemplo siguiente se muestra una solicitud enviada desde un agente de IA. En la solicitud, observe que hay una agents matriz que es de tipo aiAgentInfo. En este ejemplo, data se usa para enviar la indicación del usuario.

POST https://graph.microsoft.com/beta/users/{5def8f26-aff8-4db6-a08c-0fcf8f1aa2ba}/dataSecurityAndGovernance/processContent
Content-Type: application/json

{
    "contentToProcess": {
      "contentEntries": [
        {
          "@odata.type": "microsoft.graph.processConversationMetadata",
          "identifier": "42837765-85c9-4a28-a165-27b6aaa5f635",
          "content": {
            "@odata.type": "microsoft.graph.textContent",
            "data": "For application 123456789, Write an acceptance letter for Alex Wilber with Credit card number 0000111122223333, ssn: 000-11-2222 at One Microsoft Way, Redmond, WA 98052"
          },
          "agents": [
            {
              "@odata.type": "microsoft.graph.aiAgentInfo",
              "blueprintId": "c84571c6-5ef3-4af7-aed2-0491cfd362a0",
              "identifier": "89515a70-a236-43be-b977-3ff0b454f853",
              "name": "Demo Agent",
              "version": "1.0"
            }
          ],
          "name":"PC Purview API Explorer message",
          "correlationId": "1cd5e33a-c78f-46e4-a242-74b0ef910486",
          "sequenceNumber": 0,
             "isTruncated": false,
             "createdDateTime": "2026-04-08T20:52:08",
             "modifiedDateTime": "2026-04-08T20:52:08"
          }
       ],
       "activityMetadata": { 
          "activity": "uploadText"
       },
       "deviceMetadata": {
          "operatingSystemSpecifications": {
             "operatingSystemPlatform": "Windows 11",
             "operatingSystemVersion": "10.0.26200.0" 
          },
          "ipAddress": "127.0.0.1"
       },
       "protectedAppMetadata": {
          "name": "PC Purview API Explorer",
          "version": "0.2",
          "applicationLocation":{
             "@odata.type": "microsoft.graph.policyLocationApplication",
             "value": "83ef198a-0396-4893-9d4f-d36efbffc8bd"
          }
       },
       "integratedAppMetadata": {
          "name": "PC Purview API Explorer",
          "version": "0.1" 
       }
    }
}


Respuesta

En el ejemplo siguiente se muestra la respuesta.

Nota: Se puede acortar el objeto de respuesta que se muestra aquí para mejorar la legibilidad.

HTTP/1.1 200 OK
Content-Type: application/json

{
  "@odata.context": "https://graph.microsoft.com/beta/$metadata#microsoft.graph.processContentResponse",
  "protectionScopeState": "modified",
  "policyActions": [
    {
      "@odata.type": "#microsoft.graph.restrictAccessAction",
      "action": "restrictAccess",
      "restrictionAction": "block"
    }
  ],
  "processingErrors": []
}

Ejemplo 3: Aplicación del proveedor de red

Solicitud

En el ejemplo siguiente se muestra la solicitud.

POST https://graph.microsoft.com/beta/users/{5def8f26-aff8-4db6-a08c-0fcf8f1aa2ba}/dataSecurityAndGovernance/processContent
Content-Type: application/json

{
	"contentToProcess": {
		"contentEntries": [
			{
				"@odata.type": "#microsoft.graph.processConversationMetadata",
				"identifier": "f7af180f-dc2e-467c-9719-757e1c61eabf",
				"content": {
					"@odata.type": "#microsoft.graph.textContent",
					"data": "some data"
				},
				"correlationId": "d63eafd2-e3a9-4c1a-b726-a2e9b9d95811",
				"sequenceNumber": 0,
				"name": "Test Content"
			}
		],
		"activityMetadata": {
			"activity": "uploadText"
		},
		"deviceMetadata": {
			"deviceType": "unmanaged",
			"ipAddress": null,
			"operatingSystemSpecifications": {
				"operatingSystemPlatform": "Windows",
				"operatingSystemVersion": "11.1"
			}
		},
		"integratedAppMetadata": {
			"name": "My Entra App",
			"version": "0.1"
		},
		"protectedAppMetadata": {
			"name": "My Entra App",
			"version": "0.1",
			"applicationLocation": {
				"@odata.type": "#microsoft.graph.policyLocationUrl",
				"value": "https://gemini.google.com"
			}
		}
	}
}


Respuesta

En el ejemplo siguiente se muestra la respuesta.

Nota: Se puede acortar el objeto de respuesta que se muestra aquí para mejorar la legibilidad.

HTTP/1.1 200 OK
Content-Type: application/json

{
  "@odata.context": "https://graph.microsoft.com/beta/$metadata#microsoft.graph.processContentResponse",
  "protectionScopeState": "modified",
  "policyActions": [
    {
      "@odata.type": "#microsoft.graph.restrictAccessAction",
      "action": "restrictAccess",
      "restrictionAction": "block"
    }
  ],
  "processingErrors": []
}

Ejemplo 4: Aplicación de proveedor de red con contenido de archivo

Solicitud

En el ejemplo siguiente se muestra la solicitud.

POST https://graph.microsoft.com/beta/me/dataSecurityAndGovernance/processContent
Content-Type: application/json

{
	"contentToProcess": {
		"contentEntries": [
			{
				"@odata.type": "#microsoft.graph.processFileMetadata",
				"identifier": "f7af180f-dc2e-467c-9719-757e1c61eabf",
				"content": {
				"@odata.type": "#microsoft.graph.textContent",
					"data": "Base64 encoded content"
				},
				"name": "Test File.docx",
				"correlationId": "d63eafd2-e3a9-4c1a-b726-a2e9b9d95822",
				"createdDateTime": "2024-07-23T01:31:40.2020463Z",
				"modifiedDateTime": "2024-09-17T13:45:21.0000000Z",
				"correlationId": "9d84223c-521c-42f4-8f35-3cdeabe515d3",
				"length": 17352,
				"isTruncated": false,
				"ownerId": "ffe1ca70-6e5b-4120-abf0-472034ba05d4",
             	"contentCategory": "none",
				"customProperties": {
					"Department": "Finance",
					"ReviewerName": "John Smith"
				}
			}
		],
		"activityMetadata": {
			"activity": "uploadFile"
		},
		"deviceMetadata": {
			"deviceType": "unmanaged",
			"operatingSystemSpecifications": {
				"operatingSystemPlatform": "Windows",
				"operatingSystemVersion": "11.1"
			}
		},
		"integratedAppMetadata": {
			"name": "Network Proxy App",
			"version": "1.0.0"
		},
		"protectedAppMetadata": {
			"name": "My App",
			"version": "0.1",
			"applicationLocation": {
				"@odata.type": "#microsoft.graph.policyLocationUrl",
				"value": "https://gemini.google.com"
			}
		}
	}
}

Respuesta

En el ejemplo siguiente se muestra la respuesta.

Nota: Se puede acortar el objeto de respuesta que se muestra aquí para mejorar la legibilidad.

HTTP/1.1 200 OK
Content-Type: application/json

{
  "@odata.context": "https://graph.microsoft.com/beta/$metadata#microsoft.graph.processContentResponse",
  "protectionScopeState": "modified",
  "policyActions": [
    {
      "@odata.type": "#microsoft.graph.restrictAccessAction",
      "action": "restrictAccess",
      "restrictionAction": "block"
    }
  ],
  "processingErrors": []
}

Ejemplo 5: Contenido de un archivo con una etiqueta de confidencialidad

Solicitud

En el ejemplo siguiente se proporciona un objeto de metadatos de etiqueta de confidencialidad para una entrada de contenido de archivo. La propiedad sensitivityLabels es una colección, por lo que el objeto único se incluye en una matriz. Los identificadores y valores de etiqueta de este ejemplo son ficticios.

POST https://graph.microsoft.com/beta/users/5def8f26-aff8-4db6-a08c-0fcf8f1aa2ba/dataSecurityAndGovernance/processContent
Content-Type: application/json

{
  "contentToProcess": {
    "contentEntries": [
      {
        "@odata.type": "#microsoft.graph.processFileMetadata",
        "identifier": "project-proposal",
        "content": {
          "@odata.type": "#microsoft.graph.textContent",
          "data": "Draft project proposal."
        },
        "name": "Project proposal.docx",
        "isTruncated": false,
        "createdDateTime": "2026-10-01T09:00:00Z",
        "modifiedDateTime": "2026-10-01T09:00:00Z",
        "ownerId": "5def8f26-aff8-4db6-a08c-0fcf8f1aa2ba",
        "sensitivityLabels": [
          {
            "id": "f7c86e4a-e462-4bbb-a0f0-078c10aa2898",
            "applicationMode": "manual"
          }
        ]
      }
    ],
    "activityMetadata": {
      "activity": "uploadFile"
    },
    "deviceMetadata": {
      "deviceType": "managed",
      "operatingSystemSpecifications": {
        "operatingSystemPlatform": "Windows 11",
        "operatingSystemVersion": "10.0.26100.0"
      }
    },
    "integratedAppMetadata": {
      "name": "Microsoft 365 Copilot",
      "version": "1.0.0"
    },
    "protectedAppMetadata": {
      "name": "Microsoft 365 Copilot in Word",
      "version": "1.0.0",
      "applicationLocation": {
        "@odata.type": "#microsoft.graph.policyLocationApplication",
        "value": "Copilot.M365.Word"
      }
    }
  }
}

Respuesta

En el ejemplo siguiente se muestra una respuesta cuando una directiva de protección de datos aplicable requiere bloquear el contenido enviado. Las acciones devueltas dependen de las directivas aplicables, no del número de etiquetas proporcionadas.

HTTP/1.1 200 OK
Content-Type: application/json

{
  "@odata.context": "https://graph.microsoft.com/beta/$metadata#microsoft.graph.processContentResponse",
  "protectionScopeState": "notModified",
  "policyActions": [
    {
      "@odata.type": "#microsoft.graph.restrictAccessAction",
      "action": "restrictAccess",
      "restrictionAction": "block"
    }
  ],
  "processingErrors": []
}

Ejemplo 6: Contenido de un archivo con dos etiquetas de confidencialidad

Solicitud

En el ejemplo siguiente se proporcionan dos objetos de metadatos de etiquetas de confidencialidad distintos para la misma entrada de contenido de archivo. Ambos objetos están en la colección sensitivityLabels heredada; Cada uno tiene su propio identificador de etiqueta y modo de aplicación. La colección describe los metadatos proporcionados por el autor de la llamada y no aplica varias etiquetas al archivo.

POST https://graph.microsoft.com/beta/users/5def8f26-aff8-4db6-a08c-0fcf8f1aa2ba/dataSecurityAndGovernance/processContent
Content-Type: application/json

{
  "contentToProcess": {
    "contentEntries": [
      {
        "@odata.type": "#microsoft.graph.processFileMetadata",
        "identifier": "project-proposal",
        "content": {
          "@odata.type": "#microsoft.graph.textContent",
          "data": "Draft project proposal."
        },
        "name": "Project proposal.docx",
        "isTruncated": false,
        "createdDateTime": "2026-10-01T09:00:00Z",
        "modifiedDateTime": "2026-10-01T09:00:00Z",
        "ownerId": "5def8f26-aff8-4db6-a08c-0fcf8f1aa2ba",
        "sensitivityLabels": [
          {
            "id": "8d14c2db-3e52-4345-af62-4ee3e65bff9e",
            "applicationMode": "automatic"
          },
          {
            "id": "f7c86e4a-e462-4bbb-a0f0-078c10aa2898",
            "applicationMode": "manual"
          }
        ]
      }
    ],
    "activityMetadata": {
      "activity": "uploadFile"
    },
    "deviceMetadata": {
      "deviceType": "managed",
      "operatingSystemSpecifications": {
        "operatingSystemPlatform": "Windows 11",
        "operatingSystemVersion": "10.0.26100.0"
      }
    },
    "integratedAppMetadata": {
      "name": "Microsoft 365 Copilot",
      "version": "1.0.0"
    },
    "protectedAppMetadata": {
      "name": "Microsoft 365 Copilot in Word",
      "version": "1.0.0",
      "applicationLocation": {
        "@odata.type": "#microsoft.graph.policyLocationApplication",
        "value": "Copilot.M365.Word"
      }
    }
  }
}

Respuesta

En el ejemplo siguiente se muestra una respuesta cuando una directiva de protección de datos aplicable requiere bloquear el contenido enviado. Proporcionar dos etiquetas no determina por sí solo la respuesta.

HTTP/1.1 200 OK
Content-Type: application/json

{
  "@odata.context": "https://graph.microsoft.com/beta/$metadata#microsoft.graph.processContentResponse",
  "protectionScopeState": "notModified",
  "policyActions": [
    {
      "@odata.type": "#microsoft.graph.restrictAccessAction",
      "action": "restrictAccess",
      "restrictionAction": "block"
    }
  ],
  "processingErrors": []
}