Usare un indicizzatore SharePoint per inserire i metadati delle autorizzazioni e filtrare i risultati della ricerca in base ai diritti di accesso utente (anteprima)

Nota

Azure AI Search è disponibile tramite il portale di Azure, le API REST e Azure SDK. È inoltre alla base di Foundry IQ, il livello di conoscenza gestito che trasforma il contenuto aziendale in knowledge base riutilizzabili e con riconoscimento delle autorizzazioni per gli agenti nel portale di Microsoft Foundry.

Importante

Le funzionalità, le funzionalità o le proprietà contrassegnate (anteprima) non sono coperte da un contratto di servizio, non sono consigliate per i carichi di lavoro di produzione e potrebbero cambiare o essere vincolate prima che diventino disponibili a livello generale. Le condizioni di anteprima Azure AI Search si applicano a tutte le funzionalità di anteprima, indipendente o parte di una funzionalità disponibile a livello generale.

L'acquisizione dei metadati delle autorizzazioni di SharePoint (anteprima) utilizza un indicizzatore di Azure AI Search per mantenere i metadati delle autorizzazioni, ad esempio gli elenchi di controllo di accesso (ACL), insieme ad altri contenuti di SharePoint in Microsoft 365. L'indicizzatore archivia le autorizzazioni come metadati in ogni documento indicizzato. In fase di query, gli utenti ricevono solo i documenti a cui hanno l'autorizzazione per accedere.

Diagramma dell'architettura che mostra una soluzione RAG tagliata per la sicurezza in cui un indicizzatore di SharePoint inserisce documenti e metadati di autorizzazione ACL da un sito di SharePoint, li archivia in un indice di Ricerca di intelligenza artificiale di Azure e un agente di orchestrazione RAG filtra i risultati delle query in modo che ogni utente recuperi solo i documenti a cui è autorizzato ad accedere.

Importante

Per gli scenari che richiedono il modello completo di autorizzazioni SharePoint, le etichette di riservatezza e il troncamento predefinito della sicurezza, utilizzare un'origine di conoscenza SharePoint remoto. Questo approccio chiama SharePoint direttamente tramite l'API di recupero di Copilot. La governance rimane completamente in SharePoint e i risultati delle query rispettano automaticamente tutte le autorizzazioni e le etichette applicabili.

Prerequisiti

  • Azure AI Search su un piano a pagamento (Basic o superiore) in qualsiasi regione.

  • SharePoint in siti, raccolte, cartelle e file di Microsoft 365 con autorizzazioni configurate.

  • Completare tutti i passaggi di configurazione nella documentazione dell'indicizzatore di SharePoint, applicando i requisiti specifici dell'elenco di controllo di accesso descritti in questo articolo.

  • Configura le autorizzazioni dell'applicazione di Microsoft Entra e una credenziale appropriata per il tuo scenario. Vedi lo scenario delle autorizzazioni tramite ACL. L'inserimento ACL richiede le autorizzazioni dell'applicazione. Le autorizzazioni delegate non sono supportate. Per la decisione tra autorizzazioni applicative e delegate, vedi Scegli la configurazione delle autorizzazioni.

  • API REST versione 2026-08-01-preview o un pacchetto SDK di anteprima equivalente.

Limitazioni

Supporto per il modello di autorizzazione di SharePoint

Questa anteprima supporta gli elenchi di controllo di accesso di base per documenti, elementi di elenco e pagine moderne del sito ASPX.

Funzionalità di SharePoint Descrizione Supportato Note
Ereditarietà di siti, raccolte, elenchi e pagine sito → raccolta/elenco → cartella → file/elemento/pagina. ✔️ Valutato al momento dell'inserimento; ACL effettivi calcolati per ogni elemento.
ACL univoche di cartelle, file, elementi di elenco e pagine Accesso a livello di elemento. ✔️ Inclusi se presenti al momento della prima importazione e nelle successive esecuzioni che rilevano modifiche all'ACL per gli elementi con autorizzazioni univoche.
Elementi dell'elenco di SharePoint Autorizzazioni per gli elementi di elenco (allSiteLists e allSiteContent i contenitori). ✔️ Anteprima, a partire dall'API REST 2026-05-01-preview.
Pagine del sito ASPX Autorizzazioni per le pagine moderne del sito (contenitori allSitePages e allSiteContent). ✔️ Anteprima, a partire dall'API REST 2026-05-01-preview.
gruppi di Microsoft Entra (Microsoft 365 e sicurezza) Accesso basato su gruppo. ✔️ ID di gruppo inclusi quando risolvibili in un identificatore (ID) di Microsoft Entra.
Gruppi di siti di SharePoint Proprietari/Membri/Visitatori e gruppi di siti personalizzati. ✔️ Anteprima, a partire dall'API REST 2026-05-01-preview. Richiede la configurazione dei gruppi SharePoint. Gli ID di gruppo vengono emessi con il prefisso spg:.
Collegamenti "Chiunque" o "Persone nell'organizzazione" condivisibili Accesso pubblico o a livello di organizzazione. ❌ Non supportato in anteprima.
Utenti esterni/guest Accesso per gli ospiti. ❌ Non supportato.
Criteri di Gestione delle informazioni Criteri per definire requisiti di autorizzazioni specifici. ❌ Non supportato in anteprima.
Etichette di riservatezza in Purview Sicurezza a livello di documento per privacy, categorizzazione, autorizzazioni e crittografia ❌ Supportato tramite una funzionalità separata: conservazione e rispetto delle etichette di riservatezza.

Relazioni di gruppo supportate

La transitività dei gruppi di Microsoft Entra si applica all'interno di Microsoft Entra. Non espande i gruppi di Microsoft Entra che sono membri di gruppi di SharePoint.

Relazione di autorizzazione Supportato Linee guida
Utente o gruppo di Microsoft Entra assegnato direttamente all'elemento SharePoint Sì L'indicizzatore archivia l'ID oggetto dell'utente o del gruppo Microsoft Entra nei metadati delle autorizzazioni dell'elemento.
L'utente accede a un gruppo Microsoft Entra assegnato tramite la nidificazione transitiva dei gruppi Microsoft Entra Sì La risoluzione tramite Microsoft Graph in fase di query espande le appartenenze transitive dell'utente ai gruppi Microsoft Entra.
Utente assegnato direttamente a un gruppo di siti SharePoint che ha accesso all'elemento Sì Configurare il supporto dei gruppi di SharePoint.
gruppo Microsoft Entra annidato all'interno di un gruppo di SharePoint No La risoluzione dei gruppi di SharePoint non espande il gruppo annidato di Microsoft Entra. I risultati che dipendono da questa relazione vengono filtrati. Aggiungere utenti direttamente al gruppo di SharePoint o concedere l'autorizzazione tramite un'assegnazione di gruppo Microsoft Entra supportata.
Altri percorsi di annidamento combinati di SharePoint e Microsoft Entra Non specificato Non dedurre il supporto in base alla transitività di Microsoft Entra. Questa limitazione dell'anteprima si applica ai gruppi Microsoft Entra annidati nei gruppi di SharePoint.

Come vengono valutate le autorizzazioni gerarchica

Le autorizzazioni di SharePoint ereditano la gerarchia della raccolta → sito → cartella → file, a meno che l'ereditarietà non venga interrotta.

Durante l'inserimento, l'indicizzatore raccoglie gli identificatori utente e gruppo (ID) a ogni livello e calcola l'ACL effettivo per ogni file.

Autorizzazioni per scenario ACL

Le autorizzazioni dell'applicazione Microsoft Entra e il tipo di credenziale necessari per l'inserimento ACL dipendono dai tipi di elemento e dai tipi di gruppo indicizzati. Nella registrazione dell'app vengono aggiunte tutte le autorizzazioni in Autorizzazioni> APIAggiungere un'autorizzazione e le credenziali federate vengono aggiunte in Certificati e segreti>Credenziali federate. Per istruzioni dettagliate e screenshot, vedere P 3: Creare una registrazione dell'applicazione Microsoft Entra e Configurare l'applicazione registrata con un'identità gestita.

Scenario Autorizzazioni API da aggiungere Credential
ACL sui file della raccolta documenti, quando l'accesso viene concesso solo tramite utenti Microsoft Entra e gruppi standard (gruppi di sicurezza Microsoft Entra, gruppi Microsoft 365, gruppi di sicurezza abilitati alla posta elettronica) Microsoft Graph: Files.Read.All, Sites.FullControl.All (o Sites.Selected per l'accesso con ambito) Codice segreto del cliente o credenziali federate
È necessario rispettare anche i diritti ACL sui file della raccolta documenti quando si utilizzano i gruppi del sito SharePoint (Proprietari, Membri, Visitatori o gruppi personalizzati) Microsoft Graph: Files.Read.All, Sites.FullControl.All (o Sites.Selected)
SharePoint: Sites.FullControl.All (o Sites.Selected)
Credenziali federate (obbligatorio)
ACL per gli elementi dell'elenco di SharePoint Microsoft Graph: Files.Read.All, Sites.FullControl.All (o Sites.Selected), User.Read.All
SharePoint: Sites.FullControl.All (o Sites.Selected)
Credenziali federate (obbligatorio)
Contenuto e ACL nelle pagine del sito ASPX Microsoft Graph: Sites.FullControl.All (o Sites.Selected), User.Read.All (mantenere Files.Read.All dalle righe precedenti se si indicizzano anche raccolte documenti o elenchi)
SharePoint: Sites.FullControl.All (o Sites.Selected)
Credenziali federate (obbligatorio)
Risoluzione in fase di query dei gruppi di siti SharePoint tramite sharePointConnectorAppRegistration Aggiungere SharePoint: User.Read.All alla stessa registrazione dell'app usata dall'indicizzatore Credenziali federate (obbligatorio)

Nota

  • Quando si aggiunge un'autorizzazione, è possibile scegliere tra due superfici API: Microsoft Graph e SharePoint. Entrambe espongono autorizzazioni denominate in modo analogo. Ad esempio, Sites.FullControl.All esiste in entrambi i casi. Aggiungere ogni autorizzazione nell'area API indicata nella tabella.

  • Usare una credenziale federata ogni volta che lo scenario aggiunge SharePoint autorizzazioni API. I segreti del client funzionano solo per la riga della raccolta documenti basata esclusivamente su Microsoft Graph.

  • User.Read.All è necessario per le voci di elenco e le pagine del sito ASPX perché l'indicizzatore legge tali autorizzazioni tramite l'API REST SharePoint, che restituisce solo il messaggio di posta elettronica dell'utente. L'indicizzatore richiama quindi Microsoft Graph per associare ogni indirizzo e-mail al relativo ID oggetto di Microsoft Entra, e tale ricerca richiede User.Read.All.

  • Quando si usa Sites.Selected, concedere all'app l'accesso esplicito a ogni sito di destinazione SharePoint prima dell'indicizzazione.

Una credenziale federata autentica l'app usando un'identità gestita attendibile anziché un segreto client. La stessa credenziale federata copre sia l'inserimento (indicizzatore) che la valutazione in fase di query dei gruppi di siti SharePoint. Per la procedura di installazione, vedere Configurazione dell'applicazione registrata con un'identità gestita.

Prima di abilitare l'acquisizione ACL

Completare questi passaggi nell'applicazione Microsoft Entra registrata:

  1. Identifica lo scenario nella tabella precedente in base a ciò che intendi indicizzare (file delle raccolte documenti, elementi degli elenchi, pagine ASPX del sito) e al fatto che sia necessario rispettare i gruppi del sito di SharePoint.
  2. Aprire la registrazione dell'app nel Interfaccia di amministrazione di Microsoft Entra e passare a autorizzazioni API>Aggiungi un'autorizzazione.
  3. Aggiungere le autorizzazioni Microsoft Graph elencate per lo scenario. Concedere il consenso amministratore.
  4. Se lo scenario richiede anche autorizzazioni di SharePoint, selezionare Aggiungi un'autorizzazione, scegliere di nuovo l'API SharePoint e aggiungere Sites.FullControl.All (o Sites.Selected). Concedere il consenso amministratore.
  5. Configurare le credenziali:
    • Per gli scenari solo Microsoft Graph, è possibile usare un segreto client (Certificates & secretsClient secrets) o una credenziale federata.
    • Per qualsiasi scenario che preveda autorizzazioni di SharePoint, aggiungere una credenziale federata in Certificates & secrets>Credenziali federate. Vedere Configurazione dell'applicazione registrata con un'identità gestita.
  6. Concedere all'applicazione l'accesso ai siti di SharePoint di destinazione (particolarmente importante quando si usa Sites.Selected per l'accesso con ambito) in modo da poter leggere il contenuto e le autorizzazioni da indicizzare.

Trovare gli identificatori di Microsoft Entra corretti

Ogni identificatore compare in una posizione diversa nel portale di Azure e corrisponde a uno specifico campo di configurazione. Usare questa sezione come riferimento quando si configura SharePoint inserimento ACL con credenziali federate. Si fa riferimento a questi identificatori in Configurare il supporto per i gruppi di SharePoint e nella stringa di connessione dell'origine dati.

Identificatore Posizione del portale Utilizzato dove Note
ID client dell'applicazione di acquisizione Registrazioni app><your-app>>Panoramica ApplicationId nella stringa do connessione dell'origine dati; applicationId in sharePointConnectorAppRegistration Questo ID è corretto per la maggior parte dei campi di configurazione. Chiamato anche "ID client".
ID oggetto applicazione Registrazioni app><your-app>>Panoramica (sotto l'ID applicazione (client)) Non usato nella configurazione di Azure AI Search Non confondere questo valore con l'ID applicazione (client). Viene visualizzato nello stesso pannello, direttamente sotto l'ID client.
ID oggetto entità servizio Microsoft Entra ID>Applicazioni aziendali><your-app>>Gestisci>Proprietà Non usato nella configurazione di Azure AI Search Questa è la rappresentazione dell'entità di servizio dell'app. Si tratta di un GUID diverso dall'ID oggetto di registrazione dell'app.
ID principale dell'identità gestita Risorsa di identità gestita > o il pannello Identità del servizio di ricerca Non usato direttamente nella configurazione dell'origine dati o dell'indice di Azure AI Search Usato internamente quando si configurano le credenziali di identità federate nella registrazione dell'app. La credenziale che crei si fida di questa identità.
ID oggetto della credenziale federata Registrazioni app><your-app>>Gestisci>Certificati e segreti>Credenziali federate><credential-name> Non usato nella configurazione di Azure AI Search Non usare il GUID della voce relativa alle credenziali di identità federata per federatedCredentialId.
ID dell'applicazione della credenziale federata Assegnata dal sistema: Microsoft Entra ID>Applicazioni aziendali><search-service>>; Assegnata dall'utente: <managed-identity-resource>>Proprietà FederatedCredentialApplicationId nella stringa do connessione dell'origine dati; federatedCredentialId in sharePointConnectorAppRegistration Vedere ID applicazione delle credenziali federate per la ricerca dell'identità gestita.

ID dell'applicazione della credenziale federata

Per FederatedCredentialApplicationId nella stringa di connessione dell'origine dati e federatedCredentialId nella definizione dell'indice, usare l'ID applicazione (client) dell'identità gestita, non l'ID dell'app di inserimento.

Identità gestita assegnata dal sistema:

  1. Vai al servizio Azure AI Search.
  2. Selezionare Sicurezza e identità di rete>.
  3. Nella scheda Assegnata dal sistema prendere nota dell'ID oggetto (entità).
  4. Passare a Microsoft Entra ID>Gestisci>applicazioni aziendali.
  5. Cerca il nome del servizio di ricerca o incolla l'ID oggetto (principale) nella casella di ricerca.
  6. Selezionare il risultato e aprire Proprietà. Copiare l'ID applicazione illustrato di seguito, ovvero il valore per FederatedCredentialApplicationId nell'origine dati e federatedCredentialId nell'indice.

Identità gestita assegnata dall'utente:

  1. Passare alla risorsa identità gestita assegnata dall'utente.
  2. Selezionare Impostazioni>Proprietà.
  3. Copiare l'ID client, ovvero il valore per FederatedCredentialApplicationId nell'origine dati e federatedCredentialId nell'indice.

Configura il tuo servizio di ricerca per l'acquisizione delle ACL e l'applicazione delle stesse in fase di interrogazione

Questa procedura consente di configurare il servizio di ricerca per l'acquisizione dell’elenco di controllo di accesso e di rispettare l’elenco di controllo di accesso in fase di query.

Scegliere dove compilare i campi ACL

La posizione in cui si esegue il mapping dei campi dei metadati ACL dipende dal fatto che l'indicizzatore scriva un documento per ogni elemento di origine o più blocchi per ogni elemento di origine.

Scenario Popolare i campi ACL tramite Perché
Nessun insieme di competenze senza suddivisione in blocchi; un documento di ricerca per ogni elemento di origine Mappature dei campi dell'indicizzatore solo (metadata_user_ids → UserIds, metadata_group_ids → GroupIds e, per i gruppi di SharePoint, metadata_spo_site_url → SharePointSiteUrl). L'indicizzatore scrive un singolo documento nell'indice di destinazione e i mapping dei campi contengono i metadati di origine nei campi dell'indice.
Set di competenze con suddivisione in blocchi (ad esempio, competenza di suddivisione del testo per la vettorializzazione integrata), un singolo indice con campi padre ripetuti in ogni blocco (projectionMode: skipIndexingParentDocuments) Proiezioni di indice nel set di competenze (mappings da /document/metadata_user_ids, /document/metadata_group_ids e per i gruppi di SharePoint /document/metadata_spo_site_url). Il documento principale non è indicizzato; sono indicizzati solo i blocchi. I valori ACL devono essere proiettati in ogni blocco, in modo che i filtri in fase di query vengano applicati al blocco restituito nei risultati. In questa modalità, le mappature dei campi dell'indicizzatore per questi campi vengono ignorate.
Set di competenze con suddivisione in blocchi, modello a due indici (indice padre + indice blocco figlio) Entrambe: le mappature dei campi dell'indicizzatore popolano i campi ACL dell'indice principale, mentre le proiezioni dell'indice popolano i campi ACL dell'indice dei blocchi secondario. Entrambi gli indici sono interrogabili e ciascuno necessita dei metadati su cui applica i filtri.

In tutti gli scenari con suddivisione in blocchi, ogni blocco deve includere i campi ACL. I filtri di autorizzazione si applicano per documento, quindi non è possibile restituire un blocco di campi ACL mancanti al chiamante corretto.

1. Configurazione dell'origine dati

Questa sezione rappresenta un'estensione rispetto alla base Fase 4: Guida passo passo alla creazione di una fonte dati. Impostare indexerPermissionOptions nella definizione dell'origine dati per consentire l'indicizzazione di userIds e groupIds dai documenti di SharePoint.

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

2. Aggiungere campi di autorizzazione alla definizione dell'indice

Aggiungere campi alla definizione dello schema di indice per archiviare gli elenchi di controllo di accesso (ACL) e supportare il filtro durante l'esecuzione delle query.

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

Impostare retrievable l'attributo su true solo durante lo sviluppo per verificare i valori. È possibile modificare il valore di recuperabilità da true a false senza dover ricompilare l'indice.

3. Configurare le proiezioni di indici nel set di competenze (se applicabile)

Quando la suddivisione in blocchi è abilitata, il documento padre non viene scritto nell'indice quando projectionMode è skipIndexingParentDocuments. Portare i metadati ACL in ogni blocco tramite indexProjections.selectors[].mappings.

Se l'indicizzatore usa un set di competenze con suddivisione in blocchi di dati, ad esempio la competenza Divisione testo quando si abilita la vettorizzazione integrata, assicurarsi di eseguire il mapping delle proprietà ACL a ogni blocco usando proiezioni di indice. Le // righe nell'esempio seguente sono annotazioni illustrative e non sono JSON valide. Rimuoverli prima di inviare la richiesta.

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

UserIds, GroupIds e SharePointSiteUrl leggono i metadati a livello di origine generati dall'indicizzatore di SharePoint (/document/metadata_*) e scrivono i valori su ogni blocco.

4. Configurare le mappature dei campi dell'indicizzatore per le ACL

Usare i mapping dei campi dell'indicizzatore quando l'indicizzatore scrive un documento per ogni elemento di origine (senza suddivisione in blocchi) o quando si mantiene un indice padre separato insieme a un indice di blocco. Se il set di competenze suddivide i documenti in un unico indice di destinazione con projectionMode: skipIndexingParentDocuments, le mappature dei campi mostrate qui vengono sostituite da indexProjections.mappings del passaggio precedente per l'indice dei frammenti.

Oltre alla configurazione dell'indicizzatore necessaria, eseguire il mapping dei campi ACL dei metadati non elaborati da SharePoint ai campi dell'indice.

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

5. Avviare l'indicizzatore

I metadati ACL vengono inseriti durante l'esecuzione dell'indicizzatore. Dopo aver creato o aggiornato l'indicizzatore (vedere Passaggio 6: Creare un indicizzatore), attivare un'esecuzione in modo che l'indicizzatore inserisca gli ACL insieme al contenuto.

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

Se è stato abilitato l'inserimento ACL in un indicizzatore esistente che già ha indicizzato gli elementi, chiamare /resync con options: ["permissions"] per riempire gli ACL per tali elementi o /resetdocs per estrarre nuovamente elementi specifici.

6. Verifica dell'acquisizione dell'ACL

Per verificare che i valori ACL siano stati inseriti correttamente:

  1. Imposta temporaneamente retrievable su true per UserIds e GroupIds nella definizione dell'indice. La modifica retrievable non richiede una ricompilazione dell'indice.
  2. Eseguire una query con privilegi elevati di lettura che seleziona UserIds e GroupIdse verificare che le raccolte non siano vuote. Per gli scenari in blocchi, verificare che ogni blocco porti entrambi i campi.
  3. Tornare retrievable a false dopo la verifica.

Configurare il supporto dei gruppi di SharePoint

A partire dall'API REST in versione 2026-05-01-preview, l'indicizzatore di SharePoint può acquisire le appartenenze ai gruppi del sito di SharePoint (Proprietari, Membri, Visitatori e gruppi del sito personalizzati). Ne tiene conto al momento dell'esecuzione della query. Gli ID gruppo di SharePoint vengono riportati nel campo metadata_group_ids con il prefisso spg: per distinguerli dagli ID oggetto dei gruppi di Microsoft Entra.

Questa guida è completa: segui i passaggi in ordine per configurare l'indice, le mappature dei campi dell'indicizzatore ed eseguire query sull'indice con l'applicazione delle impostazioni del gruppo di siti di SharePoint.

I seguenti componenti funzionano insieme per abilitare la risoluzione dei gruppi di siti di SharePoint:

Componente Dove Purpose
sharePointConnectorAppRegistration (con applicationId, tenantId, federatedCredentialId) Definizione dell'indice Fornisce la configurazione di autenticazione necessaria per il servizio di ricerca per chiamare l'API REST SharePoint come utente chiamante e risolvere l'appartenenza al gruppo di siti in fase di query.
SharePointSiteUrl campo (con sharepointSiteUrl: true) Schema dell'indice + mappatura dei campi dell'indicizzatore da metadata_spo_site_url Identifica a quale sito SharePoint appartiene un documento, in modo che la risoluzione dei gruppi SP sia delimitata correttamente.
valori con prefisso spg: in GroupIds Metadati delle autorizzazioni del documento Distinguere tra gli ID del gruppo del sito di SharePoint e gli ID oggetto del gruppo di Microsoft Entra.

1. Prerequisiti

Nota

FederatedCredentialApplicationId nella stringa di connessione dell'origine dati e federatedCredentialId in sharePointConnectorAppRegistration usano l'ID dell'applicazione dell'identità gestita. La applicationId proprietà in sharePointConnectorAppRegistration usa l'ID client dell'app di inserimento. Per trovare i valori corretti, vedere Trovare gli identificatori di Microsoft Entra corretti.

2. Configurare l'indice

Aggiungere la configurazione sharePointConnectorAppRegistration e il campo SharePointSiteUrl insieme ai campi filtro delle autorizzazioni UserIds e GroupIds, in modo che la struttura completa dell'indice sia in un unico punto. Mantieni 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. Configurare i mapping dei campi dell'indicizzatore

Eseguire il mapping dei campi di metadati SharePoint ai campi dell'indice in un singolo blocco di mapping combinato. Le prime due mappature sono le stesse utilizzate per l'acquisizione ACL standard; la terza mappatura attiva la risoluzione dei gruppi di SharePoint.

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

Se il set di competenze suddivide i documenti in blocchi (ad esempio, con la competenza Suddivisione del testo per la vettorializzazione integrata), proiettare invece SharePointSiteUrl su ogni blocco tramite indexProjections.mappings. Vedi Scegliere dove compilare i campi ACL.

4. Eseguire una query sull'indice

Non è necessaria alcuna modifica sul lato client. Lo stesso token x-ms-query-source-authorization attiva sia l'applicazione delle impostazioni di Microsoft Entra che quelle del gruppo di siti di SharePoint. Il servizio di ricerca risolve lato server le appartenenze ai gruppi di SharePoint utilizzando sharePointConnectorAppRegistration nell'indice.

Per la struttura della richiesta, vedi l'esempio di query generale e l'esempio specifico di SharePoint con imposizione del gruppo di siti di SharePoint.

5. Verificare

Per confermare che gli ID dei gruppi di SharePoint siano stati inseriti nell'indice, eseguire una query elevated-read che selezioni GroupIds e cercare nella risposta i valori con prefisso spg:.

Sincronizzare le autorizzazioni tra il contenuto indicizzato e quello di origine

A partire dall'API REST 2026-05-01-preview, le modifiche ACL per gli elementi con autorizzazioni univoche vengono rilevate e aggiornate in ogni esecuzione corretta dell'indicizzatore. L'indicizzatore usa i token di modifica di SharePoint per rilevare in modo incrementale le aggiunte e le rimozioni delle assegnazioni dei ruoli, allo stesso modo in cui rileva le modifiche al contenuto.

Alcuni scenari richiedono comunque un aggiornamento esplicito:

Modificare l'ambito Rilevato automaticamente Azione consigliata
Autorizzazioni per un elemento specifico con autorizzazioni univoce (file, elemento elenco o pagina) Sì Nessuna azione richiesta. La modifica verrà applicata al successivo ciclo di indicizzazione completato con successo.
Modifica del contenuto per un elemento specifico (che valuta nuovamente gli ACL effettivi per tale elemento) Sì Nessuna azione richiesta.
Le modifiche alle autorizzazioni apportate a un livello superiore (sito, raccolta, elenco o cartella) vengono ereditate dagli elementi di livello inferiore No Chiamare /resync con options: ["permissions"] per aggiornare le ACL nell'intera origine dati, o chiamare /resetdocs con le chiavi dei documenti interessati per aggiornare sia il contenuto sia le ACL.
Attivazione dell'acquisizione ACL su un indicizzatore esistente No Chiamare /resync con options: ["permissions"] per riempire gli elenchi di controllo di accesso per gli elementi indicizzati in precedenza.

Reimpostare documenti specifici

È possibile reimpostare documenti specifici per inserire nuovamente contenuto e ACL.

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

Risincronizzare gli elenchi di controllo di accesso in tutta l'origine dati

È possibile risincronizzare il contenuto ACL completo del set di dati dopo l'inserimento iniziale. Per avere esito positivo, questa operazione richiede un'esecuzione dell'indicizzatore dopo il completamento.

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

Importante

Se si modificano le autorizzazioni di SharePoint senza attivare un meccanismo di aggiornamento, l'indice fornisce dati ACL non aggiornati per i file inseriti in precedenza.

Dopo aver indicizzato i dati e gli ACL, è possibile eseguire query sull'indice.

Risoluzione dei problemi

Sintomo Causa e risoluzione
UserIds o GroupIds sono vuoti nei documenti indicizzati Se il tuo set di competenze utilizza projectionMode: skipIndexingParentDocuments, le mappature dei campi dell'indicizzatore per i campi ACL vengono ignorate. Impostare invece i campi ACL tramite indexProjections.mappings per ogni blocco.
Mancano gli ID dei gruppi di siti di SharePoint oppure i valori GroupIds non hanno il prefisso spg: Confermare che l'indice abbia la configurazione sharePointConnectorAppRegistration, che il campo SharePointSiteUrl esista con sharepointSiteUrl: true e che il mapping metadata_spo_site_url sia presente nelle mappature dei campi dell'indicizzatore o nelle proiezioni dell'indice.
SharePointSiteUrl è vuoto o nullo dopo l'indicizzazione, anche se le ACL vengono comunque popolate correttamente L'indicizzatore genera questi metadati in metadata_spo_site_url, non metadata_sharepoint_site_url. Verifica che la mappatura dei campi dell'indicizzatore usi "sourceFieldName": "metadata_spo_site_url". Se il set di competenze utilizza proiezioni di indice per documenti suddivisi in blocchi, verificare che l'origine del mapping della proiezione sia /document/metadata_spo_site_url.
L'indicizzatore restituisce 401 o 403 Concedere il consenso dell'amministratore sia per Microsoft Graph che per le autorizzazioni API di SharePoint per lo scenario in uso. Usare una credenziale federata (non un segreto client) quando lo scenario lo richiede. Vedi lo scenario delle autorizzazioni tramite ACL.
Le autorizzazioni sono obsolete dopo aver modificato l'ACL di un sito, una raccolta, un elenco o una cartella Chiamare /resync con options: ["permissions"]. Vedere Sincronizzare le autorizzazioni tra il contenuto indicizzato e quello di origine per il contesto.
federatedCredentialId viene rifiutato durante la configurazione sharePointConnectorAppRegistration Usare l'ID dell'applicazione dell'identità gestita, non l'ID oggetto della credenziale dell'identità federata o l'ID principale dell'identità gestita. Vedi ID applicazione della credenziale federata.
L'indicizzatore restituisce 401 Unauthorized e FederatedCredentialApplicationId viene impostato Verificare di aver usato l'ID applicazione dell'identità gestita (disponibile nelle applicazioni aziendali), non l'ID applicazione (client) dell'app di inserimento (ApplicationId) o qualsiasi ID oggetto. Per un'identità gestita assegnata dall'utente, usare l'ID client dalla pagina Proprietà della risorsa di identità gestita. Vedere Trovare gli identificatori di Microsoft Entra corretti.

Per risultati mancanti, imprevisti o non riusciti in fase di query dopo l'indicizzazione dei metadati ACL, vedere Risolvere i problemi relativi al filtro delle autorizzazioni SharePoint.