Utilizar un indexador de Búsqueda de Azure AI para importar las etiquetas de confidencialidad de Microsoft Purview y aplicar la seguridad a nivel de documento (versión preliminar)

Nota

Búsqueda de Azure AI está disponible a través del portal de Azure, las API REST y los SDK de Azure. También respalda Foundry IQ, la capa de conocimiento administrada que transforma el contenido empresarial en bases de conocimiento reutilizables y compatibles con permisos para agentes en el portal de Microsoft Foundry.

Importante

Las características, funcionalidades o propiedades marcadas (versión preliminar) no están cubiertas por un contrato de nivel de servicio, no se recomiendan para cargas de trabajo de producción y pueden cambiar o restringirse antes de que estén disponibles con carácter general. Los términos de la versión preliminar Búsqueda de Azure AI se aplican a todas las funciones de vista previa, ya sea independiente o parte de una característica disponible con carácter general.

Búsqueda de Azure AI admite la extracción y la aplicación en el momento de la consulta de la etiqueta de confidencialidad de Microsoft Purview (versión preliminar). Durante la indexación, extrae y almacena automáticamente metadatos de etiqueta de confidencialidad para cada documento. En el momento de la consulta, aplica el control de acceso basado en etiquetas según las directivas de protección de información existentes en Microsoft Purview, lo que garantiza que solo los usuarios autorizados puedan recuperar contenido etiquetado en los resultados de búsqueda.

Esta funcionalidad está disponible para los siguientes orígenes de datos:

Diagrama de arquitectura que muestra una solución RAG regulada donde los documentos etiquetados con etiquetas de confidencialidad de Microsoft Purview se indexan en Búsqueda de Azure AI, y un orquestador RAG filtra los resultados de las consultas por etiqueta para que los usuarios de nivel junior vean solo contenido general, mientras que los usuarios ejecutivos ven contenido general, confidencial y altamente confidencial.

Requisitos previos

Importante

El servicio de búsqueda debe usar su identidad administrada asignada por el sistema para autenticarse con Microsoft Purview. Esta característica no admite identidades administradas asignadas por el usuario.

Limitaciones

  • El portal de Azure no admite esta característica.

  • Las API de Autocompletar y Suggest no se admiten para los índices habilitados para Purview, ya que aún no pueden aplicar el control de acceso basado en etiquetas.

  • No se admiten las cuentas de invitado ni las consultas entre inquilinos.

  • Las identidades administradas asignadas por el usuario no se admiten para las asignaciones de roles de Microsoft Purview. Solo la identidad administrada asignada por el sistema del servicio puede tener los roles y Content.SuperUser requeridos para la extracción de etiquetas UnifiedPolicy.Tenant.Read. Asigne estos roles directamente a la propia identidad del servicio: este realiza las EXTRACToperaciones con privilegios (lectura de contenido cifrado y clasificaciones de seguridad) en nombre del indexador. Consulte paso 1 y paso 3.

  • Las siguientes características del indexador no admiten documentos con etiquetas de confidencialidad. Si usa cualquiera de estas características en un conjunto de aptitudes o indexador, los documentos con etiquetas de confidencialidad no se procesan.

Funcionamiento de la aplicación de directivas

La compatibilidad con las etiquetas de confidencialidad consta de dos fases: indexación y aplicación durante el tiempo de consulta.

Indexación

Al configurar la indexación según una programación, el indexador extrae nuevos documentos y actualizaciones del origen de datos. Para cada documento, captura:

  • Contenido del documento
  • Etiqueta de confidencialidad asociada
  • Cambios en el contenido o etiquetas desde la última ejecución del indexador

Nota

El índice no refleja los cambios en las etiquetas de los documentos de origen hasta la siguiente ejecución correcta del indexador.

Aplicación en tiempo de consulta

En el momento de la consulta, Búsqueda de Azure AI evalúa las etiquetas de confidencialidad y aplica control de acceso a nivel de documento en función del token de Microsoft Entra ID del usuario y las directivas de etiqueta de Microsoft Purview. Solo los usuarios autorizados para acceder al contenido con el derecho de uso read bajo una etiqueta determinada pueden recuperar los documentos correspondientes en los resultados de la búsqueda.

Los administradores autorizados también pueden emitir solicitudes elevated read, que devuelven documentos etiquetados que el usuario que realiza la llamada normalmente no vería y emitiría una entrada de registro de auditoría Microsoft Purview para cada documento devuelto. La lectura elevada requiere el rol Search Index Data Contributor en el servicio de búsqueda y la versión de la API 2026-05-01-preview o posterior.

Ejemplo de extremo a extremo

En las imágenes siguientes se muestra cómo fluyen las etiquetas de confidencialidad desde la creación hasta la experiencia de búsqueda. En la primera imagen, un usuario aplica la etiqueta Confidential a un documento de Microsoft Word. En la segunda imagen, un bot de chat empresarial aplica esa etiqueta en el momento de la consulta, bloqueando las acciones de copia y uso compartido para el contenido confidencial.

Captura de pantalla del menú de confidencialidad de Microsoft Word que muestra una jerarquía de etiquetas, incluidas las no empresariales, Público, General, Confidencial con subetiquetas como Project Obsidian y Destinatarios, y Extremadamente confidencial, con la etiqueta Confidencial aplicada actualmente al documento.

Captura de pantalla de un chatbot empresarial de Contoso que muestra una respuesta conforme a las directivas con citas numeradas, un banner con la etiqueta de confidencialidad Confidential Project Obsidian, acciones de copia y uso compartido bloqueadas, y etiquetas de confidencialidad por documento que se muestran en el panel de referencias.

1. Habilitación de la identidad administrada de AI Search

Habilitar una identidad administrada asignada por el sistema para el servicio Búsqueda de Azure AI: no se admiten identidades administradas asignadas por el usuario para esta característica. El indexador usa esta identidad para autenticarse con Microsoft Purview y extraer metadatos de etiqueta de confidencialidad. También debe recibir las asignaciones de roles en el paso 3.

2. Habilitación de RBAC en el servicio de búsqueda de IA

Habilite el control de acceso basado en rol (RBAC) en el servicio Búsqueda de Azure AI. Este paso es necesario para que las operaciones relacionadas con el contenido, como la indexación de contenido y la consulta del índice se realicen correctamente. Mantenga las claves de RBAC y API para evitar interrumpir las operaciones que dependen de las claves de API.

3. Conceder acceso para extraer etiquetas de confidencialidad

El acceso a los metadatos de etiquetas de confidencialidad de Microsoft Purview implica operaciones con privilegios elevados, como leer contenido cifrado y clasificaciones de seguridad. Para habilitar esta funcionalidad en Búsqueda de Azure AI, debe conceder roles específicos a la identidad administrada del servicio, siguiendo los procesos internos de gobernanza y aprobación de la organización.

Identificación de los administradores de roles globales o con privilegios

Si necesita determinar quién puede autorizar los permisos para el servicio de búsqueda, puede buscar administradores globales activos o aptos en el inquilino de Microsoft Entra.

  1. En el portal Azure, busque Microsoft Entra ID.

    Captura de pantalla de la acción de búsqueda para el producto Microsoft Entra.

  2. En el panel de navegación izquierdo, seleccione Administrar > Roles y Administradores.

    Captura de pantalla de la página Roles y administradores de Entra.

  3. Busque el rol Administrador global o Administrador de roles con privilegios y selecciónelo.

    Captura de pantalla de la selección del rol de administrador global.

  4. En Asignaciones aptas y Asignaciones activas, revise la lista de administradores autorizados para ejecutar el proceso de configuración de permisos.

    Captura de pantalla de las asignaciones elegibles y activas del rol.

Obtener aprobación de gobernanza

Póngase en contacto con los equipos de seguridad o cumplimiento internos para revisar la solicitud. Microsoft recomienda seguir el proceso de revisión de seguridad y gobernanza estándar de su empresa antes de continuar con las asignaciones de roles.

Una vez aprobado, un administrador global o un administrador de roles con privilegios debe asignar los siguientes roles a la identidad administrada asignada por el sistema Búsqueda de Azure AI:

  • Content.SuperUser: para la extracción de etiquetas y contenido
  • UnifiedPolicy.Tenant.Read : para el acceso a metadatos de directivas y etiquetas de Purview

Asignación de roles mediante PowerShell

Nota

Asigne estos roles solo a la identidad administrada asignada por el sistema del servicio Búsqueda de Azure AI, no a una identidad administrada asignada por el usuario, una entidad de servicio o una cuenta de usuario individual. El script de PowerShell recupera automáticamente el identificador de objeto de identidad administrada del recurso de servicio.

El administrador global o el administrador de roles con privilegios deben usar el siguiente script de PowerShell para conceder los permisos necesarios. Reemplace los valores de marcador de posición por los nombres reales de suscripción, grupo de recursos y servicio de búsqueda.

Install-Module -Name Az -Scope CurrentUser
Install-Module -Name Microsoft.Entra -AllowClobber
Import-Module Az.Resources
Connect-Entra -Scopes 'Application.ReadWrite.All'

$resourceIdWithManagedIdentity = "subscriptions/<subscriptionId>/resourceGroups/<resourceGroup>/providers/Microsoft.Search/searchServices/<searchServiceName>"
$managedIdentityObjectId = (Get-AzResource -ResourceId $resourceIdWithManagedIdentity).Identity.PrincipalId

# Microsoft Information Protection (MIP)
$MIPResourceSP = Get-EntraServicePrincipal -Filter "appID eq '870c4f2e-85b6-4d43-bdda-6ed9a579b725'"
New-EntraServicePrincipalAppRoleAssignment -ServicePrincipalId $managedIdentityObjectId -Principal $managedIdentityObjectId -ResourceId $MIPResourceSP.Id -Id "8b2071cd-015a-4025-8052-1c0dba2d3f64"

# Microsoft Rights Management Services (MRMS) - Service Principal for policy read
$MRMSResourceSP = Get-EntraServicePrincipal -Filter "appID eq '00000012-0000-0000-c000-000000000000'"
New-EntraServicePrincipalAppRoleAssignment -ServicePrincipalId $managedIdentityObjectId -Principal $managedIdentityObjectId -ResourceId $MRMSResourceSP.Id -Id "7347eb49-7a1a-43c5-8eac-a5cd1d1c7cf0"

Los roles appID del script de PowerShell proporcionado están asociados a los siguientes roles de Azure:

AppID Entidad de servicio
870c4f2e-85b6-4d43-bdda-6ed9a579b725 Servicio de sincronización de Info Protection de Microsoft
00000012-0000-0000-c000-000000000000 Microsoft Servicios de administración de derechos

4. Configurar el índice para habilitar la etiqueta de confidencialidad de Purview

Cuando se requiera compatibilidad con etiquetas de confidencialidad, establezca la propiedad purviewEnabled en true en la definición de índice.

Importante

La purviewEnabled propiedad debe establecerse en true cuando se crea el índice. Esta configuración es permanente y no se puede modificar más adelante.

Cuando purviewEnabled se establece en true, solo se admite la autenticación RBAC en todas las API de operaciones con documentos.

El acceso a la clave de API se limita a la recuperación del esquema de índice (listar y obtener).

PUT https://{service}.search.windows.net/indexes('{indexName}')?api-version=2026-08-01-preview
{
  "purviewEnabled": true,
  "fields": [
    {
      "name": "sensitivityLabel",
      "type": "Edm.String",
      "filterable": true,
      "sensitivityLabel": true,
      "retrievable": true
    }
  ]
}

5. Configurar el origen de datos

Para habilitar la ingesta de etiquetas de sensibilidad, configure el origen de datos con la propiedad indexerPermissionOptions establecida en ["sensitivityLabel"].

{
  "name": "purview-sensitivity-datasource",
  "type": "azureblob", // < adjust type value according to the data source you are enabling this for: sharepoint, onelake, adlsgen2.
  "indexerPermissionOptions": [ "sensitivityLabel" ],
  "credentials": {
    "connectionString": <your-connection-string>;"
  },
  "container": {
    "name": "<container-name>"
  }
}

La propiedad indexerPermissionOptions instruye al indexador para que extraiga los metadatos de las etiquetas de confidencialidad durante el proceso de ingestión y los adjunte al documento indexado.

6. Configurar proyecciones de índice en el skillset (si procede)

Si el indexador tiene un conjunto de aptitudes y usted está implementando fragmentación de datos mediante la aptitud División de texto, por ejemplo, con vectorización integrada, proyecte la etiqueta de confidencialidad en cada fragmento mediante proyecciones de índice en el conjunto de aptitudes.

Para conocer la directriz general sobre cuándo los campos de permisos y ACL deben incluirse en las asignaciones de campos del indexador frente a las proyecciones de índice, consulte Elegir dónde completar los campos de ACL.

Este paso es necesario tanto para la aplicación en tiempo de consulta como para que las respuestas de recuperación de agentes incluyan un sensitivityLabelInfo por documento para cada fragmento. Sin la asignación de proyección, las filas de fragmentos secundarios no se filtrarán correctamente.

PUT https://{service}.search.windows.net/skillsets/{skillset}?api-version=2026-08-01-preview
{
  "name": "my-skillset",
  "skills": [
    {
      "@odata.type": "#Microsoft.Skills.Text.SplitSkill",
      "name": "#split",
      "context": "/document",
      "inputs": [{ "name": "text", "source": "/document/content" }],
      "outputs": [{ "name": "textItems", "targetName": "chunks" }]
    }
    // ... (other skills such as embeddings, entity recognition, etc.)
  ],
  "indexProjections": {
    "selectors": [
      {
        "targetIndexName": "chunks-index",
        "parentKeyFieldName": "parentId",          // must exist in target index
        "sourceContext": "/document/chunks/*",     // match your split output path
        "mappings": [
          { "name": "chunkId",           "source": "/document/chunks/*/id" },     // if you create an id per chunk
          { "name": "content",           "source": "/document/chunks/*/text" },   // chunk text
          { "name": "parentId",          "source": "/document/id" },              // parent doc id
          { "name": "sensitivityLabel",  "source": "/document/metadata_sensitivity_label" } // <-- parent → child
        ]
      }
    ],
    "parameters": {
      "projectionMode": "skipIndexingParentDocuments"
    }
  }
}

7. Configuración del indexador

  • Defina las asignaciones de campos en la definición del indexador para enrutar los metadatos de etiqueta extraídos a los campos del índice. Si su origen de datos emite metadatos de etiquetas con un nombre de campo diferente (por ejemplo, metadata_sensitivity_label), asigne la correspondencia de forma explícita.
{
  "fieldMappings": [
    {
      "sourceFieldName": "metadata_sensitivity_label",
      "targetFieldName": "sensitivityLabel"
    }
  ]
}
  • El indexador indexa automáticamente las actualizaciones de etiquetas de confidencialidad cuando detecta cambios en la etiqueta, el contenido o los metadatos de un documento durante una ejecución programada del indexador. Configure el indexador en una programación periódica. El intervalo mínimo admitido es cada 5 minutos.

Pasos siguientes