Použití indexeru SharePoint k příjmu metadat oprávnění a filtrování výsledků hledání na základě uživatelských přístupových práv (Preview)

Poznámka

Azure AI Vyhledávač je k dispozici prostřednictvím portálu Azure, rozhraní REST API a Sady Azure SDK. Podporuje také Foundry IQ, spravovanou znalostní vrstvu, která transformuje podnikový obsah na opakovaně použitelné znalostní báze s podporou oprávnění pro agenty na portálu Microsoft Foundry.

Důležité

Na funkce, možnosti nebo vlastnosti označené jako (Preview) se nevztahuje smlouva o úrovni služeb, nejsou doporučené pro produkční úlohy a mohou se změnit nebo být omezeny dříve, než budou obecně k dispozici. Podmínky Azure AI Vyhledávač Preview platí pro všechny funkce ve verzi Preview, ať už jsou samostatné nebo součástí obecně dostupné funkce.

Přijímání metadat oprávnění ze SharePointu (Preview) využívá indexer ve službě Azure AI Vyhledávač k uchování metadat oprávnění, jako jsou seznamy řízení přístupu (ACL), spolu s dalším obsahem ze SharePointu v Microsoftu 365. Indexer ukládá oprávnění jako metadata pro každý indexovaný dokument. V době dotazu dostanou uživatelé jenom dokumenty, ke kterým mají oprávnění k přístupu.

Architektonický diagram znázorňující řešení RAG se zabezpečením, které omezuje, ve kterém indexer SharePointu zpracovává dokumenty a metadata oprávnění ACL z webu SharePoint, je ukládá do indexu Azure AI Vyhledávač, a orchestrátor RAG filtruje výsledky dotazů tak, aby každý uživatel mohl načíst pouze dokumenty, k nimž má přístupové oprávnění.

Důležité

Když scénáře vyžadují úplný model oprávnění SharePointu, popisky citlivosti a předdefinované zabezpečení, použijte vzdálený zdroj znalostí SharePoint. Tento přístup volá SharePoint přímo prostřednictvím Copilot API pro získávání dat. Zásady správného řízení zůstávají plně v SharePoint a výsledky dotazů automaticky respektují všechna příslušná oprávnění a popisky.

Požadavky

  • Azure AI Vyhledávač na fakturovatelné úrovni (Basic nebo vyšší) v libovolné oblasti.

  • SharePoint v Microsoft 365 webech, knihovnách, složkách a souborech s nakonfigurovanými oprávněními.

  • Dokončete všechny kroky konfigurace v dokumentaci k indexeru SharePoint a uplatněte požadavky specifické pro Seznam řízení přístupu (ACL), jak je popsáno v tomto článku.

  • Nakonfigurujte Microsoft Entra oprávnění aplikace a přihlašovací údaje vhodné pro váš scénář. Viz scénář oprávnění podle seznamu ACL. Příjem ACL vyžaduje oprávnění aplikace. Delegovaná oprávnění se nepodporují. Informace o aplikaci a delegovaném rozhodnutí najdete v tématu Volba nastavení oprávnění.

  • REST API verze 2026-08-01-preview nebo odpovídající balíček sady SDK ve verzi Preview.

Omezení

  • Přírůstkové aktualizace seznamu ACL vyžadují rozhraní REST API verze 2026-05-01-Preview nebo novější. Ve starších verzích rozhraní API ve verzi Preview systém zaznamenává seznamy ACL pouze při prvním příjmu dat každé položky. Pozdější změny oprávnění vyžadují explicitní přeindexování. Postup migrace najdete v tématu Synchronizace oprávnění mezi indexovaným a zdrojovým obsahem.

  • Změny oprávnění nadřazeného oboru se při následných spuštěních indexeru automaticky nevybízejí. Možnosti aktualizace najdete v tématu Synchronizace oprávnění mezi indexovaným a zdrojovým obsahem.

  • Tuto funkci nepodporuje portál Azure.

  • V této verzi Preview nejsou podporované následující funkce:

    • SharePoint zásady správy informací použitelné pro přístup uživatelů. Systém tyto zásady během zpracování dotazu nevyhodnocuje, nepřijímá ani neuplatňuje.

    • Sdíletelné odkazy s vymezeným oborem "Kdokoli" nebo "Lidé ve vaší organizaci". Podporují se jenom odkazy omezené na konkrétní osoby.

    • Skupiny SharePointu (například skupiny Vlastníci, Členové a Návštěvníci) jsou podporovány od verze 2026-05-01-preview rozhraní REST API. Viz Konfigurace podpory skupin SharePointu. Ve starších verzích rozhraní API ve verzi Preview se podporují jenom skupiny SharePoint, které se překládají na skupiny Microsoft Entra.

  • Následující funkce indexeru nepodporují dědičnost oprávnění v indexovaných dokumentech pocházejících z SharePoint. Pokud některou z těchto funkcí použijete v sadě dovedností nebo indexeru, nebudou oprávnění na úrovni dokumentu zahrnuta do indexovaného obsahu.

Podpora modelu oprávnění SharePoint

Tato verze Preview podporuje základní seznamy ACL pro dokumenty, položky seznamu a moderní stránky webu ASPX.

Funkce SharePoint Popis Podporováno Poznámky
Dědičnost webu, knihovny, seznamu a stránek Web → knihovna/seznam → složka → soubor/položka/stránka. ✔️ Vyhodnoceno při příjmu dat; efektivní seznamy ACL vypočítané pro každou položku.
Jedinečná oprávnění ACL pro složku, soubor, položku seznamu a stránku Přístup na úrovni položky ✔️ Zahrnuté při prvním příjmu dat a při následných spuštěních, které detekují změny seznamu ACL pro položky s jedinečnými oprávněními.
položky seznamu SharePoint Oprávnění k položkám seznamu (allSiteLists a allSiteContent kontejnerům). ✔️ Preview, počínaje verzí REST API 2026-05-01-preview.
Stránky webu ASPX Oprávnění na moderních stránkách webu (allSitePages a allSiteContent kontejnerech). ✔️ Preview, počínaje verzí REST API 2026-05-01-preview.
skupiny Microsoft Entra (Microsoft 365 a zabezpečení) Přístup založený na skupinách ✔️ ID skupin jsou zahrnuta, pokud je lze převést na identifikátor Microsoft Entra (ID).
SharePoint skupiny webů Vlastníci/Členové/Návštěvníci a vlastní skupiny webu. ✔️ Preview, počínaje verzí REST API 2026-05-01-preview. Vyžaduje konfiguraci skupin SharePoint. ID skupin se generují s předponou spg: .
Sdílené odkazy pro kohokoli nebo pro lidi ve vaší organizaci Přístup pro celou organizaci nebo veřejný přístup. Ve verzi Preview se nepodporuje.
Externí uživatelé nebo hosté Přístup pro hosty. Nepodporuje se.
Zásady správy informací Zásady pro definování konkrétních požadavků na oprávnění Ve verzi Preview se nepodporuje.
Popisky citlivosti Purview Zabezpečení na úrovni dokumentů pro ochranu osobních údajů, kategorizaci, oprávnění a šifrování Podporováno prostřednictvím samostatné funkce: zachování a ctění štítků citlivosti.

Podporované vztahy mezi skupinami

Tranzitivita skupin Microsoft Entra platí v rámci Microsoft Entra. Nerozbaluje Microsoft Entra skupiny, které jsou členy SharePoint skupin.

Vztah oprávnění Podporováno Guidance
Uživatel nebo skupina Microsoft Entra přiřazená přímo k položce SharePoint Ano Indexer ukládá objektové ID uživatele nebo skupiny Microsoft Entra do metadat oprávnění položky.
Uživatel se dostane do přiřazené skupiny Microsoft Entra prostřednictvím tranzitivního vnoření skupin Microsoft Entra Ano Vyhodnocení Microsoft Graph při dotazu rozšiřuje tranzitivní členství uživatele ve skupinách Microsoft Entra.
Uživatel přiřazený přímo ke skupině webu SharePoint, která má přístup k položce Ano Konfigurace podpory SharePoint skupin
Skupina Microsoft Entra vnořená do skupiny SharePointu Ne Překlad členství skupiny SharePoint nerozvine vnořenou skupinu Microsoft Entra. Výsledky, které závisí na této relaci, se odfiltrují. Přidejte uživatele přímo do skupina služby SharePoint nebo udělte oprávnění prostřednictvím podporovaného přiřazení skupiny Microsoft Entra.
Další smíšené pokyny pro vnořování v SharePointu a Microsoft Entra Neurčeno Nepředpokládejte podporu na základě tranzitivních vztahů v Microsoft Entra. Toto omezení verze Preview se vztahuje na skupiny Microsoft Entra vnořené do skupin SharePoint.

Jak se vyhodnocují hierarchická oprávnění

SharePoint oprávnění dědí hierarchii webu → knihovny → složky → souboru, pokud není přerušena dědičnost.

Během příjmu dat indexer shromažďuje identifikátory uživatelů a skupin na každé úrovni a vypočítá efektivní seznam ACL pro každý soubor.

Oprávnění podle scénáře ACL

Oprávnění aplikace Microsoft Entra a typ přihlašovacích údajů vyžadovaný pro příjem dat seznamu ACL závisí na tom, které typy položek a typy skupin indexujete. V registraci aplikace se všechna oprávnění přidají v rámci oprávnění> rozhraní APIPřidat oprávnění a federované přihlašovací údaje se přidají do certifikátů a tajných>kódů federovaných přihlašovacích údajů. Podrobné pokyny a snímky obrazovky najdete v tématu Step 3: Vytvoření registrace Microsoft Entra aplikace a Konfigurování registrované aplikace se spravovanou identitou.

Scenario Oprávnění rozhraní API pro přidání Credential
Seznamy ACL pro soubory v knihovně dokumentů, když je přístup udělen pouze prostřednictvím uživatelů Microsoft Entra a standardních skupin (skupin zabezpečení Microsoft Entra, skupin Microsoft 365, skupin zabezpečení s podporou e-mailu) Microsoft Graph: Files.Read.All, Sites.FullControl.All (nebo Sites.Selected pro vymezený přístup) Tajný klíč klienta nebo federované přihlašovací údaje
ACL u souborů v knihovně dokumentů, pokud musí být také respektovány skupiny webu SharePoint (Owners, Members, Visitors nebo vlastní skupiny webu) Microsoft Graph: Files.Read.All, Sites.FullControl.All (nebo Sites.Selected)
SharePoint: Sites.FullControl.All (nebo Sites.Selected)
Federované pověření (povinné)
Seznamy ACL u položek seznamu SharePoint Microsoft Graph: Files.Read.All, Sites.FullControl.All (nebo Sites.Selected), User.Read.All
SharePoint: Sites.FullControl.All (nebo Sites.Selected)
Federované pověření (povinné)
Obsah a seznamy ACL na stránkách webu ASPX Microsoft Graph: Sites.FullControl.All (nebo Sites.Selected), User.Read.All (zachovat Files.Read.All z výše uvedených řádků, pokud také indexujete knihovny dokumentů nebo seznamy)
SharePoint: Sites.FullControl.All (nebo Sites.Selected)
Federované pověření (povinné)
Vyhodnocování skupin webů služby SharePoint při zpracování dotazu prostřednictvím sharePointConnectorAppRegistration Přidání SharePoint: User.Read.All do stejné registrace aplikace používané indexerem Federované pověření (povinné)

Poznámka

  • Když přidáte oprávnění, zvolíte mezi dvěma povrchy rozhraní API: Microsoft Graph a SharePoint. Obě zpřístupňují podobně pojmenovaná oprávnění. Například Sites.FullControl.All existuje pod oběma. Přidejte jednotlivá oprávnění na plochu rozhraní API uvedenou v tabulce.

  • Použijte federované pověření vždy, když scénář přidává oprávnění rozhraní SharePoint API. Tajné klíče klienta fungují pouze pro řádek pro knihovnu dokumentů určený jen pro Microsoft Graph.

  • User.Read.All je vyžadován pro položky seznamu a stránky webu ASPX, protože indexer tato oprávnění čte prostřednictvím rozhraní SHAREPOINT REST API, který vrací jenom e-mail uživatele. Indexer pak volá Microsoft Graph, aby každou e-mailovou adresu přeložil na odpovídající ID objektu Microsoft Entra, přičemž toto vyhledání vyžaduje User.Read.All.

  • Při použití Sites.Selected udělte aplikaci explicitní přístup ke každému cílovému SharePoint webu před indexováním.

Federované přihlašovací údaje ověřují aplikaci pomocí důvěryhodné spravované identity místo tajného klíče klienta. Stejné federované přihlašovací údaje pokrývají příjem dat (indexer) i vyhodnocení doby dotazování SharePoint skupin webů. Postup nastavení najdete v tématu Konfigurace registrované aplikace se spravovanou identitou.

Než povolíte načítání seznamů ACL

Pro zaregistrovanou aplikaci Microsoft Entra proveďte tyto kroky:

  1. V předchozí tabulce určete odpovídající scénář podle toho, co plánujete indexovat (soubory v knihovně dokumentů, položky seznamu, stránky webu ASPX) a zda je nutné respektovat skupiny webu služby SharePoint.
  2. Otevřete registraci aplikace v Centrum pro správu Microsoft Entra a přejděte na oprávnění API>Přidat oprávnění.
  3. Přidejte oprávnění Microsoft Graph uvedená pro váš scénář. Udělení souhlasu správce
  4. Pokud váš scénář také vyžaduje oprávnění SharePoint, vyberte Přidat oprávnění znovu, zvolte rozhraní API SharePoint a přidejte Sites.FullControl.All (nebo Sites.Selected). Udělení souhlasu správce
  5. Konfigurace přihlašovacích údajů:
    • Pro scénáře pouze pro Microsoft Graph můžete použít buď tajný klíč klienta (Certificates & secrets>Tajné kódy klienta) nebo federovaný přihlašovací údaj.
    • Pro jakýkoli scénář, který zahrnuje oprávnění SharePoint, přidejte federované přihlašovací údaje do Certificates & secretsFederated credentials. Viz Konfigurace registrované aplikace se spravovanou identitou.
  6. Udělte aplikaci přístup k cílovým webům SharePoint (zvlášť důležité, pokud pro přístup s vymezeným oborem používáte Sites.Selected), aby mohl číst obsah a oprávnění, která chcete indexovat.

Vyhledání správných identifikátorů Microsoft Entra

Každý identifikátor se na portálu Azure zobrazuje na jiném místě a odpovídá konkrétnímu konfiguračnímu poli. Tuto část použijte jako referenční materiál při konfiguraci ingestace SharePoint ACL s federovaným přihlašovacím údajem. Na tyto identifikátory se odkazuje v Konfiguraci podpory skupin SharePointu a v připojovacím řetězci zdroje dat.

Identifikátor Umístění portálu Používá se tam, kde Poznámky
ID aplikace Ingestion app (klienta) Registrace aplikacíPřehled><your-app>> ApplicationId v připojovacím řetězci zdroje dat; applicationId v sharePointConnectorAppRegistration Toto ID je správné pro většinu konfiguračních polí. Říká se také "ID klienta".
ID objektu aplikace Registrace aplikací><your-app>>Přehled (pod položkou ID aplikace (klienta)) Nepoužívá se v konfiguraci Azure AI Vyhledávač Nezaměňujte ho s ID aplikace (klienta). Zobrazí se ve stejném okně přímo pod ID klienta.
ID instančního objektu Microsoft Entra ID>Podnikové aplikace>><your-app>> Nepoužívá se v konfiguraci Azure AI Vyhledávač Toto je reprezentace instančního objektu aplikace. Je to jiný identifikátor GUID než ID objektu registrace aplikace.
ID objektu zabezpečení spravované identity Prostředek spravované identity > nebo okno Identita vyhledávací služby Nepoužívá se přímo v konfiguraci zdroje dat nebo indexu Azure AI Vyhledávač Interně se používá při nastavování přihlašovacích údajů federované identity při registraci aplikace. Přihlašovací údaj, který vytvoříte, důvěřuje této identitě.
ID federovaného objektu přihlašovacích údajů Registrace aplikací><your-app>>Spravovat>Certifikáty a tajné kódy>Federované přihlašovací údaje><credential-name> Nepoužívá se v konfiguraci Azure AI Vyhledávač Nepoužívejte identifikátor GUID položky přihlašovacích údajů federované identity pro federatedCredentialId.
ID federované aplikace přihlašovacích údajů Přiřazené systémem: Microsoft Entra ID>Podnikové aplikace><search-service>>; Přiřazené uživatelem: <managed-identity-resource>>Vlastnosti FederatedCredentialApplicationId v připojovacím řetězci zdroje dat; federatedCredentialId v sharePointConnectorAppRegistration Viz ID aplikace federovaných přihlašovacích údajů pro vyhledávání spravované identity.

ID federované aplikace přihlašovacích údajů

Pro FederatedCredentialApplicationId v připojovacím řetězci zdroje dat a federatedCredentialId v definici indexu použijte vlastní ID aplikace (klienta) spravované identity, nikoli ID ingestní aplikace.

Spravovaná identita přiřazená systémem:

  1. Přejděte do služby Azure AI Vyhledávač.
  2. Vyberte Zabezpečení a síťová>identita.
  3. Na kartě Přiřazeno systémem si poznamenejte ID objektu (instančního objektu).
  4. Přejděte do Microsoft Entra ID>Spravovat>Podnikové aplikace.
  5. Vyhledejte název vyhledávací služby nebo vložte ID objektu (instančního objektu) do vyhledávacího pole.
  6. Vyberte výsledek a otevřete vlastnosti. Zkopírujte ZDE uvedené ID aplikace , což je hodnota ve FederatedCredentialApplicationId zdroji dat a federatedCredentialId v indexu.

Spravovaná identita přiřazená uživatelem:

  1. Přejděte k prostředku spravované identity přiřazené uživatelem.
  2. Vyberte Nastavení>Vlastnosti.
  3. Zkopírujte ID klienta, což je hodnota ve FederatedCredentialApplicationId zdroji dat a federatedCredentialId v indexu.

Konfigurace vyhledávací služby pro příjem ACL a vynucení doby dotazu

Tyto kroky nakonfigurují zpracování seznamu ACL pro vyhledávací službu a povolí respektování seznamu ACL během dotazování.

Vyberte, kde se mají vyplnit pole ACL

To, kam namapujete pole metadat ACL, závisí na tom, zda indexer zapisuje jeden dokument pro každou zdrojovou položku, nebo více částí pro každou zdrojovou položku.

Scenario Naplnění polí seznamu ACL prostřednictvím Proč
Žádná sada dovedností nebo sada dovedností bez segmentace; jeden vyhledávací dokument pro každou zdrojovou položku mapování polí Indexer (pouze metadata_user_idsUserIds, metadata_group_idsGroupIds a pro skupiny SharePoint metadata_spo_site_urlSharePointSiteUrl). Indexer zapíše do cílového indexu jeden dokument a mapování polí přenáší zdrojová metadata do polí indexu.
Sada dovedností s dělením na bloky (například dovednost Rozdělení textu pro integrovanou vektorizaci), jeden index s nadřazenými poli opakovanými v každém bloku (projectionMode: skipIndexingParentDocuments) Projekce indexu v sadě dovedností (mappings z /document/metadata_user_ids, /document/metadata_group_ids a pro skupiny SharePointu /document/metadata_spo_site_url). Nadřazený dokument není indexovaný; jsou pouze bloky dat. Hodnoty ACL musí být promítnuty do každé části, aby se filtry při dotazu použily na část vrácenou ve výsledcích. Mapování polí indexeru pro tato pole jsou v tomto režimu vynechána.
Sada dovedností s dělením na bloky, vzorec se dvěma indexy (nadřazený index + index dceřiného bloku) Obojí: mapování polí indexeru vyplní pole ACL na nadřazeném indexu, projekce indexu vyplní pole ACL na podřízeném indexu bloků. Oba indexy se dají dotazovat a každá potřebuje metadata, na které se filtrují.

Ve všech scénářích s dělením na bloky musí každý blok obsahovat pole ACL. Filtry přístupových oprávnění se uplatňují na každý dokument, takže blok, kterému chybějí pole ACL, nelze vrátit správnému volajícímu.

1. Konfigurace zdroje dat

Tato část rozšiřuje základní postup Krok 4: Vytvoření zdroje dat. Nastavte indexerPermissionOptions v definici zdroje dat , aby bylo možné indexovat userIds a groupIds z dokumentů SharePoint.

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

2. Přidání polí oprávnění do definice indexu

Přidejte do definice schématu indexu pole pro ukládání seznamů ACL a podporu filtrování času dotazu.

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

Nastavte atribut retrievable na true pouze během vývoje pro ověření hodnot. Můžete změnit načítání z true na false bez požadavku na opětovné sestavení indexu.

3. Konfigurace projekcí indexu v sadě dovedností (pokud je k dispozici)

Při povolení bloků dat není nadřazený dokument zapsán do indexu, pokud projectionMode je skipIndexingParentDocuments. Přenášejte metadata ACL do každého bloku prostřednictvím indexProjections.selectors[].mappings.

Pokud váš indexer používá sadu dovedností s blokem dat, jako je například dovednost Rozdělení textu při povolování integrované vektorizace, nezapomeňte vlastnosti seznamu ACL namapovat na každý blok dat pomocí projekce indexu. Řádky // v následujícím příkladu jsou ilustrativní anotace a nejsou platné JSON. Před odesláním žádosti je odeberte.

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

Mapování UserIds, GroupIds a SharePointSiteUrl načítá metadata na úrovni zdroje generované indexerem SharePoint (/document/metadata_*) a zapisují hodnoty do jednotlivých bloků dat.

4. Nakonfigurujte mapování polí indexeru pro řízení přístupu (ACL)

Použijte mapování polí indexeru, když indexer zapisuje jeden dokument pro každou zdrojovou položku (bez dělení na bloky) nebo když udržujete samostatný rodičovský index vedle indexu bloků. Pokud vaše sada dovedností rozdělí dokumenty do jednoho cílového indexu pomocí projectionMode: skipIndexingParentDocuments, mapování polí zde zobrazená jsou nahrazena mapováními indexProjections.mappings z předchozího kroku pro index fragmentů.

Kromě požadované konfigurace indexeru namapujte nezpracovaná pole ACL metadat ze SharePointu na vaše pole indexu.

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

5. Spusťte indexer.

Metadata ACL se načítají při běhu indexeru. Po vytvoření nebo aktualizaci indexeru (viz krok 6: Vytvoření indexeru) aktivujte spuštění, aby indexer ingestoval seznamy ACL společně s obsahem.

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

Pokud jste u existujícího indexeru, který už zaindexoval položky, povolili ingestaci ACL, zavolejte /resync s options: ["permissions"], aby se pro tyto položky doplnily seznamy ACL, nebo znovu extrahujte konkrétní položky pomocí /resetdocs.

6. Ověření příjmu seznamu ACL

Chcete-li ověřit, že hodnoty ACL byly správně vyplněny:

  1. Dočasně nastavte retrievable na true u UserIds a GroupIds ve vaší definici indexu. Změna retrievable nevyžaduje opětovné sestavení indexu.
  2. Spusťte dotaz se zvýšenými oprávněními pro čtení, který vybere UserIds a GroupIds, a ověřte, že kolekce nejsou prázdné. U segmentovaných scénářů ověřte, že každý blok obsahuje obě pole.
  3. Vrátit retrievable zpět na false po ověření.

Konfigurace podpory skupin SharePoint

Počínaje verzí REST API 2026-05-01-preview může indexer SharePointu indexovat členství ve skupinách webu SharePoint (vlastníci, členové, návštěvníci a vlastní skupiny webu). Tyto skupiny zohledňuje při dotazování. ID skupin SharePointu se v poli metadata_group_ids uvádějí s předponou spg:, aby se odlišila od ID objektů skupin Microsoft Entra.

Tento návod je samostatný: proveďte kroky pro konfiguraci indexu, mapování polí indexeru a dotazování indexu pomocí vynucení skupiny webů SharePoint.

Následující komponenty spolupracují a umožňují SharePoint řešení skupin webů:

Component Kde Purpose
sharePointConnectorAppRegistration (s applicationId, tenantId, federatedCredentialId) Definice indexu Poskytuje konfiguraci ověřování potřebnou k tomu, aby služba Search mohla volat rozhraní SharePoint REST API jménem volajícího uživatele a při zpracování dotazu zjišťovat členství ve skupinách webu.
SharePointSiteUrl pole (s sharepointSiteUrl: true) Schéma indexu + mapování polí indexeru z metadata_spo_site_url Identifikuje, do kterého SharePoint webu dokument patří, takže rozlišení skupiny SP je správně vymezeno.
spg:hodnoty s předponou - v GroupIds Metadata oprávnění k dokumentu Odlište ID skupin webu SharePointu od ID objektů skupin Microsoft Entra.

1. Požadavky

Poznámka

FederatedCredentialApplicationId v připojovacím řetězci zdroje dat a federatedCredentialId v sharePointConnectorAppRegistration použijte ID aplikace spravované identity. Vlastnost applicationId v sharePointConnectorAppRegistration používá klientské ID ingestní aplikace. Správné hodnoty najdete v tématu Vyhledání správných identifikátorů Microsoft Entra.

2. Konfigurace indexu

Přidejte konfiguraci sharePointConnectorAppRegistration a pole SharePointSiteUrl vedle polí filtru oprávnění UserIds a GroupIds, aby byla úplná struktura indexu na jednom místě. Zachovat 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. Konfigurace mapování polí indexeru

Namapujte pole metadat SharePoint na pole indexu v jednom kombinovaném bloku mapování. První dvě mapování jsou stejná jako pro standardní příjem seznamů ACL; třetí mapování aktivuje SharePoint řešení skupin.

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

Pokud vaše sada dovedností rozděluje dokumenty na bloky (například pomocí dovednosti Text Split pro integrovanou vektorizaci), promítejte místo toho SharePointSiteUrl do každého bloku pomocí indexProjections.mappings. Viz Výběr umístění pro vyplnění polí ACL.

4. Dotazování indexu

Nevyžaduje se žádná změna na straně klienta. Stejný token x-ms-query-source-authorization aktivuje vynucení skupiny webů Microsoft Entra i SharePoint. Vyhledávací služba vyhodnocuje členství ve skupinách SharePointu na straně serveru pomocí sharePointConnectorAppRegistration v indexu.

Strukturu požadavku najdete v obecném příkladu dotazu a v příkladu specifickém pro SharePoint s vynucením skupiny webů SharePoint.

5. Ověření

Chcete-li ověřit, že se ID skupin SharePointu dostala do indexu, spusťte dotaz se zvýšenými oprávněními ke čtení, ve kterém vyberete GroupIds, a v odpovědi hledejte hodnoty s předponou spg:.

Synchronizace oprávnění mezi indexovaným a zdrojovým obsahem

Počínaje rozhraním REST API verze 2026-05-01-Preview se zjistí a aktualizují změny seznamu ACL pro položky s jedinečnými oprávněními při každém úspěšném spuštění indexeru. Indexer používá tokeny změn SharePointu k inkrementálnímu zachycování přidání a odebrání přiřazení rolí, stejným způsobem, jakým zachycuje změny obsahu.

Některé scénáře stále vyžadují explicitní aktualizaci:

Změnit obor Automaticky zjištěno Doporučená akce
Oprávnění ke konkrétní položce s jedinečnými oprávněními (soubor, položka seznamu nebo stránka) Ano Nevyžaduje se žádná akce. Změna se projeví při dalším úspěšném spuštění indexačního procesu.
Změna obsahu u konkrétní položky (která také znovu vyhodnotí efektivní seznamy ACL pro danou položku) Ano Nevyžaduje se žádná akce.
Změna oprávnění v nadřazeném rozsahu (webu, knihovny, seznamu nebo složky), kterou dědí podřízené položky Ne Zavolejte /resync s parametrem options: ["permissions"], aby se aktualizovaly seznamy ACL v celém zdroji dat, nebo zavolejte /resetdocs s klíči dotčených dokumentů, aby se aktualizoval obsah i seznamy ACL.
Příjem ACL povolený u existujícího indexeru Ne Zavolejte /resync s options: ["permissions"], aby se zpětně doplnily seznamy ACL pro dříve indexované položky.

Resetování konkrétních dokumentů

Konkrétní dokumenty můžete resetovat, aby se obsah a ACL znovu plně ingestovaly.

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

Resynchronizace seznamů ACL v celém zdroji dat

Po počátečním příjmu dat můžete obsah seznamu ACL úplné sady dat znovu synchronizovat . K úplnému úspěchu vyžaduje tato operace spuštění indexeru po dokončení.

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

Důležité

Pokud změníte oprávnění SharePoint bez aktivace mechanismu aktualizace, index obsluhuje zastaralá data seznamu ACL pro dříve ingestované soubory.

Po indexování vašich dat a seznamů řízení přístupu můžete provádět dotazy na index.

Řešení problémů

Symptom Příčina a řešení
UserIds nebo GroupIds jsou prázdné v indexovaných dokumentech Pokud vaše dovednostní sada používá projectionMode: skipIndexingParentDocuments, mapování polí indexeru pro pole ACL se obejde. Pole ACL místo toho nastavte pro každý blok pomocí indexProjections.mappings.
SharePoint id skupiny webů chybí nebo hodnoty GroupIds nemají předponu spg: Ověřte, že index má konfiguraci sharePointConnectorAppRegistration, že pole SharePointSiteUrl existuje s sharepointSiteUrl: true a že mapování metadata_spo_site_url je přítomné buď v mapování polí indexeru, nebo v projekcích indexu.
SharePointSiteUrl je po indexování prázdná nebo null, i když se seznamy ACL jinak správně naplňují Indexer vypisuje tato metadata pod metadata_spo_site_url, nikoli pod metadata_sharepoint_site_url. Ověřte, že mapování polí indexeru používá "sourceFieldName": "metadata_spo_site_url". Pokud vaše dovednostní sada používá projekce indexu pro dokumenty rozdělené na bloky, ověřte, že zdrojem mapování projekce je /document/metadata_spo_site_url.
Indexer vrátí hodnotu 401 nebo 403. Udělte správci souhlas s oprávněními rozhraní API Microsoft Graph i SharePoint pro váš scénář. Pokud to scénář vyžaduje, použijte federované přihlašovací údaje (ne tajný klíč klienta). Viz scénář oprávnění podle seznamu ACL.
Oprávnění jsou po změně seznamu ACL webu, knihovny, seznamu nebo složky zastaralá. Zavolejte /resync pomocí options: ["permissions"]. Kontext najdete v tématu Synchronizovat oprávnění mezi indexovaným a zdrojovým obsahem .
federatedCredentialId je odmítnut při konfiguraci sharePointConnectorAppRegistration Použijte ID aplikace spravované identity, ne ID objektu přihlašovacího údaje federované identity ani ID objektu zabezpečení spravované identity. Viz ID federované aplikace přihlašovacích údajů.
Indexátor vrací 401 Unauthorized a FederatedCredentialApplicationId je nastaven. Ověřte, že jste použili ID aplikace spravované identity (nachází se v podnikových aplikacích), nikoli IDApplicationId aplikace pro příjem dat (klienta) ani žádné ID objektu. Pro spravovanou identitu přiřazenou uživatelem použijte ID klienta ze stránky Vlastnosti prostředku spravované identity. Viz Vyhledání správných identifikátorů Microsoft Entra.

Informace o chybějících, neočekávaných nebo neúspěšných výsledcích dotazu po indexování metadat seznamu ACL najdete v tématu Řešení potíží s filtrováním oprávnění SharePoint.