Använd en SharePoint indexerare för att mata in behörighetsmetadata och filtrera sökresultat baserat på användaråtkomsträttigheter (förhandsversion)

Observera

Azure AI-sökning är tillgängligt via Azure-portalen, REST-API:er och Azure-SDK:er. Den ligger också till grund för Foundry IQ, det hanterade kunskapsskiktet som omvandlar företagsinnehåll till återanvändbara, behörighetsmedvetna kunskapsbaser för agenter i Microsoft Foundry-portalen.

Viktigt

Funktioner, funktioner eller egenskaper som har markerats (förhandsversion) omfattas inte av ett serviceavtal, rekommenderas inte för produktionsarbetsbelastningar och kan ändras eller begränsas innan de blir allmänt tillgängliga. Villkoren för Azure AI-sökning förhandsgranskning gäller för alla förhandsgranskningsfunktioner, oavsett om de är fristående eller en del av en allmänt tillgänglig funktion.

SharePoint behörighetsmetadatainmatning (förhandsversion) använder en Azure AI-sökning indexerare för att bevara behörighetsmetadata, till exempel åtkomstkontrollistor (ACL), tillsammans med annat innehåll från SharePoint i Microsoft 365. Indexeraren lagrar behörigheterna som metadata för varje indexerat dokument. Vid frågetillfället får användarna endast dokument som de har behörighet att komma åt.

Architecture-diagram som visar en säkerhetstrimmad RAG-lösning där en SharePoint indexerare matar in dokument och ACL-behörighetsmetadata från en SharePoint plats, lagrar dem i en Azure AI-sökning index och en RAG-orchestrator filtrerar frågeresultat så att varje användare endast hämtar dokument som de har behörighet att komma åt.

Viktigt

Använd en fjärr SharePoint kunskapskälla för scenarier som kräver fullständig SharePoint behörighetsmodell, säkerhetsetiketter och förkonfigurerad säkerhetstrimning. Den här metoden anropar SharePoint direkt via Copilot-hämtnings-API:et. Styrningen förblir helt i SharePoint och frågeresultaten respekterar automatiskt alla tillämpliga behörigheter och etiketter.

Förutsättningar

  • Azure AI-sökning på en fakturerbar nivå (Basic eller högre) i valfri region.

  • SharePoint på Microsoft 365 webbplatser, bibliotek, mappar och filer med konfigurerade behörigheter.

  • Slutför alla konfigurationssteg i dokumentationen SharePoint indexerare och tillämpa de ACL-specifika krav som beskrivs i den här artikeln.

  • Konfigurera Microsoft Entra programbehörigheter och en autentiseringsuppgift som är lämplig för ditt scenario. Se Behörigheter efter ACL-scenario. ACL-inmatning kräver programbehörigheter. Delegerade behörigheter stöds inte. Mer information om skillnaden mellan programbehörighet och delegerad behörighet finns i Välj konfiguration av behörigheter.

  • REST API version 2026-08-01-preview eller ett motsvarande SDK-paket för förhandsversion.

Begränsningar

Stöd för SharePoint-behörighetsmodellen

Den här förhandsversionen stöder grundläggande ACL:er för dokument, listobjekt och moderna ASPX-webbplatssidor.

SharePoint funktion Beskrivning Stöds Anteckningar
Arv för webbplats, bibliotek, lista och sida Webbplats → bibliotek/lista → mapp → fil/objekt/sida. ✔️ Utvärderas vid inläsning; effektiva ACL:er beräknas per objekt.
Unika ACL:er för mapp, fil, listobjekt och sida Åtkomst på objektnivå. ✔️ Ingår vid första inmatningen och vid efterföljande körningar som identifierar ACL-ändringar för objekt med unika behörigheter.
SharePoint-listobjekt Behörigheter för listobjekt (allSiteLists och allSiteContent containrar). ✔️ Förhandsversion, från och med REST API-versionen 2026-05-01-preview.
ASPX-webbplatssidor Behörigheter på moderna webbplatssidor (allSitePages och allSiteContent containrar). ✔️ Förhandsversion, från och med REST API-versionen 2026-05-01-preview.
Microsoft Entra grupper (Microsoft 365 och säkerhet) Gruppbaserad åtkomst. ✔️ Grupp-ID:n inkluderas när de kan matchas mot ett Microsoft Entra-ID.
SharePoint webbplatsgrupper Ägare/medlemmar/besökare och anpassade webbplatsgrupper. ✔️ Förhandsversion, från och med REST API-versionen 2026-05-01-preview. Kräver konfigurationen av SharePoint-grupper. Grupp-ID:n genereras med prefixet spg: .
Dela "Alla-länkar" eller "Personer i din organisation länkar" Organisationsomfattande eller offentlig åtkomst. ❌ Stöds inte i förhandsversionen.
Externa/gästanvändare Åtkomst för gäster. ❌ Stöds inte.
Principer för informationshantering Principer för att definiera specifika behörighetskrav. ❌ Stöds inte i förhandsversionen.
Purview-känslighetsetiketter Säkerhet på dokumentnivå för sekretess, kategorisering, behörigheter och kryptering ❌ Stöds via en separat funktion: bevara och respektera känslighetsetiketter.

Grupprelationer som stöds

Microsoft Entra-grupptransitivitet gäller inom Microsoft Entra. Den expanderar inte Microsoft Entra-grupper som är medlemmar i SharePoint-grupper.

Behörighetsrelation Stöds Riktlinjer
En användare eller en Microsoft Entra-grupp som har tilldelats direkt till SharePoint-objektet Ja Indexeraren lagrar objekt-ID:t för användaren eller Microsoft Entra-gruppen i objektets behörighetsmetadata.
Användaren kommer åt en tilldelad Microsoft Entra-grupp via transitiv kapsling av Microsoft Entra-grupper Ja Upplösning via Microsoft Graph vid frågetillfället utökar användarens transitiva Microsoft Entra-gruppmedlemskap.
Användare som har tilldelats direkt till en SharePoint webbplatsgrupp som har åtkomst till objektet Ja Konfigurera stöd för SharePoint grupper.
Microsoft Entra-grupp kapslad i en SharePoint-grupp No SharePoint-grupp upplösning expanderar inte den kapslade Microsoft Entra gruppen. Resultat som är beroende av den här relationen filtreras bort. Lägg till användare direkt i SharePoint-grupp eller bevilja behörighet via en Microsoft Entra grupptilldelning som stöds.
Andra blandade SharePoint- och Microsoft Entra kapslingsriktningar Har inte angetts Anta inte att stöd finns på grund av Microsoft Entras transitivitet. Den här förhandsgranskningsbegränsningen är begränsad till Microsoft Entra grupper som är kapslade i SharePoint grupper.

Hur hierarkiska behörigheter utvärderas

SharePoint-behörigheter ärver hierarkin plats → bibliotek → mapp → fil, om inte arv bryts.

Under inmatningen samlar indexeraren in användar- och gruppidentifierare (ID) på varje nivå och beräknar den effektiva ACL:en för varje fil.

Scenario med behörigheter efter ACL

Vilka Microsoft Entra-programbehörigheter och vilken typ av autentiseringsuppgifter som krävs för ACL-import beror på vilka objekttyper och grupptyper du indexerar. I appregistreringen läggs alla behörigheter till under API-behörigheter>Lägg till en behörighet och federerade autentiseringsuppgifter läggs till under Certifikat och hemligheter>Federerade autentiseringsuppgifter. Stegvisa instruktioner och skärmbilder finns i Steg 3: Skapa en Microsoft Entra programregistrering och Konfigurera det registrerade programmet med en hanterad identitet.

Scenario API-behörigheter att lägga till inloggningsuppgift
ACL:er för dokumentbiblioteksfiler, när åtkomst endast beviljas via Microsoft Entra användare och standardgrupper (Microsoft Entra säkerhetsgrupper, Microsoft 365 grupper, e-postaktiverade säkerhetsgrupper) Microsoft Graph: Files.Read.All, Sites.FullControl.All (eller Sites.Selected för begränsad åtkomst) Klienthemlighet eller federerade autentiseringsuppgifter
ACL:er för dokumentbiblioteksfiler, när SharePoint webbplatsgrupper (ägare, medlemmar, besökare eller anpassade webbplatsgrupper) måste också respekteras Microsoft Graph: Files.Read.All, Sites.FullControl.All (eller Sites.Selected)
SharePoint: Sites.FullControl.All (eller Sites.Selected)
Federerade autentiseringsuppgifter (krävs)
ACL:er för SharePoint list objekt Microsoft Graph: Files.Read.All, Sites.FullControl.All (eller Sites.Selected), User.Read.All
SharePoint: Sites.FullControl.All (eller Sites.Selected)
Federerade autentiseringsuppgifter (krävs)
Innehåll och ACL:er på ASPX-webbplatssidor Microsoft Graph: Sites.FullControl.All (eller Sites.Selected), User.Read.All (behåll Files.Read.All från raderna ovan om du även indexerar dokumentbibliotek eller listor)
SharePoint: Sites.FullControl.All (eller Sites.Selected)
Federerade autentiseringsuppgifter (krävs)
Matchning av webbplatsgrupper i SharePoint vid frågetillfället via sharePointConnectorAppRegistration Lägg till SharePoint: User.Read.All till samma appregistrering som används av indexeraren Federerade autentiseringsuppgifter (krävs)

Observera

  • När du lägger till en behörighet väljer du mellan två API-ytor: Microsoft Graph och SharePoint. Båda exponerar behörigheter med liknande namn. Finns till exempel Sites.FullControl.All under båda. Lägg till varje behörighet under API-ytan som anges i tabellen.

  • Använd en federerad autentiseringsuppgift när scenariot lägger till SharePoint API-behörigheter. Klienthemligheter fungerar endast för raden för dokumentbibliotek endast för Microsoft Graph.

  • User.Read.All krävs för listobjekt och ASPX-webbplatssidor eftersom indexeraren läser dessa behörigheter via SharePoint REST API, som endast returnerar användarens e-post. Indexeraren anropar sedan Microsoft Graph för att matcha varje e-post till dess Microsoft Entra objekt-ID, och sökningen kräver User.Read.All.

  • När du använder Sites.Selected beviljar du appen explicit åtkomst till varje mål SharePoint plats innan du indexerar.

En federerad autentiseringsuppgift autentiserar appen med hjälp av en betrodd hanterad identitet i stället för en klienthemlighet. Samma federerade autentiseringsuppgifter omfattar både inmatning (indexerare) och frågetidsutvärdering av SharePoint webbplatsgrupper. Installationssteg finns i Konfigurera det registrerade programmet med en hanterad identitet.

Innan du aktiverar ACL-inmatning

Slutför de här stegen i ditt registrerade Microsoft Entra program:

  1. Identifiera ditt scenario i föregående tabell baserat på vad du planerar att indexera (dokumentbiblioteksfiler, listobjekt, ASPX-webbplatssidor) och om SharePoint webbplatsgrupper måste respekteras.
  2. Öppna appregistreringen i Microsoft Entra administrationscenter och gå till API-behörigheter>Lägg till en behörighet.
  3. Lägg till Microsoft Graph behörigheter som anges för ditt scenario. Bevilja administratörsmedgivande.
  4. Om ditt scenario också kräver SharePoint behörigheter väljer du Lägg till en behörighet igen, väljer SharePoint API och lägger till Sites.FullControl.All (eller Sites.Selected). Bevilja administratörsmedgivande.
  5. Konfigurera autentiseringsuppgifterna:
    • För scenarier med endast Microsoft Graph kan du använda antingen en klienthemlighet (Certifikat och hemligheter>Klienthemligheter) eller en federerad autentiseringsuppgift.
    • För alla scenarion som innehåller SharePoint behörigheter lägger du till en federerad autentiseringsuppgift under Certificates & secretsFederated credentials. Se Konfigurera det registrerade programmet med en hanterad identitet.
  6. Ge programmet åtkomst till målwebbplatserna SharePoint (särskilt viktigt när du använder Sites.Selected för begränsad åtkomst) så att det kan läsa det innehåll och de behörigheter som du vill indexeras.

Hitta rätt Microsoft Entra identifierare

Varje identifierare visas på en annan plats i Azure-portalen och mappar till ett specifikt konfigurationsfält. Använd det här avsnittet som referens när du konfigurerar SharePoint ACL-inmatning med en federerad autentiseringsuppgift. Dessa identifierare refereras till i Konfigurera stöd för SharePoint-grupper och i datakällans anslutningssträng.

Identifikator Portalplats Används där Anteckningar
Program-ID för inmatningsapp (klient) Appregistreringar><your-app>>Översikt ApplicationId i datakällans anslutningssträng; applicationId i sharePointConnectorAppRegistration Det här ID:t är korrekt för de flesta konfigurationsfält. Kallas även "klient-ID".
Programobjekt-ID Appregistreringar><your-app>>Översikt (under Program-ID (klient)) Används inte i Azure AI-sökning konfiguration Blanda inte ihop detta med program-ID:t (klient-ID:t). Den visas på samma blad, direkt under klient-ID:t.
Objekt-ID för tjänstens huvudnamn Microsoft Entra ID>Företagsprogram><your-app>>Hantera>Egenskaper Används inte i Azure AI-sökning konfiguration Det här är service principal-representationen av appen. Det är ett annat GUID än objekt-ID:t för appregistrering.
Huvud-ID för hanterad identitet Resursen för hanterad identitet > eller söktjänstens Identitet-blad Används inte direkt i Azure AI-sökning datakälla eller indexkonfiguration Används internt när du konfigurerar de federerade identitetsautentiseringsuppgifterna för appregistreringen. Autentiseringsuppgifterna som du skapar litar på den här identiteten.
Objekt-ID för federerade autentiseringsuppgifter > > <your-app>App registrations Hantera>certifikat och hemligheter>Federerade autentiseringsuppgifter><credential-name> Används inte i Azure AI-sökning konfiguration Använd inte GUID för den federerade identitetsautentiseringsposten för federatedCredentialId.
Program-ID för federerade autentiseringsuppgifter Systemtilldelad: Microsoft Entra ID>Företagsprogram><search-service>>; Användartilldelad: <managed-identity-resource>>Egenskaper FederatedCredentialApplicationId i datakällans anslutningssträng; federatedCredentialId i sharePointConnectorAppRegistration Se Program-ID för federerade autentiseringsuppgifter för sökning efter hanterad identitet.

Program-ID för federerade autentiseringsuppgifter

För FederatedCredentialApplicationId i anslutningssträngen för datakällan och federatedCredentialId i indexdefinitionen använder du den hanterade identitetens eget program-ID (klient-ID), inte inmatningsappens ID.

Systemtilldelad hanterad identitet:

  1. Gå till din Azure AI-sökning-tjänst.
  2. Välj Säkerhet + nätverksidentitet>.
  3. På fliken Systemtilldelad noterar du objekt-ID:t (huvudnamn).
  4. Gå till Microsoft Entra ID>Hantera>Företagsprogram.
  5. Sök efter söktjänstens namn eller klistra in objekt-ID:t (huvudnamn) i sökrutan.
  6. Välj resultatet och öppna Egenskaper. Kopiera program-ID :t som visas här, vilket är värdet för FederatedCredentialApplicationId i datakällan och federatedCredentialId i indexet.

Användartilldelad hanterad identitet:

  1. Gå till den användartilldelade hanterade identitetsresursen.
  2. Välj Inställningar>egenskaper.
  3. Kopiera klient-ID:t, som är värdet för FederatedCredentialApplicationId i datakällan och federatedCredentialId i indexet.

Konfigurera din söktjänst för ACL-inmatning och tillämpning av frågetid

De här stegen konfigurerar din söktjänst för ACL-inmatning och aktiverar ACL-hantering vid frågetillfället.

Välj var ACL-fält ska fyllas i

Var du mappar ACL-metadatafälten beror på om indexeraren skriver ett dokument per källobjekt eller flera segment per källobjekt.

Scenario Fyll i ACL-fält via Varför
Ingen kompetensprofil eller kompetensprofil utan segmentering; ett sökdokument per källobjekt Indexerfältmappningar endast (metadata_user_ids → UserIds, metadata_group_ids → GroupIds, och för SharePoint-grupper metadata_spo_site_url → SharePointSiteUrl). indexeraren skriver ett enskilt dokument till målindexet, och fältmappningar för vidare källmetadata till indexfält.
Kompetensuppsättning med segmentering (till exempel kunskaper om textdelning för integrerad vektorisering), enskilt index med överordnade fält som upprepas på varje segment (projectionMode: skipIndexingParentDocuments) Indexprojektioner i kunskapsuppsättningen (mappings från /document/metadata_user_ids, /document/metadata_group_ids, och för SharePoint-grupper /document/metadata_spo_site_url). Det överordnade dokumentet är inte indexerat; det är bara segmenten som är det. ACL-värden måste projiceras på varje segment så att frågetidsfilter gäller för det segment som returneras i resultat. Indexerarens fältmappningar för dessa fält kringgås i det här läget.
Kompetensuppsättning med uppdelning i segment, mönster med två index (huvudindex + index för underordnade segment) Båda: fältmappningar i indexeraren fyller i ACL-fält i det överordnade indexet, och indexprojektioner fyller i ACL-fält i det underordnade chunk-indexet. Båda indexen är frågebara, och var och en behöver de metadata som den filtrerar på.

I alla scenarier med segmentering måste varje segment innehålla ACL-fälten. Behörighetsfilter gäller per dokument, så ett segment som saknar ACL-fält kan inte returneras till rätt anropare.

1. Konfiguration av datakälla

Det här avsnittet är ett delta ovanpå den grundläggande genomgången av steg 4: Skapa datakälla . Ange indexerPermissionOptions i källdefinitionen data för att tillåta indexering av userIds och groupIds från SharePoint dokument.

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

2. Lägg till behörighetsfält i indexdefinitionen

Lägg till fält i indexschemadefinitionen för att lagra ACL:er och stödja frågetidsfiltrering.

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

Ange retrievable attributet till true endast under utveckling för att verifiera värden. Du kan ändra sökbar från true till false utan att behöva göra en indexombyggnad.

3. Konfigurera indexprognoser i din kompetensuppsättning (om tillämpligt)

När segmentering är aktiverat skrivs inte det överordnade dokumentet till indexet när projectionMode är skipIndexingParentDocuments. Bär ACL-metadata till varje segment genom indexProjections.selectors[].mappings.

Om indexeraren använder en kompetensuppsättning med datasegmentering, till exempel färdigheten Textdelning när du aktiverar integrerad vektorisering, ser du till att mappa ACL-egenskaper till varje segment med hjälp av indexprojektioner. Raderna // i följande exempel är illustrativa anteckningar och är inte giltiga JSON. Ta bort dem innan du skickar begäran.

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 och SharePointSiteUrl mappningar läser metadata på källnivå som genereras av SharePoint-indexeraren (/document/metadata_*) och skriver värdena till varje segment.

4. Konfigurera indexerarens fältmappningar för ACL:er

Använd indexeringsfältmappningar när indexeraren skriver ett dokument per källobjekt (ingen segmentering) eller när du underhåller ett separat överordnat index tillsammans med ett segmentindex. Om din kompetensuppsättning delar upp dokument i ett enda målindex med projectionMode: skipIndexingParentDocumentsersätts fältmappningarna som visas här av indexProjections.mappings från föregående steg för segmentindexet.

Förutom den nödvändiga konfigurationen av indexer mappar du ACL-fält med rådata från SharePoint till dina indexfält.

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

5. Kör indexeraren

ACL-metadata matas in när indexeraren körs. När du har skapat eller uppdaterat indexeraren (se Steg 6: Skapa en indexerare) utlöser du en körning så att indexeraren matar in ACL:er tillsammans med innehåll.

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

Om du har aktiverat ACL-inmatning på en befintlig indexerare som redan har indexerat objekt anropar /resync du med options: ["permissions"] för att fylla på ACL:er för dessa objekt eller /resetdocs för att extrahera specifika objekt igen.

6. Kontrollera ACL-inläsning

Så här bekräftar du att ACL-värdena har fyllts i korrekt:

  1. Ställ tillfälligt in retrievable på true för UserIds och GroupIds i din indexdefinition. Om du ändrar retrievable behöver du inte återskapa ett index.
  2. Kör en upphöjd läsfråga som väljer UserIds och GroupIdsoch bekräftar att samlingarna inte är tomma. För segmenterade scenarier bekräftar du att varje segment bär båda fälten.
  3. Återgå retrievable till false efter verifieringen.

Konfigurera stöd för SharePoint grupper

Från och med 2026-05-01-preview REST API kan SharePoint indexeraren mata in SharePoint webbplatsgruppmedlemskap (ägare, medlemmar, besökare och anpassade webbplatsgrupper). Den hedrar dessa grupper vid frågetillfället. ID:n för SharePoint-grupper anges i fältet metadata_group_ids med prefixet spg: för att skilja dem från objekt-ID:n för Microsoft Entra-grupper.

Den här genomgången är fristående: slutför stegen för att konfigurera indexet, indexeringsfältmappningar och fråga indexet med SharePoint platsgruppsframtvingande.

Följande komponenter samverkar för att möjliggöra matchning av SharePoint-webbplatsgrupper:

Component Där Purpose
sharePointConnectorAppRegistration (med applicationId, tenantId, federatedCredentialId) Definition av index Tillhandahåller den autentiseringskonfiguration som krävs för att söktjänsten ska anropa SharePoint REST API som anropande användare och lösa platsgruppsmedlemskap vid frågetillfället.
SharePointSiteUrl fält (med sharepointSiteUrl: true) Indexschema + indexeringsfältmappning från metadata_spo_site_url Anger vilken SharePoint-webbplats ett dokument tillhör, så att upplösningen av SharePoint-grupper avgränsas korrekt.
spg:-prefixvärden i GroupIds Metadata för dokumentbehörighet Skilja SharePoint platsgrupps-ID:t från Microsoft Entra gruppobjekt-ID:t.

1. Förutsättningar

Observera

FederatedCredentialApplicationId i datakällans anslutningssträng och federatedCredentialId i sharePointConnectorAppRegistration använder den hanterade identitetens program-ID. Egenskapen applicationId i sharePointConnectorAppRegistration använder inmatningsappens klient-ID. Information om hur du hittar rätt värden finns i Hitta rätt Microsoft Entra identifierare.

2. Konfigurera indexet

Lägg till konfigurationen sharePointConnectorAppRegistration och fältet SharePointSiteUrl tillsammans med behörighetsfilterfälten UserIds och GroupIds, så att hela indexstrukturen finns samlad på ett ställe. Behåll 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. Konfigurera indexerarens fältmappningar

Mappa de SharePoint metadatafälten till indexfälten i ett enda kombinerat mappningsblock. De två första mappningarna är samma som används för standard-ACL-inmatning. den tredje mappningen aktiverar SharePoint gruppmatchning.

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

Om din kompetensuppsättning delar upp dokument i segment (till exempel med Text Split-färdigheten för integrerad vektorisering) projicera du SharePointSiteUrl på varje segment via indexProjections.mappings i stället. Se Välj var du vill fylla I ACL-fält.

4. Fråga indexet

Ingen ändring på klientsidan krävs. Samma x-ms-query-source-authorization-token aktiverar både Microsoft Entra och SharePoint platsgruppstillämpning. Söktjänsten matchar upp SharePoint-gruppmedlemskap på serversidan med sharePointConnectorAppRegistration i indexet.

Information om begärans format finns i det allmänna frågeexemplet och det SharePoint-specifika exemplet med framtvingande av SharePoint-webbplatsgrupp.

5. Kontrollera

Bekräfta att SharePoint-grupp-ID:n har kommit in i indexet genom att köra en elevated-read-fråga med GroupIds och leta efter värden med prefixet spg: i svaret.

Synkronisera behörigheter mellan indexerat innehåll och källinnehåll

Från och med 2026-05-01-preview REST API identifieras och uppdateras ACL-ändringar för objekt med unika behörigheter på varje lyckad indexerarekörning. Indexeraren använder SharePoints ändringstoken för att fånga upp tillägg och borttagningar av rolltilldelningar inkrementellt, på samma sätt som den fångar upp innehållsändringar.

Vissa scenarier kräver fortfarande en explicit uppdatering:

Ändra omfång Identifierad automatiskt Rekommenderad åtgärd
Behörigheter för ett specifikt objekt med unika behörigheter (fil, listobjekt eller sida) Ja Ingen åtgärd krävs. Ändringen fångas upp vid nästa lyckade indexeringskörning.
Innehållsändring för ett specifikt objekt (som även utvärderar effektiva ACL:er för objektet) Ja Ingen åtgärd krävs.
Behörigheter ändras i ett överordnat omfång (webbplats, bibliotek, lista eller mapp) som ärvs av underordnade objekt No Anropa /resync med options: ["permissions"] för att uppdatera ACL:er i datakällan eller anropa /resetdocs med de berörda dokumentnycklarna för att uppdatera både innehåll och ACL:er.
ACL-inmatning aktiverat på en befintlig indexerare No Anropa /resync med options: ["permissions"] för att fylla på ACL:er för tidigare indexerade objekt.

Återställa specifika dokument

Du kan återställa specifika dokument för att helt mata in innehåll och ACL:er igen.

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

Synkronisera om ACL:er över hela datakällan

Du kan synkronisera om det fullständiga ACL-innehållet för datauppsättningen efter ursprunglig inläsning. För att åtgärden ska lyckas helt måste en indexerare köras efter slutförandet.

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

Viktigt

Om du ändrar SharePoint behörigheter utan att utlösa en uppdateringsmekanism, hanterar indexet inaktuella ACL-data för tidigare inmatade filer.

När du har indexerat dina data och ACL:er kan du fråga indexet.

Troubleshooting

Symptom Orsak och lösning
UserIds eller GroupIds är tomma i indexerade dokument Om din kompetensuppsättning använder projectionMode: skipIndexingParentDocuments, kringgås indexerarens fältmappningar för ACL-fält. Ange ACL-fält via indexProjections.mappings på varje segment i stället.
SharePoint platsgrupps-ID saknas eller GroupIds-värden inte har prefixet spg: Bekräfta att indexet har konfigurationen sharePointConnectorAppRegistration , fältet SharePointSiteUrl finns med sharepointSiteUrl: trueoch att mappningen metadata_spo_site_url finns i antingen indexeringsfältmappningar eller indexprojektioner.
SharePointSiteUrl är tom eller null efter indexering även om ACL:er på annat sätt fylls i korrekt Indexeraren genererar dessa metadata under metadata_spo_site_url, inte metadata_sharepoint_site_url. Kontrollera att indexerarens fältmappning använder "sourceFieldName": "metadata_spo_site_url". Om din kompetensuppsättning använder indexprojektioner för segmenterade dokument kontrollerar du att projektionsmappningskällan är /document/metadata_spo_site_url.
Indexeraren returnerar 401 eller 403 Bevilja administratörsmedgivande för både Microsoft Graph- och SharePoint API-behörigheter för ditt scenario. Använd en federerad autentiseringsuppgift (inte en klienthemlighet) när scenariot kräver det. Se Behörigheter efter ACL-scenario.
Behörigheter är inaktuella när du har ändrat en ACL för webbplats, bibliotek, lista eller mapp Anropa /resync med options: ["permissions"]. Se Synkronisera behörigheter mellan indexerat innehåll och källinnehåll för kontext.
federatedCredentialId avvisas när du konfigurerar sharePointConnectorAppRegistration Använd den hanterade identitetens program-ID, inte den federerade identitetsautentiseringsuppgiftens objekt-ID eller den hanterade identitetens huvud-ID. Se Applikations-ID för federerad autentiseringsuppgift.
Indexeraren returnerar 401 Unauthorized och FederatedCredentialApplicationId anges Kontrollera att du använde den hanterade identitetens program-ID (som finns i Företagsprogram), inte inmatningsappens program-ID (klient)-ID (ApplicationId) eller något objekt-ID. För en användartilldelad hanterad identitet använder du klient-ID:t från sidan Egenskaper för den hanterade identitetsresursen. Se Hitta rätt Microsoft Entra identifierare.

Information om saknade, oväntade eller misslyckade frågetidsresultat efter att ACL-metadata har indexerats finns i Felsöka SharePoint behörighetsfiltrering.