Use um indexador SharePoint para ingerir metadados de permissões e filtrar os resultados da pesquisa com base nos direitos de acesso dos utilizadores (pré-visualização)

Nota

O Pesquisa de IA do Azure está disponível através do portal Azure, APIs REST e SDKs do Azure. Também sustenta o Foundry IQ, a camada de conhecimento gerida que transforma conteúdos empresariais em bases de conhecimento reutilizáveis e conscientes de permissões para agentes no portal Microsoft Foundry.

Importante

Funcionalidades, capacidades ou propriedades assinaladas (pré-visualização) não são abrangidas por um acordo de nível de serviço, não são recomendadas para cargas de trabalho em produção e podem mudar ou ser limitadas antes de se tornarem geralmente disponíveis. Os termos de pré-visualização do Pesquisa de IA do Azure aplicam-se a todas as funcionalidades de pré-visualização, sejam independentes ou parte de uma funcionalidade geralmente disponível.

A ingestão de metadados de permissões do SharePoint (pré-visualização) utiliza um indexador Pesquisa de IA do Azure para preservar metadados de permissões, como listas de controlo de acesso (ACLs), juntamente com outro conteúdo do SharePoint no Microsoft 365. O indexador armazena as permissões como metadados em cada documento indexado. No momento da consulta, os utilizadores recebem apenas documentos a que têm permissão para aceder.

Diagrama mostrando uma arquitetura de solução RAG com segurança reduzida onde um indexador do SharePoint ingere documentos e metadados de permissões ACL de um site SharePoint, armazenando-os numa Pesquisa de IA do Azure index, e um orquestrador RAG filtra os resultados das pesquisas para que cada utilizador possa recuperar apenas os documentos que está autorizado a aceder.

Importante

Para cenários que requerem o modelo completo de permissões do SharePoint, rótulos de sensibilidade e ajustes de segurança prontos a usar, use uma fonte de conhecimento do SharePoint remota. Esta abordagem chama o SharePoint diretamente através da API de recuperação do Copilot. A governação mantém-se totalmente no SharePoint, e os resultados das consultas respeitam automaticamente todas as permissões e rótulos aplicáveis.

Pré-requisitos

  • Pesquisa de IA do Azure num nível faturável (Básico ou superior) em todas as regiões.

  • SharePoint em sites, bibliotecas, pastas e ficheiros do Microsoft 365 com permissões configuradas.

  • Complete todos os passos de configuração na documentação do indexador SharePoint, aplicando os requisitos específicos da ACL descritos neste artigo.

  • Configure permissões de aplicação Microsoft Entra e uma credencial adequada ao seu cenário. Veja o cenário de permissões por ACL. A ingestão de ACL requer permissões de aplicação. Permissões delegadas não são suportadas. Para decidir entre permissões de aplicação e permissões delegadas, consulte Escolha a configuração das suas permissões.

  • versão da API REST 2026-08-01-preview ou um pacote SDK de pré-visualização equivalente.

Limitações

Suporte ao modelo de permissões do SharePoint

Esta versão de pré-visualização suporta ACLs básicas para documentos, itens de lista e páginas modernas de site ASPX.

Funcionalidade SharePoint Descrição Apoiado Notas
Herança de site, biblioteca, lista e página Site → biblioteca/lista → pasta → ficheiro/item/página. ✔️ Avaliado durante a ingestão; as ACLs efetivas são calculadas por item.
ACLs únicas para pastas, ficheiros, itens de lista e página Acesso ao nível do item. ✔️ Incluído quando presente na ingestão inicial e em execuções posteriores que detetam alterações de ACL para itens com permissões únicas.
Itens da lista do SharePoint Permissões sobre itens da lista (allSiteLists e allSiteContent contentores). ✔️ Versão de pré-visualização, a partir da versão 2026-05-01-preview da API REST.
Páginas do site ASPX Permissões em páginas de site modernas (allSitePages e allSiteContent contentores). ✔️ Versão de pré-visualização, a partir da versão 2026-05-01-preview da API REST.
Grupos Microsoft Entra (Microsoft 365 e segurança) Acesso em grupo. ✔️ IDs de grupo incluídos quando possam ser resolvidos para um identificador do Microsoft Entra (ID).
Grupos de sites do SharePoint Proprietários/Membros/Visitantes e grupos personalizados de sites. ✔️ Versão de pré-visualização, a partir da versão 2026-05-01-preview da API REST. Requer a configuração de grupos do SharePoint. Os IDs de grupo são emitidos com o spg: prefixo.
Partilhável "Links para qualquer pessoa" ou "Links para pessoas na sua organização" Acesso público ou a nível de toda a organização. ❌ Não é suportado na pré-visualização.
Utilizadores externos/convidados Acesso para convidados. ❌ Não suportado.
Políticas de Gestão da Informação Políticas para definir requisitos específicos de permissões. ❌ Não é suportado na pré-visualização.
Etiquetas de sensibilidade do Purview Segurança ao nível do documento para privacidade, categorização, permissões e encriptação ❌ Suportado por uma funcionalidade separada: preservar e honrar as etiquetas de sensibilidade.

Relações de grupo apoiadas

A transitividade de grupos do Microsoft Entra aplica-se no Microsoft Entra. Não expande os grupos Microsoft Entra que são membros de grupos SharePoint.

Relação de permissão Apoiado Orientações
Utilizador ou grupo Microsoft Entra atribuído diretamente ao item SharePoint Sim O indexador armazena o ID do objeto do utilizador ou do grupo Microsoft Entra nos metadados de permissão do item.
O utilizador acede a um grupo do Microsoft Entra atribuído através do aninhamento transitivo de grupos do Microsoft Entra Sim A resolução Microsoft Graph em tempo de consulta expande as pertenças transitivas do utilizador ao grupo Microsoft Entra.
Utilizador atribuído diretamente a um grupo de site SharePoint que tenha acesso ao item Sim Configurar suporte para grupos do SharePoint.
Grupo Microsoft Entra incluído num grupo do SharePoint No A resolução do grupo do SharePoint não expande o grupo Microsoft Entra aninhado. Os resultados que dependem desta relação são filtrados. Adicione utilizadores diretamente ao grupo SharePoint ou conceda permissão através de uma atribuição de grupo Microsoft Entra suportada.
Outras direções mistas de aninhamento do SharePoint e do Microsoft Entra Não especificado Não presuma suporte com base na transitividade do Microsoft Entra. Esta limitação de pré-visualização é aplicada a grupos Microsoft Entra aninhados dentro de grupos SharePoint.

Como as permissões hierárquicas são avaliadas

As permissões do SharePoint herdam a hierarquia de Site → Biblioteca → Pasta → Ficheiro, a menos que a herança seja interrompida.

Durante a ingestão, o indexador recolhe identificadores de utilizador e de grupo (ID) em cada nível e calcula a ACL efetiva para cada ficheiro.

Permissões por cenário de ACL

As permissões da aplicação Microsoft Entra e o tipo de credencial necessários para a ingestão de ACL dependem dos tipos de itens e grupos que indexa. No registo da aplicação, todas as permissões são adicionadas sob permissões da API.>Adicionar uma permissão, e a credencial federada é adicionada em credenciais federadas de Certificados & Segredos>. Para instruções passo a passo e capturas de ecrã, veja Passo 3: Criar um registo de Microsoft Entra aplicação e Configurar a aplicação registada com uma identidade gerida.

Scenario Permissões da API para adicionar Credential
ACLs nos ficheiros da biblioteca de documentos, quando o acesso é concedido apenas através de utilizadores do Microsoft Entra e grupos padrão (grupos de segurança do Microsoft Entra, grupos do Microsoft 365, grupos de segurança com suporte para correio eletrónico) Microsoft Graph: Files.Read.All, Sites.FullControl.All (ou Sites.Selected para acesso com âmbito) Segredo do cliente ou credencial federada
ACLs em ficheiros de biblioteca de documentos, quando grupos de sites SharePoint (Proprietários, Membros, Visitantes ou grupos personalizados de sites) também devem ser respeitados Microsoft Graph: Files.Read.All, Sites.FullControl.All (ou Sites.Selected)
SharePoint: Sites.FullControl.All (ou Sites.Selected)
Credencial federada (obrigatória)
ACLs em itens de lista do SharePoint Microsoft Graph: Files.Read.All, Sites.FullControl.All (ou Sites.Selected), User.Read.All
SharePoint: Sites.FullControl.All (ou Sites.Selected)
Credencial federada (obrigatória)
Conteúdo e ACLs nas páginas do site ASPX Microsoft Graph: Sites.FullControl.All (ou Sites.Selected), User.Read.All (mantenha Files.Read.All das linhas acima se também estiver a indexar bibliotecas ou listas de documentos)
SharePoint: Sites.FullControl.All (ou Sites.Selected)
Credencial federada (obrigatória)
Resolução no momento da consulta de grupos de sites do SharePoint via sharePointConnectorAppRegistration Adicionar SharePoint: User.Read.All ao mesmo registo da aplicação usado pelo indexador Credencial federada (obrigatória)

Nota

  • Quando adiciona uma permissão, escolhe entre duas superfícies de API: Microsoft Graph e SharePoint. Ambos expõem permissões com nomes semelhantes. Por exemplo, Sites.FullControl.All existe em ambos. Adicione cada permissão sob a superfície da API indicada na tabela.

  • Use uma credencial federada sempre que o cenário incluir permissões da API do SharePoint. Os segredos de cliente funcionam apenas para a linha da biblioteca de documentos exclusiva do Microsoft Graph.

  • User.Read.All é necessário para itens de lista e páginas de site ASPX porque o indexador lê essas permissões através da API REST do SharePoint, que devolve apenas o email do utilizador. Em seguida, o indexador chama o Microsoft Graph para associar cada endereço de e-mail ao respetivo ID de objeto do Microsoft Entra, e essa procura requer User.Read.All.

  • Quando usar Sites.Selected, conceda à aplicação acesso explícito a cada site SharePoint destino antes de indexar.

Uma credencial federada autentica a aplicação usando uma identidade gerida de confiança em vez de um segredo do cliente. A mesma credencial federada abrange tanto a ingestão (indexador) como a avaliação, no momento da consulta, dos grupos de sites do SharePoint. Para os passos de configuração, consulte Configurar a aplicação registada com uma identidade gerida.

Antes de ativar a ingestão de ACL

Complete estes passos na sua aplicação Microsoft Entra registada:

  1. Identifique o seu cenário na tabela anterior com base no que planeia indexar (ficheiros da biblioteca de documentos, itens da lista, páginas ASPX do site) e se os grupos de sites do SharePoint têm de ser respeitados.
  2. Abra o registo da sua aplicação no centro de administração Microsoft Entra e vá a APIs permissões>Adicionar uma permissão.
  3. Adicione as permissões do Microsoft Graph listadas para o seu cenário. Conceda o consentimento do administrador.
  4. Se o seu cenário também exigir permissões SharePoint, selecione novamente Adicionar uma permissão, escolha a API SharePoint e adicione Sites.FullControl.All (ou Sites.Selected). Conceda o consentimento do administrador.
  5. Configurar a credencial:
    • Para cenários exclusivos do Microsoft Graph, pode utilizar um segredo do cliente (Certificados & segredos>Segredos do cliente) ou uma credencial federada.
    • Para qualquer cenário que inclua permissões de SharePoint, adicione uma credencial federada em Certificados & Segredoscredenciais federadas. Veja Configurar a aplicação registada com uma identidade gerida.
  6. Conceda à aplicação acesso aos sites SharePoint alvo (especialmente importante quando usa Sites.Selected para acesso com âmbito definido) para que possa ler o conteúdo e as permissões que pretende indexar.

Encontre os identificadores corretos da Microsoft Entra

Cada identificador aparece numa localização diferente no portal do Azure e corresponde a um campo de configuração específico. Use esta secção como referência ao configurar a ingestão de ACL do SharePoint com uma credencial federada. Estes identificadores são referidos em Configurar o suporte para grupos do SharePoint e na cadeia de ligação da fonte de dados.

Identificador Localização do portal Utilizado onde Notas
ID da aplicação cliente de ingestão Registos de aplicações><your-app>> ApplicationId na cadeia de ligação da fonte de dados; applicationId em sharePointConnectorAppRegistration Este ID está correto para a maioria dos campos de configuração. Também chamado de "ID do cliente".
ID do objeto do aplicativo Registos de aplicações><your-app>>Descrição geral (abaixo do ID da aplicação (cliente)) Não utilizado na configuração do Pesquisa de IA do Azure Não confundas isto com o ID da Aplicação (cliente). Aparece na mesma lâmina, diretamente abaixo do ID do cliente.
ID de objeto principal de serviço Microsoft Entra ID>Aplicações empresariais><your-app>>Gerir>Propriedades Não utilizado na configuração do Pesquisa de IA do Azure Esta é a representação principal do serviço da aplicação. É um GUID diferente do ID do objeto de registo da aplicação.
ID principal de identidade gerida Propriedades do recurso > de identidade gerida ou o serviço de pesquisa Blade de identidade Não utilizado diretamente na configuração de fonte de dados ou índice do Pesquisa de IA do Azure Usado internamente quando configuras a credencial de identidade federada no registo da aplicação. A credencial que cria confia nesta identidade.
ID do objeto de credencial federada Registos de aplicaçõesGerirCertificados e segredosCredenciais federadas Não utilizado na configuração do Pesquisa de IA do Azure Não use o GUID da entrada da credencial de identidade federada para federatedCredentialId.
ID da aplicação da credencial federada Atribuído ao sistema: Microsoft Entra ID>Aplicações empresariais><search-service>>; Atribuído pelo utilizador: <managed-identity-resource>>Propriedades FederatedCredentialApplicationId na cadeia de ligação da fonte de dados; federatedCredentialId em sharePointConnectorAppRegistration Consulte o ID da aplicação de credencial federada para a pesquisa de identidade gerida.

ID da aplicação da credencial federada

Para FederatedCredentialApplicationId na cadeia de ligação da fonte de dados e federatedCredentialId na definição do índice, utilize o ID da própria aplicação (cliente) da identidade gerida, e não o ID da aplicação de ingestão.

Identidade gerenciada atribuída ao sistema:

  1. Aceda ao seu serviço Pesquisa de IA do Azure.
  2. Selecione Segurança + redes>Identidade.
  3. No separador Atribuído pelo sistema, anote o ID do objeto (principal).
  4. Aceda a Microsoft Entra ID>Gerenciar>aplicações empresariais.
  5. Procure o nome do seu serviço de pesquisa ou cole o ID do Objeto (principal) na caixa de pesquisa.
  6. Selecione o resultado e abra Propriedades. Copie o ID da Aplicação mostrado aqui, que é o valor de FederatedCredentialApplicationId na fonte de dados e federatedCredentialId no índice.

Identidade gerenciada atribuída pelo usuário:

  1. Vai ao recurso de identidade gerida atribuído pelo utilizador.
  2. Selecione Configurações>Propriedades.
  3. Copie o ID do Cliente, que é o valor para FederatedCredentialApplicationId na fonte de dados e federatedCredentialId no índice.

Configure o seu serviço de pesquisa para a ingestão da ACL e a aplicação no momento da consulta

Estes passos configuram o seu serviço de pesquisa para a ingestão de ACL e ativam o ACL honoring no momento da consulta.

Escolha onde preencher os campos ACL

O local onde mapear os campos de metadados ACL depende se o indexador escreve um documento por item de origem ou vários blocos por item de origem.

Scenario Preencher os campos ACL através de Porquê
Sem competências ou conjunto de competências sem segmentação; um documento de pesquisa por item de origem Mapeamentos de campos do indexador apenas (metadata_user_ids → UserIds, metadata_group_ids → GroupIds e, para grupos do SharePoint, metadata_spo_site_url → SharePointSiteUrl). O indexador escreve um único documento no índice alvo, e os mapeamentos de campos transportam metadados de origem para os campos de índice.
Conjunto de competências com fragmentação em blocos (por exemplo, competência de Divisão de Texto para vetorização integrada), índice único com campos principais repetidos em cada bloco (projectionMode: skipIndexingParentDocuments) Projeções de índice no conjunto de competências (mappings de /document/metadata_user_ids, /document/metadata_group_ids e, para grupos do SharePoint, /document/metadata_spo_site_url). O documento principal não está indexado; só os fragmentos estão. Os valores de ACL devem ser propagados para cada bloco, para que os filtros aplicados no momento da consulta incidam sobre o bloco devolvido nos resultados. Os mapeamentos de campos do indexador para estes campos são contornados neste modo.
Conjunto de competências com segmentação, padrão de dois índices (índice pai + índice dos segmentos filhos) Ambos: os mapeamentos de campos do indexador preenchem os campos ACL no índice principal, e as projeções de índice preenchem os campos ACL no índice subordinado de segmentos. Ambos os índices são consultáveis, e cada um precisa dos metadados que filtra.

Em todos os cenários segmentados, cada bloco deve incluir os campos ACL. Os filtros de permissões são aplicados por documento, pelo que um bloco sem campos ACL não pode ser devolvido ao chamador correto.

1. Configuração da fonte de dados

Esta secção é um delta em relação à base Passo 4: Guia para criar fonte de dados . Defina indexerPermissionOptions na definição fonte de dados para permitir a indexação de userIds e groupIds dos documentos do SharePoint.

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

2. Adicionar campos de permissão à definição do índice

Adicione campos à definição do seu esquema de índice para armazenar ACLs e suportar filtragem em tempo 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"
}

Atribua retrievable o valor true apenas durante o desenvolvimento para verificar os valores. Podes mudar o recuperável de verdadeiro para falso sem necessidade de reconstruir o índice.

3. Configure projeções de índice no seu conjunto de competências (se aplicável)

Quando a fragmentação está ativada, o documento principal não é gravado no índice quando projectionMode é skipIndexingParentDocuments. Transportar os metadados ACL para cada bloco através de indexProjections.selectors[].mappings.

Se o seu indexador usar um conjunto de competências com fragmentação de dados, como a competência Text Split ao ativar vetorização integrada, certifique-se de mapear propriedades ACL para cada bloco usando projeções de índice. As // linhas no exemplo seguinte são anotações ilustrativas e não são JSON válidas. Remova-os antes de submeteres o pedido.

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"
    }
  }
}

Os mapeamentos UserIds, GroupIds e SharePointSiteUrl leem os metadados ao nível da fonte emitidos pelo indexador SharePoint (/document/metadata_*) e escrevem os valores em cada bloco.

4. Configurar os mapeamentos de campos do indexador para ACLs

Use mapeamentos de campos do indexador quando o indexador escreve um documento por item de origem (sem fragmentação) ou quando mantém um índice pai separado juntamente com um índice de blocos. Se o seu conjunto de competências dividir documentos num único índice de destino com projectionMode: skipIndexingParentDocuments, os mapeamentos de campos apresentados aqui são substituídos pelo indexProjections.mappings da etapa anterior para o índice de segmentos.

Além da configuração obrigatória de indexer, mapeia os campos de metadados brutos da ACL da SharePoint para os seus campos de índice.

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

5. Executar o indexador

Os metadados ACL são ingeridos quando o indexador é executado. Depois de criar ou atualizar o indexador (ver Passo 6: Criar um indexador), desencadeie uma execução para que o indexador absorva ACLs juntamente com o conteúdo.

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

Se ativaste a ingestão de ACL num indexador existente que já tinha indexado itens, chama /resync com options: ["permissions"] para preencher retroativamente as ACLs desses itens, ou /resetdocs para reextrair itens específicos.

6. Verificar a ingestão da ACL

Para confirmar que os valores de ACL foram corretamente preenchidos:

  1. Defina temporariamente retrievable como true em UserIds e GroupIds na definição do seu índice. Mudar retrievable não requer uma reconstrução do índice.
  2. Execute uma consulta de leitura elevada que selecione UserIds e GroupIds, e confirme que as coleções não estão vazias. Para cenários com fragmentação, confirme que cada bloco contém ambos os campos.
  3. Voltar retrievable a false após a verificação.

Configurar suporte para grupos SharePoint

A partir da API REST 2026-05-01-preview, o indexador do SharePoint pode ingerir associações a grupos de sites do SharePoint (Proprietários, Membros, Visitantes e grupos de sites personalizados). Homenageia estes grupos no momento das consultas. Os IDs de grupo do SharePoint são emitidos no campo metadata_group_ids com o prefixo spg: para os distinguir dos IDs de objeto de grupo do Microsoft Entra.

Este tutorial é autónomo: conclua os passos pela ordem indicada para configurar o índice, os mapeamentos de campos no indexador e consultar o índice com aplicação dos grupos de sites do SharePoint.

Os seguintes componentes trabalham em conjunto para permitir a resolução de grupos de sites do SharePoint:

Componente Onde Purpose
sharePointConnectorAppRegistration (com applicationId, tenantId, federatedCredentialId) Definição de índice Fornece a configuração de autenticação necessária para que o serviço de pesquisa chame a API REST do SharePoint como utilizador chamador e resolva a pertença ao grupo de site no momento da consulta.
SharePointSiteUrl campo (com sharepointSiteUrl: true) Esquema de índice + mapeamento de campos do indexador a partir de metadata_spo_site_url Identifica a que site do SharePoint pertence um documento, para que a resolução de grupos SP tenha o âmbito corretamente definido.
valores com o prefixo spg: em GroupIds Metadados das permissões do documento Distinga os identificadores de grupo de sites do SharePoint dos identificadores de objeto de grupo do Microsoft Entra.

1. Pré-requisitos

Nota

FederatedCredentialApplicationId na cadeia de ligação da origem de dados e federatedCredentialId em sharePointConnectorAppRegistration utilize o ID da aplicação da identidade gerida. A propriedade applicationId em sharePointConnectorAppRegistration utiliza o ID de cliente da aplicação de ingestão. Para encontrar os valores corretos, veja Encontrar os identificadores corretos da Microsoft Entra.

2. Configurar o índice

Adicione a configuração sharePointConnectorAppRegistration e o campo SharePointSiteUrl juntamente com os campos de filtro de permissões UserIds e GroupIds, para que a estrutura completa do índice fique num único local. Manter 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 os mapeamentos de campos do indexador

Mapeie os campos de metadados do SharePoint para os campos de índice num único bloco combinado de mapeamento. Os dois primeiros mapeamentos são os mesmos usados para a ingestão padrão de ACL; o terceiro mapeamento ativa a resolução de grupos do SharePoint.

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

Se o seu conjunto de competências dividir documentos em blocos (por exemplo, com a competência Text Split para vetorização integrada), projete SharePointSiteUrl em cada bloco através de indexProjections.mappings. Consulte Escolher onde preencher os campos de ACL.

4. Consultar o índice

Não é necessária qualquer alteração do lado do cliente. O mesmo token x-ms-query-source-authorization ativa a aplicação tanto do Microsoft Entra como do grupo de sites do SharePoint. O serviço de pesquisa determina, no servidor, as associações aos grupos do SharePoint usando sharePointConnectorAppRegistration no índice.

Para a estrutura do pedido, veja o exemplo de consulta geral e o exemplo específico do SharePoint com imposição do grupo de sites.

5. Verificar

Para confirmar se os IDs de grupo do SharePoint foram incluídos no índice, execute uma consulta de leitura elevada que seleciona GroupIds e procure valores com o prefixo spg: na resposta.

Sincronizar permissões entre conteúdos indexados e de origem

A partir da API REST de pré-visualização de 01-05-2026, as alterações às ACL de itens com permissões únicas são detetadas e atualizadas em cada execução bem-sucedida do indexador. O indexador utiliza tokens de alteração do SharePoint para detetar adições e remoções de atribuição de funções de forma incremental, da mesma forma que capta alterações de conteúdo.

Alguns cenários ainda requerem uma atualização explícita:

Alterar o âmbito Detetado automaticamente Ação recomendada
Permissões sobre um item específico com permissões únicas (ficheiro, item de lista ou página) Sim Nenhuma ação necessária. A alteração é refletida na próxima execução bem-sucedida do indexador.
Alteração de conteúdo num item específico (que também reavalia ACLs efetivas para esse item) Sim Nenhuma ação necessária.
As permissões são alteradas num âmbito principal (site, biblioteca, lista ou pasta) que é herdado por itens subordinados No Chame /resync com options: ["permissions"] para atualizar as ACLs em toda a fonte de dados, ou chame /resetdocs com as chaves dos documentos afetados para atualizar tanto o conteúdo como as ACLs.
Ingestão de ACL ativada num indexador existente No Chame /resync com options: ["permissions"] para preencher retroativamente as ACLs de itens previamente indexados.

Reiniciar documentos específicos

Podes reiniciar documentos específicos para ingerir totalmente conteúdo e ACLs.

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

Sincronizar as ACLs em toda a fonte de dados

Pode ressincronizar o conteúdo da ACL do conjunto completo de dados após a ingestão inicial. Para ter sucesso total, esta operação requer a execução de um indexador após a conclusão.

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

Importante

Se alterar permissões do SharePoint sem ativar um mecanismo de atualização, o índice fornece dados ACL obsoletos para ficheiros previamente ingeridos.

Depois de indexar os seus dados e ACLs, pode consultar o índice.

Troubleshooting

Symptom Causa e resolução
UserIds ou GroupIds estão vazios em documentos indexados Se o teu conjunto de competências utilizar projectionMode: skipIndexingParentDocuments, os mapeamentos de campos do indexador para campos ACL são ignorados. Defina os campos ACL através de indexProjections.mappings em cada fragmento, em vez disso.
Os IDs dos grupos de sites do SharePoint estão em falta ou os valores GroupIds não têm o prefixo spg: Confirme que o índice tem a configuração sharePointConnectorAppRegistration, que o campo SharePointSiteUrl existe com sharepointSiteUrl: true e que o mapeamento metadata_spo_site_url está presente nos mapeamentos de campos do indexador ou nas projeções de índice.
SharePointSiteUrl está vazio ou nulo após indexação, mesmo que as ACLs estejam a preencher corretamente O indexador emite estes metadados sob metadata_spo_site_url, não metadata_sharepoint_site_url. Verifique se o mapeamento de campos do seu indexador utiliza "sourceFieldName": "metadata_spo_site_url". Se o seu conjunto de competências utilizar projeções de índice para documentos segmentados, verifique se a origem do mapeamento da projeção é /document/metadata_spo_site_url.
O indexador devolve 401 ou 403 Conceda consentimento do administrador tanto para as permissões da API do Microsoft Graph como do SharePoint para o seu cenário. Use uma credencial federada (não um segredo do cliente) quando o cenário o exigir. Veja o cenário de permissões por ACL.
As permissões ficam obsoletas após a alteração de uma ACL de site, biblioteca, lista ou pasta Chame /resync utilizando options: ["permissions"]. Consulte Sincronizar permissões entre conteúdo indexado e fonte para contexto.
federatedCredentialId é rejeitado ao configurar sharePointConnectorAppRegistration Use o ID de aplicação da identidade gerida, não o ID de objeto da credencial de identidade federada nem o ID principal da identidade gerida. Consulte o ID da aplicação de credencial federada.
O indexador retorna 401 Unauthorized e FederatedCredentialApplicationId é definido Verifique se usou o ID de Aplicação da identidade gerida (encontrado em aplicações empresariais), e não o ID de Aplicação (cliente) da aplicação de ingestão (ApplicationId) ou qualquer ID de Objeto. Para uma identidade gerida atribuída pelo utilizador, use o ID do Cliente da página de Propriedades do recurso de identidade gerida. Veja Encontrar os identificadores corretos da Microsoft Entra.

Para resultados em falta, inesperados ou com falha no momento da consulta, depois de os metadados ACL serem indexados, consulte Resolver problemas de filtragem de permissões do SharePoint.