Use un indexador de SharePoint para ingerir metadatos de permisos y filtrar los resultados de búsqueda en función de los derechos de acceso de los usuarios (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.

La ingesta de metadatos de permisos de SharePoint (versión preliminar) utiliza un indexador de Búsqueda de Azure AI para conservar los metadatos de permisos, como las listas de control de acceso (ACL), junto con otros contenidos de SharePoint en Microsoft 365. El indexador almacena los permisos como metadatos en cada documento indexado. En el momento de la consulta, los usuarios solo reciben documentos a los que tienen permiso para acceder.

diagrama de arquitectura que muestra una solución RAG ajustada por seguridad donde un indexador de SharePoint ingiere documentos y metadatos de permisos de ACL desde un sitio de SharePoint, los almacena en un índice de búsqueda de Azure AI, y un orquestador RAG filtra los resultados de la consulta para que cada usuario recupere solo los documentos a los que está autorizado a acceder.

Importante

Para escenarios que requieren el modelo de permisos de SharePoint completo, las etiquetas de confidencialidad y la restricción de seguridad predeterminada, use un origen de conocimiento remoto de SharePoint. Este enfoque llama a SharePoint directamente a través de la API de recuperación Copilot. La gobernanza permanece totalmente en SharePoint y los resultados de la consulta respetan automáticamente todos los permisos y etiquetas aplicables.

Requisitos previos

  • Búsqueda de Azure AI en un nivel facturable (Básico o superior) en cualquier región.

  • SharePoint en sitios, bibliotecas, carpetas y archivos de Microsoft 365 con permisos configurados.

  • Complete todos los pasos de configuración de la documentación del indexador SharePoint, aplicando los requisitos específicos de la ACL descritos en este artículo.

  • Configure los permisos de aplicación de Microsoft Entra y una credencial adecuada para su caso. Consulte Permisos por escenario de ACL. La ingesta de ACL requiere permisos de la aplicación. No se admiten permisos delegados. Para decidir entre permisos de aplicación y permisos delegados, consulte Elegir la configuración de permisos.

  • API REST versión 2026-08-01-preview o un paquete de SDK de versión preliminar equivalente.

Limitaciones

  • Las actualizaciones incrementales de ACL requieren la API REST 2026-05-01-preview o posterior. En versiones anteriores de la API en versión preliminar, el sistema captura las ACL solo en la primera ingesta de cada elemento. Los cambios de permisos posteriores requieren reindexación explícita. Para conocer los pasos de migración, consulte Sincronización de permisos entre contenido indexado y de origen.

  • Los cambios de permisos del ámbito principal no se detectan automáticamente en las ejecuciones posteriores del indexador. Para ver las opciones de actualización, consulte Sincronizar permisos entre contenido indexado y de origen.

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

  • En esta versión preliminar no se admiten las siguientes características:

  • Las siguientes características del indexador no admiten la herencia de permisos en documentos indexados que se originan en SharePoint. Si usa cualquiera de estas características en un conjunto de aptitudes o indexador, los permisos de nivel de documento no se incluyen en el contenido indizado.

Compatibilidad con el modelo de permisos de SharePoint

Esta versión preliminar admite ACL básicas para documentos, elementos de lista y páginas de sitio ASPX modernas.

característica de SharePoint Descripción Soportado Notas
Herencia de sitios, bibliotecas, listas y páginas sitio → biblioteca/lista → carpeta → archivo/elemento/página. ✔️ Evaluado durante la ingesta; se calculan las ACL efectivas para cada elemento.
ACL únicas de carpeta, archivo, elemento de lista y página Acceso de nivel de elemento. ✔️ Se incluyen cuando están presentes en la primera ingesta y en ejecuciones posteriores que detectan cambios de ACL para elementos con permisos únicos.
elementos de lista de SharePoint Permisos de elementos de lista (contenedores allSiteLists y allSiteContent). ✔️ Versión preliminar, a partir de la API REST 2026-05-01-preview.
Páginas de sitio ASPX Permisos en páginas de sitio modernas (allSitePages y allSiteContent contenedores). ✔️ Versión preliminar, a partir de la API REST 2026-05-01-preview.
grupos de Microsoft Entra (Microsoft 365 y seguridad) Acceso basado en grupos. ✔️ Identificadores de grupo incluidos cuando se pueden resolver en un identificador (ID) de Microsoft Entra.
grupos de sitios de SharePoint Propietarios,Miembros/Visitantes y grupos de sitios personalizados. ✔️ Versión preliminar, a partir de la API REST 2026-05-01-preview. Requiere la configuración de grupos SharePoint. Los identificadores de grupo se emiten con el spg: prefijo .
Vínculos que se pueden compartir: "Vínculos para cualquiera" o "Vínculos para personas de su organización" Acceso público o de toda la organización. ❌ No se admite en la versión preliminar.
Usuarios externos o invitados Acceso para invitados. ❌ No se admite.
Directivas de administración de información Directivas para definir requisitos de permisos específicos. ❌ No se admite en la versión preliminar.
Etiquetas de sensibilidad de Purview Seguridad de nivel de documento para privacidad, categorización, permisos y cifrado ❌ Se admite a través de una característica independiente: conservar y respetar las etiquetas de confidencialidad.

Relaciones de grupo compatibles

La transitividad de grupos de Microsoft Entra se aplica dentro de Microsoft Entra. No expande los grupos de Microsoft Entra que sean miembros de grupos de SharePoint.

Relación entre permisos Soportado Instrucciones
Usuario o grupo de Microsoft Entra asignado directamente al elemento de SharePoint Sí El indexador almacena el identificador de objeto del usuario o del grupo de Microsoft Entra en los metadatos de permisos del elemento.
El usuario accede a un grupo de Microsoft Entra asignado mediante el anidamiento transitivo de grupos de Microsoft Entra Sí La resolución de Microsoft Graph en el momento de la consulta amplía las pertenencias transitivas del usuario a grupos de Microsoft Entra.
Usuario asignado directamente a un grupo de sitios de SharePoint que tiene acceso al elemento Sí Configurar la compatibilidad de los grupos de SharePoint.
Grupo de Microsoft Entra integrado dentro de un grupo de SharePoint No La resolución de grupos de SharePoint no amplía el grupo anidado de Microsoft Entra. Los resultados que dependen de esta relación se filtran. Agregue usuarios directamente al grupo de SharePoint o conceda permiso a través de una asignación de grupo de Microsoft Entra compatible.
Otras direcciones de anidamiento mixtas de SharePoint y Microsoft Entra No especificado No deduzca la compatibilidad a partir de la transitividad de Microsoft Entra. Esta limitación de la versión preliminar se aplica a los grupos de Microsoft Entra anidados en grupos de SharePoint.

Cómo se evalúan los permisos jerárquicos

Los permisos de SharePoint heredan la jerarquía de Sitio → Biblioteca → Carpeta → Archivo, a menos que se interrumpa la herencia.

Durante la ingesta, el indexador recopila identificadores de usuario y grupo (ID) en cada nivel y calcula la ACL efectiva para cada archivo.

Permisos según el escenario de ACL

Los permisos de aplicación de Microsoft Entra y el tipo de credencial necesarios para la ingesta de ACL dependen de los tipos de elementos y de grupos que indexe. En el registro de aplicaciones, todos los permisos se agregan en permisos> de APIAgregar un permiso y la credencial federada se agrega en Certificados y secretos>Credenciales federadas. Para obtener instrucciones y capturas de pantalla paso a paso, consulte Step 3: Crear un registro de aplicación de Microsoft Entra y Configurar la aplicación registrada con una identidad administrada.

Escenario Permisos de API para agregar Credencial
ACL en archivos de bibliotecas de documentos, cuando solo se concede acceso a través de los usuarios y grupos estándar de Microsoft Entra (grupos de seguridad de Microsoft Entra, grupos de Microsoft 365, grupos de seguridad habilitados para correo) Microsoft Graph: Files.Read.All, Sites.FullControl.All (o Sites.Selected para el acceso con ámbito) Secreto de cliente o credencial federada
ACL en archivos de bibliotecas de documentos, cuando también deba aplicarse a grupos de sitios de SharePoint (Propietarios, Miembros, Visitantes o grupos de sitios personalizados) Microsoft Graph: Files.Read.All, Sites.FullControl.All (o Sites.Selected)
SharePoint: Sites.FullControl.All (o Sites.Selected)
Credencial federada (obligatorio)
ACLs en elementos de lista de SharePoint Microsoft Graph: Files.Read.All, Sites.FullControl.All (o Sites.Selected), User.Read.All
SharePoint: Sites.FullControl.All (o Sites.Selected)
Credencial federada (obligatorio)
Contenido y ACL en páginas de sitio ASPX Microsoft Graph: Sites.FullControl.All (o Sites.Selected), User.Read.All (mantenga Files.Read.All de las filas anteriores si también está indexando bibliotecas o listas de documentos).
SharePoint: Sites.FullControl.All (o Sites.Selected)
Credencial federada (obligatorio)
Resolución en tiempo de consulta de grupos de sitios de SharePoint a través de sharePointConnectorAppRegistration Agregue SharePoint: User.Read.All al mismo registro de aplicación usado por el indexador Credencial federada (obligatorio)

Nota

  • Al agregar un permiso, elija entre dos superficies de API: Microsoft Graph y SharePoint. Ambos exponen permisos con nombres similares. Por ejemplo, Sites.FullControl.All existe bajo ambos. Agregue cada permiso en el área expuesta de la API indicada en la tabla.

  • Use una credencial federada siempre que el escenario agregue SharePoint permisos de API. Los secretos del cliente únicamente funcionan para la fila de la biblioteca de documentos solo para Microsoft Graph.

  • User.Read.All es necesario para elementos de lista y páginas de sitio ASPX porque el indexador lee esos permisos a través de la API REST de SharePoint, que devuelve solo el correo electrónico del usuario. A continuación, el indexador llama a Microsoft Graph para resolver cada correo electrónico en su identificador de objeto de Microsoft Entra y esa búsqueda requiere User.Read.All.

  • Al usar Sites.Selected, conceda a la aplicación acceso explícito a cada sitio de destino SharePoint antes de la indexación.

Una credencial federada autentica la aplicación mediante una identidad administrada de confianza en lugar de un secreto de cliente. La misma credencial federada se utiliza tanto para la ingesta (indexador) como para la evaluación en tiempo de consulta de los grupos de sitios de SharePoint. Para conocer los pasos de configuración, consulte Configuración de la aplicación registrada con una identidad administrada.

Antes de habilitar la ingesta de ACL

Complete estos pasos en la aplicación de Microsoft Entra registrada:

  1. Identifique su escenario en la tabla anterior en función de lo que planea indexar (archivos de biblioteca de documentos, elementos de lista, páginas de sitio ASPX) y si se deben respetar los grupos de sitios SharePoint.
  2. Abra el registro de la aplicación en el Centro de administración Microsoft Entra y vaya a permisos API>Agregar un permiso.
  3. Agregue los permisos Microsoft Graph enumerados para su escenario. Conceda el consentimiento del administrador.
  4. Si el escenario también requiere permisos SharePoint, seleccione Agregar un permiso de nuevo, elija la API SharePoint y agregue Sites.FullControl.All (o Sites.Selected). Conceda el consentimiento del administrador.
  5. Configure la credencial:
    • Para escenarios solo de Microsoft Graph, puede utilizar un secreto de cliente (Certificados y secretos>Secretos de cliente) o una credencial federada.
    • Para cualquier escenario que incluya permisos de SharePoint, agregue una credencial federada en Certificados y secretos>Credenciales federadas. Consulte Configuración de la aplicación registrada con una identidad administrada.
  6. Conceda a la aplicación acceso a los sitios de destino SharePoint (especialmente importante al usar Sites.Selected para el acceso con ámbito) para que pueda leer el contenido y los permisos que desea indexar.

Búsqueda de los identificadores de Microsoft Entra correctos

Cada identificador aparece en una ubicación diferente en el portal de Azure y se asigna a un campo de configuración específico. Utilice esta sección como referencia al configurar la ingestión de ACL de SharePoint con una credencial federada. Se hace referencia a estos identificadores en Configurar la compatibilidad con grupos de SharePoint y en la cadena de conexión del origen de datos.

Identificador Ubicación del portal Se utiliza donde Notas
ID de la aplicación de ingesta (cliente) Registros de aplicaciones><your-app>>Información general ApplicationId en la cadena de conexión del origen de datos; applicationId en sharePointConnectorAppRegistration Este identificador es correcto para la mayoría de los campos de configuración. También se denomina "id. de cliente".
Id. de objeto de aplicación Registros de aplicaciones><your-app>>Información general (debajo de Id. de aplicación (cliente)) No se usa en la configuración de Búsqueda de Azure AI No confunda esto con el identificador de aplicación (cliente). Aparece en la misma hoja, directamente debajo del identificador de cliente.
Id. de objeto de la entidad de servicio Microsoft Entra ID>Aplicaciones empresariales><your-app>>Administrar>Propiedades No se usa en la configuración de Búsqueda de Azure AI Esta es la representación de la entidad de servicio de la aplicación. Es un GUID diferente del identificador de objeto de registro de la aplicación.
Identificador principal de identidad administrada Recurso de identidad gestionada >Propiedades o el panel Identidad del servicio de búsqueda No se usa directamente en la configuración del origen de datos o del índice de Búsqueda de Azure AI Se usa internamente al configurar la credencial de identidad federada en el registro de la aplicación. La credencial que crea confía en esta identidad.
Identificador del objeto de credencial federada Registros de aplicaciones><your-app>>Administrar>Certificados y secretos>Credenciales federadas><credential-name> No se usa en la configuración de Búsqueda de Azure AI No utilice el GUID de la entrada de credenciales de identidad federada para federatedCredentialId.
Identificador de aplicación de credenciales federadas Asignado por el sistema: Microsoft Entra ID>Aplicaciones empresariales><search-service>>; Asignado por el usuario: <managed-identity-resource>>Propiedades FederatedCredentialApplicationId en la cadena de conexión del origen de datos; federatedCredentialId en sharePointConnectorAppRegistration Consulte ID de aplicación de credenciales federadas para la búsqueda de la identidad administrada.

Identificador de aplicación de credenciales federadas

Para FederatedCredentialApplicationId en la cadena de conexión de la fuente de datos y federatedCredentialId en la definición del índice, utilice el propio ID de aplicación (cliente) de la identidad administrada, no el ID de la aplicación de ingesta.

Identidad administrada asignada por el sistema:

  1. Vaya al servicio Búsqueda de Azure AI.
  2. Seleccione Seguridad y identidad de red>.
  3. En la pestaña Asignado por el sistema, anote el Id. de objeto (entidad de seguridad).
  4. Vaya a Microsoft Entra ID>Administrar>Aplicaciones empresariales.
  5. Busque el nombre del servicio de búsqueda o pegue el identificador de objeto (principal) en el cuadro de búsqueda.
  6. Seleccione el resultado y abra Propiedades. Copie el identificador de aplicación que se muestra aquí, que es el valor de FederatedCredentialApplicationId en el origen de datos y federatedCredentialId en el índice.

Identidad administrada asignada por el usuario:

  1. Vaya al recurso de identidad administrada asignada por el usuario.
  2. Haga clic en Configuración>Propiedades.
  3. Copie el identificador de cliente, que es el valor de FederatedCredentialApplicationId en el origen de datos y federatedCredentialId en el índice.

Configurar el servicio de búsqueda para la ingesta de ACL y la aplicación en tiempo de consulta

Estos pasos configuran su servicio de búsqueda para la ingesta de ACL y habilitan el respeto de ACL durante la consulta.

Elegir dónde rellenar los campos de ACL

La ubicación en la que asigna los campos de metadatos de ACL depende de si el indexador escribe un documento por elemento de origen o varios fragmentos por elemento de origen.

Escenario Rellenar campos de ACL a través de Por qué
Sin conjunto de aptitudes o con conjunto de aptitudes sin fragmentación; un documento de búsqueda por elemento de origen Asignaciones de campos del indexador solo (metadata_user_ids → UserIds, metadata_group_ids → GroupIds, y para los grupos de SharePoint metadata_spo_site_url → SharePointSiteUrl). El indexador escribe un único documento en el índice de destino, y las asignaciones de campos transfieren metadatos de origen a los campos del índice.
Conjunto de aptitudes con fragmentación (por ejemplo, aptitud División de texto para la vectorización integrada), índice único con campos primarios repetidos en cada fragmento (projectionMode: skipIndexingParentDocuments) Proyecciones de índice en el conjunto de aptitudes (mappings de /document/metadata_user_ids, /document/metadata_group_ids, y para grupos de SharePoint /document/metadata_spo_site_url). El documento principal no se indexa; solo se indexan los fragmentos. Los valores de ACL deben propagarse a cada fragmento para que los filtros aplicados en el momento de la consulta se apliquen al fragmento devuelto en los resultados. Las asignaciones de campos del indexador para estos campos se omiten en este modo.
Conjunto de aptitudes con fragmentación, patrón de dos índices (índice principal + índice de fragmentos secundarios) Ambos: las asignaciones de campos del indexador completan los campos de ACL en el índice principal; las proyecciones de índice completan los campos de ACL en el índice secundario de fragmentos. Ambos índices son consultables y cada uno necesita los metadatos en los que se filtra.

En todos los escenarios con fragmentación, cada fragmento debe incluir los campos de ACL. Los filtros de permisos se aplican a cada documento, por lo que un fragmento sin campos de ACL no puede devolverse al llamador correcto.

1. Configuración del origen de datos

Esta sección es un delta que acompaña al tutorial básico Paso 4: Crear origen de datos. Establezca indexerPermissionOptions en la definición de origen data para permitir la indexación de userIds y groupIds desde documentos de SharePoint.

{
  "name": "my-sharepoint-acl-datasource",
  "type": "sharepoint",
  "indexerPermissionOptions": ["userIds", "groupIds"],
  "credentials": {
    "connectionString": "<connection-string>;"
  },
  "container": {
    "name": "<library-name>",
    "query": "<optional-folder-path>"
  }
}

2. Agregar campos de permiso a la definición de índice

Agregue campos a la definición del esquema de índice para almacenar las ACL y admitir el filtrado en tiempo de consulta.

{
  "fields": [
    { "name": "UserIds",  "type": "Collection(Edm.String)", "permissionFilter": "userIds",  "filterable": true, "retrievable": false },
    { "name": "GroupIds", "type": "Collection(Edm.String)", "permissionFilter": "groupIds", "filterable": true, "retrievable": false }
  ],
  "permissionFilterOption": "enabled"
}

Establezca el atributo retrievable en true solo durante el desarrollo para comprobar los valores. Puede cambiar el estado de recuperable de true a false sin necesidad de volver a compilar los índices.

3. Configurar proyecciones de índice en el conjunto de habilidades (si procede)

Cuando la fragmentación está habilitada, el documento primario no se escribe en el índice cuando projectionMode es skipIndexingParentDocuments. Traslade los metadatos ACL a cada fragmento mediante indexProjections.selectors[].mappings.

Si el indexador usa un conjunto de aptitudes con fragmentación de datos, como la aptitud División de texto al habilitar la vectorización integrada, asegúrese de asignar propiedades de ACL a cada fragmento mediante proyecciones de índice. Las // líneas del ejemplo siguiente son anotaciones ilustrativas y no son JSON válidos. Quítelos antes de enviar la solicitud.

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": "UserIds",  "source": "/document/metadata_user_ids" },
          { "name": "GroupIds",  "source": "/document/metadata_group_ids" },
          { "name": "SharePointSiteUrl", "source": "/document/metadata_spo_site_url" } // include when the index has sharePointConnectorAppRegistration (SharePoint groups support)
        ]
      }
    ],
    "parameters": {
      "projectionMode": "skipIndexingParentDocuments"
    }
  }
}

Las asignaciones de UserIds, GroupIds y SharePointSiteUrl leen metadatos de nivel de origen emitidos por el indexador de SharePoint (/document/metadata_*) y escriben esos valores en cada fragmento.

4. Configurar las asignaciones de campos del indexador para las ACL

Use asignaciones de campos del indexador cuando el indexador escriba un documento por elemento de origen (sin fragmentación) o cuando mantenga un índice primario independiente junto con un índice de fragmentos. Si el conjunto de habilidades fragmenta documentos en un único índice de destino con projectionMode: skipIndexingParentDocuments, las asignaciones de campos que se muestran aquí quedan sustituidas por las indexProjections.mappings del paso anterior para el índice de fragmentos.

Además de la configuración del indexador necesaria, asigne campos de ACL de metadatos sin procesar de SharePoint a los campos de índice.

{
  "fieldMappings": [
    { "sourceFieldName": "metadata_user_ids",  "targetFieldName": "UserIds" },
    { "sourceFieldName": "metadata_group_ids", "targetFieldName": "GroupIds" }
  ]
}

5. Ejecutar el indexador

Los metadatos de ACL se ingieren cuando se ejecuta el indexador. Después de crear o actualizar el indexador (consulte Paso 6: Crear un indexador), desencadene una ejecución para que el indexador ingiere ACL junto con el contenido.

POST https://[service name].search.windows.net/indexers/[indexer-name]/run?api-version=2026-08-01-preview
api-key: [admin key]

Si ha habilitado la ingesta de ACL en un indexador existente que ya ha indexado elementos, llame a /resync con options: ["permissions"] para rellenar de forma retroactiva las ACL de esos elementos, o /resetdocs para volver a extraer elementos específicos.

6. Comprobar la ingesta de ACL

Para confirmar que los valores de ACL se hayan rellenado correctamente:

  1. Establezca temporalmente retrievable en true en UserIds y GroupIds de la definición del índice. El cambio retrievable no requiere una recompilación de índices.
  2. Ejecute una consulta de lectura elevada que seleccione UserIds y GroupIds, y confirme que las colecciones no estén vacías. En escenarios fragmentados, confirme que cada fragmento contiene ambos campos.
  3. Vuelva retrievable a false después de la comprobación.

Configuración de la compatibilidad con grupos de SharePoint

A partir de la versión preliminar 2026-05-01 de la API REST, el indexador de SharePoint puede incorporar las pertenencias a grupos de sitios de SharePoint (Propietarios, Miembros, Visitantes y grupos de sitios personalizados). Aplica estos grupos al realizar la consulta. Los identificadores de grupo de SharePoint se muestran en el campo metadata_group_ids con el prefijo spg: para distinguirlos de los identificadores de objeto de los grupos de Microsoft Entra.

Este tutorial es independiente: complete los pasos en orden para configurar el índice, las asignaciones de campos del indexador y consulte el índice con la aplicación de grupos de sitios de SharePoint.

Los siguientes componentes funcionan conjuntamente para habilitar la resolución de grupos de sitios de SharePoint:

Componente Where Purpose
sharePointConnectorAppRegistration (con applicationId, tenantId, federatedCredentialId) Definición de índice Proporciona la configuración de autenticación necesaria para que el servicio de búsqueda llame a la API REST de SharePoint como el usuario que realiza la llamada y resuelva la pertenencia a grupos del sitio en el momento de la consulta.
SharePointSiteUrl campo (con sharepointSiteUrl: true) Esquema de índice + asignación de campos del indexador desde metadata_spo_site_url Identifica a qué sitio de SharePoint pertenece un documento, para que la resolución de grupos de SP quede correctamente delimitada.
valores con el prefijo spg: en GroupIds Metadatos de permisos de documento Distinga los identificadores de grupo de sitio de SharePoint de los identificadores de objeto de grupo de Microsoft Entra.

1. Prerrequisitos

Nota

FederatedCredentialApplicationId en la cadena de conexión de la fuente de datos y federatedCredentialId en sharePointConnectorAppRegistration utilice el ID de aplicación de la identidad administrada. La propiedad applicationId de sharePointConnectorAppRegistration usa el identificador de cliente de la aplicación de ingesta. Para buscar los valores correctos, consulte Búsqueda de los identificadores de Microsoft Entra correctos.

2. Configurar el índice

Añada la configuración sharePointConnectorAppRegistration y el campo SharePointSiteUrl junto a los campos de filtro de permisos UserIds y GroupIds, para que la estructura completa del índice esté en un solo lugar. Mantenga permissionFilterOption: "enabled".

PUT https://{service}.search.windows.net/indexes/{index}?api-version=2026-08-01-preview
{
  "name": "my-sharepoint-acl-index",
  "sharePointConnectorAppRegistration": {
      "applicationId": "<ingestion-app-client-id>",
      "federatedCredentialId": "<managed-identity-application-id>",
     "tenantId": "<sharepoint-tenant-id>"
  },
  "fields": [
    { "name": "UserIds",           "type": "Collection(Edm.String)", "permissionFilter": "userIds",  "filterable": true, "retrievable": false },
    { "name": "GroupIds",          "type": "Collection(Edm.String)", "permissionFilter": "groupIds", "filterable": true, "retrievable": false },
    { "name": "SharePointSiteUrl", "type": "Edm.String", "sharepointSiteUrl": true, "filterable": false, "retrievable": false }
  ],
  "permissionFilterOption": "enabled"
}

3. Configurar las asignaciones de campos del indexador

Asigne los campos de metadatos de SharePoint a los campos de índice en un único bloque de asignación combinado. Las dos primeras asignaciones son las mismas que se utilizan para la ingesta estándar de ACL; la tercera asignación activa la resolución de grupos de SharePoint.

{
  "fieldMappings": [
    { "sourceFieldName": "metadata_user_ids",             "targetFieldName": "UserIds" },
    { "sourceFieldName": "metadata_group_ids",            "targetFieldName": "GroupIds" },
    { "sourceFieldName": "metadata_spo_site_url",  "targetFieldName": "SharePointSiteUrl" }
  ]
}

Si su conjunto de aptitudes fragmenta los documentos (por ejemplo, con la aptitud Dividir texto para vectorización integrada), proyecte SharePointSiteUrl en cada fragmento a través de indexProjections.mappings en su lugar. Consulte Elegir dónde rellenar los campos de ACL.

4. Consulta del índice

No se requiere ningún cambio en el lado cliente. El mismo token x-ms-query-source-authorization activa tanto la aplicación de Microsoft Entra como la de los grupos de sitios de SharePoint. El servicio de búsqueda resuelve en el servidor la pertenencia a grupos de SharePoint mediante sharePointConnectorAppRegistration en el índice.

Para conocer la estructura de la solicitud, consulte el ejemplo de consulta general y el ejemplo específico de SharePoint con aplicación de grupos de sitios de SharePoint.

5. Comprobar

Para confirmar que los identificadores de grupo de SharePoint se han incorporado al índice, ejecute una consulta de lectura con privilegios elevados que seleccione GroupIds y busque valores con el prefijo spg: en la respuesta.

Sincronización de permisos entre contenido indexado y de origen

A partir de la API REST 2026-05-01-preview, los cambios de ACL de los elementos con permisos únicos se detectan y actualizan en cada ejecución correcta del indexador. El indexador usa tokens de cambio de SharePoint para detectar de forma incremental las adiciones y eliminaciones de asignaciones de roles, del mismo modo que detecta los cambios de contenido.

Algunos escenarios todavía requieren una actualización explícita:

Cambiar ámbito Se detectó automáticamente Acción recomendada
Permisos en un elemento específico con permisos únicos (archivo, elemento de lista o página) Sí No es necesaria ninguna acción. El cambio se detecta en la siguiente ejecución correcta del indexador.
Cambio de contenido en un elemento específico (que también vuelve a evaluar las ACL eficaces para ese elemento) Sí No es necesaria ninguna acción.
Los permisos cambian en un ámbito principal (sitio, biblioteca, lista o carpeta) que heredan los elementos secundarios. No Llame a /resync con options: ["permissions"] para actualizar las ACL en todo el origen de datos, o llame a /resetdocs con las claves de los documentos afectados para actualizar tanto el contenido como las ACL.
Ingesta de ACL habilitada en un indexador existente No Llame a /resync con options: ["permissions"] para completar las ACL de los elementos indexados anteriormente.

Restablecer documentos específicos

Puede restablecer documentos específicos para volver a ingerir completamente el contenido y las ACLs.

POST https://{service}.search.windows.net/indexers/{indexer}/resetdocs?api-version=2026-08-01-preview
{
  "documentKeys": ["doc123", "doc456"]
}

Resincronizar las ACL en todo el origen de datos

Puede resincronizar el contenido completo de la ACL del conjunto de datos después de la importación inicial. Para que se realice correctamente, esta operación requiere una ejecución del indexador después de la finalización.

POST https://{service}.search.windows.net/indexers/{indexer}/resync?api-version=2026-08-01-preview
{
  "options": ["permissions"]
}

Importante

Si cambia SharePoint permisos sin desencadenar un mecanismo de actualización, el índice sirve datos de ACL obsoletos para los archivos ingeridos previamente.

Después de indexar los datos y las ACL, puede consultar el índice.

Solución de problemas

Síntoma Causa y resolución
UserIds o GroupIds están vacíos en documentos indexados Si su conjunto de aptitudes usa projectionMode: skipIndexingParentDocuments, se omiten las asignaciones de campos del indexador para campos de ACL. Configure los campos de ACL mediante indexProjections.mappings en su lugar, en cada fragmento.
Faltan los identificadores de los grupos de sitios de SharePoint, o los valores de GroupIds carecen del prefijo spg: Confirme que el índice tiene la configuración sharePointConnectorAppRegistration, que el campo SharePointSiteUrl existe con sharepointSiteUrl: true y que la asignación metadata_spo_site_url está presente en las asignaciones de campos del indexador o en las proyecciones de índice.
SharePointSiteUrl está vacío o es nulo después de la indización, aunque las ACL se rellenan por lo demás correctamente El indexador emite estos metadatos en metadata_spo_site_url, no en metadata_sharepoint_site_url. Compruebe que la asignación de campos del indexador usa "sourceFieldName": "metadata_spo_site_url". Si el conjunto de habilidades usa proyecciones de índice para documentos fragmentados, compruebe que el origen del mapeo de proyección sea /document/metadata_spo_site_url.
El indexador devuelve 401 o 403 Conceda el consentimiento del administrador tanto en Microsoft Graph como en permisos de API de SharePoint para su escenario. Use una credencial federada (no un secreto de cliente) cuando el escenario lo requiera. Consulte Permisos por escenario de ACL.
Los permisos están obsoletos después de cambiar una ACL de sitio, biblioteca, lista o carpeta Llame /resync con options: ["permissions"]. Consulte Synchronize permissions between indexed and source content for context (Sincronizar permisos entre contenido indexado y de origen ) para ver el contexto.
federatedCredentialId se rechaza al configurar sharePointConnectorAppRegistration Use el identificador de aplicación de la identidad administrada, no el identificador de objeto de la credencial de identidad federada ni el identificador principal de la identidad administrada. Consulte Identificador de aplicación de credenciales federadas.
El indexador devuelve 401 Unauthorized y FederatedCredentialApplicationId está configurado. Compruebe que ha usado el identificador de aplicación de la identidad administrada (que se encuentra en aplicaciones empresariales), no el identificador de aplicación (cliente) de la aplicación de ingesta (ApplicationId) o cualquier identificador de objeto. Para una identidad administrada asignada por el usuario, use el identificador de cliente de la página Propiedades del recurso de identidad administrada. Consulte Encuentre los identificadores correctos de Microsoft Entra.

Si faltan resultados, estos son inesperados o se producen errores en el momento de la consulta después de indexar los metadatos de la ACL, consulte Solución de problemas del filtrado de permisos de SharePoint.