Używanie indeksatora SharePoint do pozyskiwania metadanych uprawnień i filtrowania wyników wyszukiwania na podstawie praw dostępu użytkowników (wersja zapoznawcza)

Uwaga

Wyszukiwanie AI platformy Azure jest dostępna za pośrednictwem portalu Azure, interfejsów API REST i Azure SDKs. Jest także podstawą Foundry IQ — zarządzanej warstwy wiedzy, która przekształca treści przedsiębiorstwa w bazy wiedzy wielokrotnego użytku z uwzględnieniem uprawnień dla agentów w portalu Microsoft Foundry.

Ważne

Funkcje, możliwości lub właściwości oznaczone (wersja zapoznawcza) nie są objęte umową dotyczącą poziomu usług, nie są zalecane w przypadku obciążeń produkcyjnych i mogą ulec zmianie lub ograniczeniu, zanim staną się one ogólnie dostępne. Warunki Wyszukiwanie AI platformy Azure wersji zapoznawczej mają zastosowanie do wszystkich funkcji w wersji zapoznawczej, niezależnie od tego, czy jest ona autonomiczna, czy częścią ogólnie dostępnej funkcji.

Pozyskiwanie metadanych uprawnień programu SharePoint (wersja zapoznawcza) wykorzystuje indeksator usługi Wyszukiwanie AI platformy Azure, aby zachować metadane uprawnień, takie jak listy kontroli dostępu (ACL), razem z inną zawartością programu SharePoint w usłudze Microsoft 365. Indeksator przechowuje uprawnienia jako metadane dla każdego indeksowanego dokumentu. W czasie wykonywania zapytania użytkownicy otrzymują tylko dokumenty, do których mają uprawnienia dostępu.

Diagram architektury pokazujący rozwiązanie RAG przycięte pod względem bezpieczeństwa, w którym indeksator SharePoint pozyskuje dokumenty i metadane uprawnień listy ACL z witryny SharePoint, przechowuje je w indeksie Wyszukiwanie AI platformy Azure, a orkiestrator RAG filtruje wyniki zapytania, aby każdy użytkownik pobierał tylko dokumenty, do których ma uprawnienia dostępu.

Ważne

W przypadku scenariuszy wymagających pełnego modelu uprawnień SharePoint, etykiet poufności oraz przycinania zabezpieczeń z gotowego szablonu, należy użyć zdalnego źródła wiedzy SharePoint. Takie podejście wywołuje SharePoint bezpośrednio za pośrednictwem interfejsu API pobierania Copilot. Ład pozostaje w pełni w SharePoint, a wyniki zapytań automatycznie przestrzegają wszystkich odpowiednich uprawnień i etykiet.

Wymagania wstępne

  • Wyszukiwanie AI platformy Azure w warstwie rozliczanej (Podstawowa lub nowsza) w dowolnym regionie.

  • SharePoint w witrynach Microsoft 365, bibliotekach, folderach i plikach ze skonfigurowanymi uprawnieniami.

  • Wykonaj wszystkie kroki konfiguracji w dokumentacji indeksatora SharePoint, stosując wszystkie wymagania specyficzne dla ACL opisane w tym artykule.

  • Skonfiguruj Microsoft Entra uprawnienia aplikacji i poświadczenia odpowiednie dla danego scenariusza. Zobacz Scenariusz uprawnień według listy ACL. Importowanie ACL wymaga uprawnień aplikacji. Delegowane uprawnienia nie są obsługiwane. Informacje na temat wyboru między uprawnieniami aplikacji a uprawnieniami delegowanymi znajdziesz w artykule Wybierz konfigurację uprawnień.

  • Interfejs API REST w wersji 2026-08-01-preview lub równoważny pakiet zestawu SDK w wersji zapoznawczej.

Ograniczenia

Obsługa modelu uprawnień SharePoint

Ta wersja zapoznawcza obsługuje podstawowe listy kontroli dostępu (ACL) dla dokumentów, elementów listy i nowoczesnych stron ASPX w witrynie.

funkcja SharePoint Opis Wspierane Notatki
Dziedziczenie witryny, biblioteki, listy i strony Witryna → biblioteka/lista → folder → plik/element/strona. ✔️ Oceniane podczas importu; efektywne listy ACL są obliczane dla każdego elementu.
Unikatowe uprawnienia ACL folderu, pliku, elementu listy i strony Dostęp na poziomie elementu. ✔️ Uwzględniane podczas pierwszego zaimportowania oraz kolejnych uruchomień wykrywających zmiany na liście ACL dla elementów z unikatowymi uprawnieniami.
Elementy listy SharePoint Uprawnienia do elementów listy (allSiteLists i allSiteContent kontenerów). ✔️ Wersja zapoznawcza, począwszy od interfejsu API REST 2026-05-01-preview.
Strony witryny ASPX Uprawnienia na nowoczesnych stronach witryny (w kontenerach allSitePages i allSiteContent). ✔️ Wersja zapoznawcza, począwszy od interfejsu API REST 2026-05-01-preview.
grupy Microsoft Entra (Microsoft 365 i zabezpieczenia) Dostęp oparty na grupach. ✔️ Identyfikatory grup są uwzględniane, jeśli można je przypisać do identyfikatora Microsoft Entra (ID).
SharePoint grup witryn Właściciele/Członkowie/Odwiedzający i niestandardowe grupy witryn. ✔️ Wersja zapoznawcza, począwszy od interfejsu API REST 2026-05-01-preview. Wymaga konfiguracji grup SharePoint. Identyfikatory grup są emitowane z prefiksem spg: .
Linki udostępniane dla "Dla każdego" lub "Osoby w Twojej organizacji" Dostęp w całej organizacji lub publiczny. ❌ Niewspierane w wersji zapoznawczej.
Użytkownicy zewnętrzni/goście Dostęp dla gości. ❌ Nie jest obsługiwane.
Zasady zarządzania informacjami Zasady definiujące określone wymagania dotyczące uprawnień. ❌ Niewspierane w wersji zapoznawczej.
Etykiety poufności Purview Zabezpieczenia na poziomie dokumentu dotyczące prywatności, kategoryzacji, uprawnień i szyfrowania ❌ Obsługiwane za pomocą oddzielnej funkcji: zachowywanie i honorowanie etykiet poufności.

Obsługiwane relacje grup

Przechodniość grup w usłudze Microsoft Entra ma zastosowanie w obrębie usługi Microsoft Entra. Nie rozwija grup Microsoft Entra, które są członkami grup programu SharePoint.

Relacja uprawnień Wspierane Wskazówki
Użytkownik lub grupa Microsoft Entra przypisana bezpośrednio do elementu SharePoint Yes Indeksator przechowuje identyfikator obiektu użytkownika lub grupy Microsoft Entra w metadanych uprawnień elementu.
Użytkownik osiąga przypisaną grupę Microsoft Entra za pomocą przejściowego zagnieżdżania grup Microsoft Entra Yes Rozwiązanie Microsoft Graph czasu zapytania rozszerza przechodnie członkostwo użytkownika w grupach Microsoft Entra.
Użytkownik przypisany bezpośrednio do grupy witryn SharePoint, która ma dostęp do elementu Yes Konfigurowanie obsługi grup SharePoint.
grupa Microsoft Entra zagnieżdżona w grupie programu SharePoint No Rozpoznawanie grupy SharePoint nie rozwija zagnieżdżonej grupy Microsoft Entra. Wyniki zależne od tej relacji są odfiltrowywane. Dodaj użytkowników bezpośrednio do grupy programu SharePoint lub przyznaj uprawnienia za pomocą obsługiwanego przypisania grupy w Microsoft Entra.
Inne mieszane kierunki zagnieżdżania w SharePoint i Microsoft Entra Nieokreślona Nie zakładaj obsługi na podstawie przechodniości rozwiązania Microsoft Entra. To ograniczenie wersji zapoznawczej jest ograniczone do grup Microsoft Entra zagnieżdżonych w grupach SharePoint.

Jak oceniane są uprawnienia hierarchiczne

SharePoint uprawnienia dziedziczą hierarchię witryna → biblioteka → folder → plik, chyba że dziedziczenie zostanie przerwane.

Podczas pozyskiwania indeksator zbiera identyfikatory użytkowników i grup (ID) na każdym poziomie i oblicza obowiązującą listę ACL dla każdego pliku.

Uprawnienia w scenariuszu ACL

Uprawnienia aplikacji Microsoft Entra oraz typ poświadczeń wymagane do pozyskiwania danych ACL zależą od tego, jakie typy elementów i grup indeksujesz. W rejestracji aplikacji wszystkie uprawnienia są dodawane w obszarze Uprawnienia >Dodaj uprawnienie, a poświadczenia federacyjne są dodawane w obszarze Certyfikaty i wpisy tajne>Poświadczenia federacyjne. Aby uzyskać instrukcje krok po kroku i zrzuty ekranu, zobacz Krok 3: Tworzenie rejestracji aplikacji Microsoft Entra i Konfigurowanie zarejestrowanej aplikacji przy użyciu tożsamości zarządzanej.

Scenario Uprawnienia interfejsu API umożliwiające dodawanie Credential
Listy ACL plików w bibliotekach dokumentów, gdy dostęp jest przyznawany tylko za pośrednictwem użytkowników Microsoft Entra i grup standardowych (grup zabezpieczeń Microsoft Entra, grup Microsoft 365, grup zabezpieczeń obsługujących pocztę) Microsoft Graph: Files.Read.All, Sites.FullControl.All (lub Sites.Selected w celu uzyskania dostępu ograniczonego do zakresu) Klucz tajny klienta lub poświadczenie federacyjne
Listy kontroli dostępu (ACL) dla plików w bibliotekach dokumentów, gdy grupy witryn programu SharePoint (Właściciele, Członkowie, Odwiedzający lub niestandardowe grupy witryn) również muszą być uwzględniane Microsoft Graph: Files.Read.All, Sites.FullControl.All (lub Sites.Selected)
SharePoint: Sites.FullControl.All (lub Sites.Selected)
Poświadczenie federacyjne (wymagane)
Listy ACL w elementach listy SharePoint Microsoft Graph: Files.Read.All, Sites.FullControl.All (lub Sites.Selected), User.Read.All
SharePoint: Sites.FullControl.All (lub Sites.Selected)
Poświadczenie federacyjne (wymagane)
Zawartość i listy ACL na stronach witryny ASPX Microsoft Graph: Sites.FullControl.All (lub Sites.Selected), User.Read.All (zachowaj Files.Read.All z powyższych wierszy, jeśli indeksujesz również biblioteki dokumentów lub listy)
SharePoint: Sites.FullControl.All (lub Sites.Selected)
Poświadczenie federacyjne (wymagane)
Ustalanie grup witryny SharePoint w czasie wykonywania zapytania za pośrednictwem sharePointConnectorAppRegistration Dodaj SharePoint: User.Read.All do tej samej rejestracji aplikacji używanej przez indeksator Poświadczenie federacyjne (wymagane)

Uwaga

  • Po dodaniu uprawnienia można wybrać między dwoma powierzchniami interfejsu API: Microsoft Graph i SharePoint. Oba uwidaczniają podobnie nazwane uprawnienia. Na przykład Sites.FullControl.All istnieje w obu tych przypadkach. Dodaj każde uprawnienie w ramach powierzchni interfejsu API wskazanej w tabeli.

  • Użyj poświadczenia federacyjnego zawsze, gdy scenariusz dodaje uprawnienia interfejsu API programu SharePoint. Klucze tajne klienta działają tylko w przypadku wiersza biblioteki dokumentów przeznaczonego wyłącznie dla usługi Microsoft Graph.

  • User.Read.All jest wymagany dla elementów listy i stron witryny ASPX, ponieważ indeksator odczytuje te uprawnienia za pośrednictwem interfejsu API REST SharePoint, który zwraca tylko adres e-mail użytkownika. Następnie indeksator wywołuje Microsoft Graph, aby przyporządkować każdy adres e-mail do identyfikatora obiektu Microsoft Entra, a to wyszukiwanie wymaga User.Read.All.

  • Jeśli używasz Sites.Selected, przed indeksowaniem przyznaj aplikacji jawny dostęp do każdej witryny docelowej SharePoint.

Poświadczenie federacyjne uwierzytelnia aplikację przy użyciu zaufanej tożsamości zarządzanej zamiast klucza tajnego klienta. To samo poświadczenie federacyjne obejmuje zarówno pobieranie danych (indeksator), jak i ocenę grup witryn programu SharePoint w czasie wykonywania zapytania. Aby uzyskać instrukcje konfiguracji, zobacz Konfigurowanie zarejestrowanej aplikacji przy użyciu tożsamości zarządzanej.

Przed włączeniem importowania list ACL

Wykonaj następujące kroki w zarejestrowanej aplikacji Microsoft Entra:

  1. Zidentyfikuj swój scenariusz w poprzedniej tabeli na podstawie tego, co planujesz indeksować (pliki bibliotek dokumentów, elementy listy, strony witryny ASPX) oraz tego, czy grupy witryn programu SharePoint muszą być uwzględniane.
  2. Otwórz rejestrację aplikacji w centrum administracyjne Microsoft Entra i przejdź do pozycji API permissions>Dodaj uprawnienie.
  3. Dodaj uprawnienia Microsoft Graph wymienione dla danego scenariusza. Udziel zgody administratora.
  4. Jeśli twój scenariusz wymaga również uprawnień programu SharePoint, ponownie wybierz pozycję Dodaj uprawnienie, wybierz interfejs API SharePoint i dodaj Sites.FullControl.All (lub Sites.Selected). Udziel zgody administratora.
  5. Skonfiguruj poświadczenia:
    • W przypadku scenariuszy korzystających wyłącznie z Microsoft Graph można użyć klucza tajnego klienta (Certificates & secrets>Client secrets) lub poświadczenia federacyjnego.
    • W przypadku każdego scenariusza obejmującego uprawnienia SharePoint dodaj poświadczenie federacyjne pod Certificates & secrets>Federated credentials. Zobacz Konfigurowanie zarejestrowanej aplikacji przy użyciu tożsamości zarządzanej.
  6. Przyznaj aplikacji dostęp do docelowych witryn SharePoint (co jest szczególnie ważne w przypadku dostępu o określonym zakresie przy użyciu Sites.Selected), aby mogła odczytywać treści i uprawnienia, które chcesz zindeksować.

Znajdowanie prawidłowych identyfikatorów Microsoft Entra

Każdy identyfikator występuje w innym miejscu w portalu Azure i odpowiada określonemu polu konfiguracji. Użyj tej sekcji jako punktu odniesienia podczas konfigurowania pozyskiwania uprawnień ACL w SharePoint przy użyciu poświadczenia federacyjnego. Do tych identyfikatorów odwołano się w sekcji Konfigurowanie obsługi grup SharePoint oraz w parametrach połączenia źródła danych.

Identyfikator Lokalizacja portalu Stosowane tam, gdzie Notatki
Identyfikator aplikacji pozyskiwania (klienta) Rejestracje aplikacji><your-app>>Przegląd ApplicationId w parametrach połączenia źródła danych; applicationId w sharePointConnectorAppRegistration Ten identyfikator jest poprawny dla większości pól konfiguracji. Nazywany również "identyfikatorem klienta".
Identyfikator obiektu aplikacji Rejestracje aplikacji><your-app>>Przegląd (poniżej identyfikatora aplikacji (klienta)) Nieużytne w konfiguracji Wyszukiwanie AI platformy Azure Nie należy mylić tego z identyfikatorem aplikacji (klienta). Zostanie on wyświetlony w tym samym bloku bezpośrednio poniżej identyfikatora klienta.
Identyfikator obiektu jednostki usługi Microsoft Entra ID>Aplikacje dla przedsiębiorstw><your-app>>Zarządzanie>Właściwości Nieużytne w konfiguracji Wyszukiwanie AI platformy Azure To jest reprezentacja aplikacji w postaci jednostki usługi. To inny identyfikator GUID niż identyfikator obiektu rejestracji aplikacji.
Identyfikator podmiotu zabezpieczeń tożsamości zarządzanej > zasobu tożsamości zarządzanej lub karta Tożsamość usługi wyszukiwania Nie jest używane bezpośrednio w konfiguracji źródła danych lub indeksu usługi Wyszukiwanie AI platformy Azure Używane wewnętrznie podczas konfigurowania poświadczenia tożsamości federacyjnej w ramach rejestracji aplikacji. Utworzone poświadczenie uwierzytelniające darzy tę tożsamość zaufaniem.
ID obiektu federacyjnego poświadczenia Rejestracje aplikacji><your-app>>Zarządzaj>Certyfikaty i wpisy tajne>Poświadczenia federacyjne><credential-name> Nieużytne w konfiguracji Wyszukiwanie AI platformy Azure Nie używaj identyfikatora GUID wpisu poświadczenia federacyjnej tożsamości dla elementu federatedCredentialId.
Identyfikator aplikacji poświadczeń federacyjnych Przypisane przez system: Microsoft Entra ID>Aplikacje dla przedsiębiorstw><search-service>>; Przypisane przez użytkownika: <managed-identity-resource>>Właściwości FederatedCredentialApplicationId w parametrach połączenia źródła danych; federatedCredentialId w sharePointConnectorAppRegistration Zobacz Identyfikator aplikacji poświadczeń federacyjnych , aby wyszukać tożsamość zarządzaną.

Identyfikator aplikacji poświadczeń federacyjnych

W przypadku FederatedCredentialApplicationId w parametrach połączenia ze źródłem danych oraz federatedCredentialId w definicji indeksu użyj własnego identyfikatora aplikacji (klienta) tożsamości zarządzanej, a nie identyfikatora aplikacji pozyskiwania danych.

Tożsamość zarządzana przypisana przez system:

  1. Przejdź do usługi Wyszukiwanie AI platformy Azure.
  2. Wybierz pozycję Zabezpieczenia i tożsamość sieciowa>.
  3. Na karcie Przypisane przez system zanotuj identyfikator obiektu (podmiotu zabezpieczeń).
  4. Przejdź do Microsoft Entra ID>Zarządzaj>Aplikacje dla przedsiębiorstw.
  5. Wyszukaj nazwę usługi wyszukiwania lub wklej Identyfikator obiektu (podmiotu) w polu wyszukiwania.
  6. Wybierz wynik i otwórz pozycję Właściwości. Skopiuj pokazany tutaj identyfikator aplikacji , który jest wartością FederatedCredentialApplicationId w źródle danych i federatedCredentialId w indeksie.

Tożsamość zarządzana przypisana przez użytkownika:

  1. Przejdź do zasobu tożsamości zarządzanej przypisanej przez użytkownika.
  2. Wybierz pozycję Ustawienia>Właściwości.
  3. Skopiuj identyfikator klienta, który jest wartością FederatedCredentialApplicationId w źródle danych i federatedCredentialId w indeksie.

Skonfiguruj usługę wyszukiwania pod kątem pozyskiwania danych ACL i egzekwowania podczas wykonywania zapytań

Te kroki konfigurują usługę wyszukiwania do przetwarzania list ACL i zapewniają respektowanie uprawnień ACL podczas wykonywania zapytań.

Wybierz, gdzie wypełnić pola ACL

To, gdzie mapujesz pola metadanych ACL, zależy od tego, czy indeksator zapisuje jeden dokument dla każdego elementu źródłowego, czy wiele fragmentów dla każdego elementu źródłowego.

Scenario Wypełnij pola ACL za pomocą Dlaczego
Brak zestawu umiejętności lub zestaw umiejętności bez dzielenia na fragmenty; jeden dokument wyszukiwania dla każdego elementu źródłowego Tylko mapowania pól indeksatora (metadata_user_ids → UserIds, metadata_group_ids → GroupIds oraz, w przypadku grup SharePoint, metadata_spo_site_url → SharePointSiteUrl). Indeksator zapisuje pojedynczy dokument w indeksie docelowym, a mapowania pól przenoszą metadane źródłowe do pól indeksu.
Zestaw umiejętności z fragmentowaniem (na przykład umiejętność dzielenia tekstu na potrzeby zintegrowanej wektoryzacji), pojedynczy indeks z polami nadrzędnymi powtarzanymi w każdym fragmentze (projectionMode: skipIndexingParentDocuments) Projekcje indeksu w zestawie umiejętności (mappings z /document/metadata_user_ids, /document/metadata_group_ids i dla grup SharePoint /document/metadata_spo_site_url). Dokument nadrzędny nie jest indeksowany; są tylko fragmenty. Wartości listy ACL muszą być rzutowane na każdy fragment, aby filtry czasu kwerendy miały zastosowanie do fragmentu zwróconego w wynikach. Mapowania pól indeksatora dla tych pól są pomijane w tym trybie.
Zestaw umiejętności z dzieleniem na fragmenty, wzorzec z dwoma indeksami (indeks nadrzędny + indeks fragmentu podrzędnego) Oba: mapowania pól indeksatora wypełniają pola listy ACL w indeksie nadrzędnym, projekcje indeksów wypełniają pola listy ACL w indeksie fragmentów podrzędnych. Oba indeksy można przeszukiwać za pomocą zapytań, a każdy z nich wymaga metadanych, według których filtruje.

We wszystkich scenariuszach z podziałem na fragmenty każdy fragment musi zawierać pola ACL. Filtry uprawnień obowiązują dla każdego dokumentu, więc fragment bez pól ACL nie może zostać zwrócony właściwemu wywołującemu.

1. Konfiguracja źródła danych

Ta sekcja stanowi uzupełnienie bazowej instrukcji Krok 4: Tworzenie źródła danych. Ustaw w definicji źródła danych , aby umożliwić indeksowanie i z dokumentów SharePoint.

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

2. Dodawanie pól uprawnień do definicji indeksu

Dodaj pola do definicji schematu indeksu, aby przechowywać ACL i obsługiwać filtrowanie w czasie zapytań.

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

Ustaw atrybut retrievable na true tylko podczas procesu tworzenia, aby zweryfikować wartości. Można zmienić możliwość pobierania z wartości true na false bez wymagania ponownego kompilowania indeksu.

3. Skonfiguruj projekcje indeksów w zestawie umiejętności (jeśli dotyczy)

Po włączeniu fragmentowania dokument nadrzędny nie jest zapisywany w indeksie, gdy projectionMode ma wartość skipIndexingParentDocuments. Przenieś metadane ACL do każdego fragmentu przez element indexProjections.selectors[].mappings.

Jeśli indeksator używa zestawu umiejętności z fragmentowaniem danych, takim jak umiejętność dzielenia tekstu podczas włączania zintegrowanej wektoryzacji, pamiętaj o mapowaniu właściwości listy ACL na każdy fragment przy użyciu projekcji indeksu. Linie // w poniższym przykładzie są jedynie ilustracyjnymi adnotacjami i nie stanowią poprawnego kodu JSON. Usuń je przed przesłaniem żądania.

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

Mapowania UserIds, GroupIds i SharePointSiteUrl odczytują metadane na poziomie źródła emitowane przez indeksator SharePoint (/document/metadata_*) i zapisują te wartości w każdym fragmencie.

4. Konfigurowanie mapowań pól indeksatora dla list ACL

Użyj mapowań pól indeksatora, gdy indeksator zapisuje jeden dokument na element źródłowy (bez fragmentowania) lub gdy utrzymujesz oddzielny indeks nadrzędny obok indeksu fragmentu. Jeśli zestaw umiejętności dzieli dokumenty na fragmenty do jednego docelowego indeksu za pomocą projectionMode: skipIndexingParentDocuments, mapowania pól pokazane tutaj zastępuje indexProjections.mappings z poprzedniego kroku dla indeksu fragmentów.

Oprócz wymaganej konfiguracji indexer zamapuj nieprzetworzone pola ACL metadanych z SharePoint do pól w indeksie.

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

5. Uruchamianie indeksatora

Metadane ACL są pobierane podczas działania indeksatora. Po utworzeniu lub zaktualizowaniu indeksatora (zobacz Krok 6: Tworzenie indeksatora) uruchom go, aby pobierał listy ACL wraz z zawartością.

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

Jeśli włączono pozyskiwanie ACL dla istniejącego indeksatora, który ma już zindeksowane elementy, wywołaj /resync z parametrem options: ["permissions"], aby uzupełnić listy ACL dla tych elementów, lub użyj /resetdocs, aby ponownie wyodrębnić określone elementy.

6. Weryfikowanie pozyskiwania listy ACL

Aby potwierdzić, że wartości listy ACL zostały wypełnione poprawnie:

  1. Tymczasowo ustaw retrievable na true dla UserIds i GroupIds w definicji indeksu. Zmiana retrievable nie wymaga ponownego kompilowania indeksu.
  2. Uruchom zapytanie z podniesionymi uprawnieniami odczytu, które wybiera UserIds i GroupIds, a następnie potwierdź, że kolekcje nie są puste. W przypadku scenariuszy podzielonych na fragmenty upewnij się, że każdy fragment zawiera oba pola.
  3. Wróć retrievable do false po weryfikacji.

Konfigurowanie obsługi grup SharePoint

Począwszy od wersji 2026-05-01-preview interfejsu API REST, indeksator SharePoint może pozyskiwać informacje o członkostwie w grupach witryny SharePoint (Właściciele, Członkowie, Odwiedzający i niestandardowe grupy witryny). Uwzględnia te grupy w trakcie wykonywania zapytania. Identyfikatory grup SharePoint są umieszczane w polu metadata_group_ids z prefiksem spg:, aby odróżnić je od identyfikatorów obiektów grup w usłudze Microsoft Entra.

Ten przewodnik jest samowystarczalny: wykonaj kroki w podanej kolejności, aby skonfigurować indeks, mapowania pól indeksatora oraz wykonywać zapytania względem indeksu z wymuszaniem dla grup witryny programu SharePoint.

Następujące składniki współpracują ze sobą, aby umożliwić określanie grup witryn programu SharePoint:

Składnik Where Purpose
sharePointConnectorAppRegistration(z applicationId, , tenantIdfederatedCredentialId) Definicja indeksu Udostępnia konfigurację uwierzytelniania wymaganą dla usługi wyszukiwania w celu wywołania interfejsu API REST SharePoint jako użytkownika wywołującego i rozpoznawania członkostwa w grupie witryn w czasie wykonywania zapytania.
SharePointSiteUrl pole (z sharepointSiteUrl: true) Schemat indeksu i mapowanie pól indeksatora z metadata_spo_site_url Określa, do której witryny SharePoint należy dokument, dzięki czemu ustalanie grup SP odbywa się w prawidłowym zakresie.
wartości z prefiksem spg: w GroupIds Metadane uprawnień dokumentu Rozróżnianie identyfikatorów SharePoint grup witryn od identyfikatorów obiektów grupy Microsoft Entra.

1. Wymagania wstępne

Uwaga

FederatedCredentialApplicationId w parametrach połączenia źródła danych oraz federatedCredentialId w elemencie sharePointConnectorAppRegistration użyj identyfikatora aplikacji tożsamości zarządzanej. Właściwość applicationId w sharePointConnectorAppRegistration korzysta z identyfikatora klienta aplikacji pozyskującej. Aby znaleźć poprawne wartości, zobacz Znajdowanie prawidłowych identyfikatorów Microsoft Entra.

2. Konfigurowanie indeksu

Dodaj konfigurację sharePointConnectorAppRegistration oraz pole SharePointSiteUrl obok pól filtru uprawnień UserIds i GroupIds, aby pełna struktura indeksu była w jednym miejscu. Zachowaj 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. Konfigurowanie mapowań pól indeksatora

Przypisz pola metadanych SharePoint do pól indeksu w jednym wspólnym bloku mapowania. Pierwsze dwa mapowania są takie same jak te używane do standardowej ingestii ACL; trzecie mapowanie włącza rozpoznawanie grup SharePoint.

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

Jeśli zestaw umiejętności dzieli dokumenty na fragmenty (na przykład za pomocą umiejętności Dzielenie tekstu na potrzeby zintegrowanej wektoryzacji), zamiast tego rzutuj SharePointSiteUrl na każdy fragment za pomocą indexProjections.mappings. Zobacz Wybór miejsca wypełniania pól ACL.

4. Wykonywanie zapytań względem indeksu

Nie jest wymagana żadna zmiana po stronie klienta. Ten sam token x-ms-query-source-authorization aktywuje zarówno usługę Microsoft Entra, jak i wymuszanie dla grup witryn programu SharePoint. Usługa wyszukiwania ustala członkostwo w grupach programu SharePoint po stronie serwera za pomocą sharePointConnectorAppRegistration w indeksie.

Informacje o strukturze żądania można znaleźć w przykładzie zapytania ogólnego oraz w specyficznym dla SharePoint przykładzie z wymuszaniem grup witryn SharePoint.

5. Sprawdź

Aby potwierdzić, że identyfikatory grup SharePoint trafiły do indeksu, uruchom zapytanie elevated-read, które wybiera GroupIds, i poszukaj w odpowiedzi wartości z prefiksem spg:.

Synchronizowanie uprawnień między indeksowaną i źródłową zawartością

Począwszy od interfejsu API REST 2026-05-01-preview, zmiany listy ACL elementów z unikatowymi uprawnieniami są wykrywane i odświeżane po każdym pomyślnym uruchomieniu indeksatora. Indeksator używa tokenów zmian programu SharePoint do przyrostowego wykrywania dodawania i usuwania przypisań ról, w taki sam sposób, w jaki wykrywa zmiany zawartości.

Niektóre scenariusze nadal wymagają jawnego odświeżania:

Zmień zakres Wykryto automatycznie Zalecana akcja
Uprawnienia do określonego elementu z unikatowymi uprawnieniami (plik, element listy lub strona) Yes Nie musisz wykonywać żadnych działań. Zmiana zostanie uwzględniona przy następnym pomyślnym uruchomieniu indeksatora.
Zmiana zawartości w określonym elemencie (która powoduje również ponowną ocenę efektywnych list ACL dla tego elementu) Yes Nie musisz wykonywać żadnych działań.
Zmiany uprawnień w zakresie nadrzędnym (witryna, biblioteka, lista lub folder) dziedziczone przez elementy podrzędne No Wywołaj /resync za pomocą options: ["permissions"], aby odświeżyć listy ACL w całym źródle danych, lub wywołaj /resetdocs z odpowiednimi kluczami dokumentów, aby odświeżyć zarówno zawartość, jak i listy ACL.
Importowanie ACL włączone dla istniejącego indeksatora No Wywołaj /resync przy użyciu options: ["permissions"], aby uzupełnić listy ACL dla wcześniej zindeksowanych elementów.

Resetowanie określonych dokumentów

Możesz zresetować określone dokumenty, aby ponownie w pełni przeanalizować zawartość i listy kontroli dostępu (ACL).

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

Ponowne zsynchronizowanie list ACL w całym źródle danych

Po początkowym wprowadzeniu danych można ponownie zsynchronizować pełną zawartość ACL zbioru danych. Aby w pełni zakończyć pracę, ta operacja wymaga uruchomienia indeksatora po zakończeniu.

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

Ważne

Jeśli zmienisz uprawnienia SharePoint bez wyzwalania mechanizmu aktualizacji, indeks obsługuje nieaktualne dane ACL dla wcześniej pozyskanych plików.

Po zaindeksowaniu danych i list ACL możesz wykonać zapytanie dotyczące indeksu.

Troubleshooting

Objaw Przyczyna i rozwiązanie
UserIds lub GroupIds są puste w dokumentach indeksowanych Jeśli zestaw umiejętności używa projectionMode: skipIndexingParentDocuments, mapowania pól indeksatora dla pól ACL są pomijane. Zamiast tego ustaw pola ACL za pomocą indexProjections.mappings w każdym fragmencie.
Brak identyfikatorów grup witryn SharePoint lub GroupIds wartości nie mają prefiksu spg: Upewnij się, że indeks ma konfigurację sharePointConnectorAppRegistration, pole SharePointSiteUrl istnieje z wartością sharepointSiteUrl: true, a mapowanie metadata_spo_site_url jest obecne w mapowaniach pól indeksatora lub w projekcjach indeksu.
SharePointSiteUrl jest pusty lub ma wartość null po indeksowaniu, mimo że ACL poza tym są poprawnie wypełniane Indeksator emituje te metadane w obszarze metadata_spo_site_url, a nie metadata_sharepoint_site_url. Sprawdź, czy mapowanie pól indeksatora używa metody "sourceFieldName": "metadata_spo_site_url". Jeśli zestaw umiejętności używa projekcji indeksu dla dokumentów podzielonych na fragmenty, sprawdź, czy źródłem mapowania projekcji jest /document/metadata_spo_site_url.
Indeksator zwraca wartość 401 lub 403 Udziel zgody administratora zarówno na uprawnienia interfejsu API Microsoft Graph, jak i SharePoint dla danego scenariusza. Użyj poświadczeń federacyjnych (a nie klucza tajnego klienta), jeśli scenariusz go wymaga. Zobacz Scenariusz uprawnień według listy ACL.
Uprawnienia nie są aktualizowane po zmianie ACL witryny, biblioteki, listy lub folderu Wywołaj /resync za pomocą options: ["permissions"]. Zobacz Synchronizacja uprawnień między indeksowaną a źródłową treścią, aby poznać kontekst.
federatedCredentialId jest odrzucany podczas konfigurowania sharePointConnectorAppRegistration Użyj identyfikatora aplikacji tożsamości zarządzanej, a nie identyfikatora obiektu poświadczeń tożsamości federacyjnej ani identyfikatora głównego tożsamości zarządzanej. Zobacz Identyfikator aplikacji poświadczeń federacyjnych.
Indeksator zwraca 401 Unauthorized, a FederatedCredentialApplicationId jest ustawione Sprawdź, czy użyto identyfikatora aplikacji tożsamości zarządzanej (znajdującego się w aplikacjach dla przedsiębiorstw), a nie identyfikatora aplikacji pozyskiwania (ApplicationIdklienta) lub dowolnego identyfikatora obiektu. W przypadku tożsamości zarządzanej przypisanej przez użytkownika użyj identyfikatora klienta na stronie Właściwości zasobu tożsamości zarządzanej. Zobacz Znajdowanie prawidłowych identyfikatorów Microsoft Entra.

Aby uzyskać brakujące, nieoczekiwane lub nieudane wyniki dotyczące czasu zapytania po indeksowaniu metadanych listy ACL, zobacz Rozwiązywanie problemów z filtrowaniem uprawnień SharePoint.