Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Примечание
Поиск с использованием ИИ Azure доступна через портал Azure, REST API и Azure SDKs. Он также лежит в основе Foundry IQ — управляемого слоя знаний, который преобразует корпоративный контент в многократно используемые базы знаний с учетом разрешений доступа для агентов на портале Microsoft Foundry.
Важно
Функции, возможности или свойства, помеченные (предварительная версия), не охватываются соглашением об уровне обслуживания, не рекомендуются для рабочих нагрузок и могут изменяться или ограничиваться до того, как они становятся общедоступными. Условия предварительной версии Поиск с использованием ИИ Azure применяются ко всем функциям предварительной версии, независимо от того, является ли он автономным или частью общедоступной функции.
При приеме метаданных разрешений SharePoint (предварительная версия) используется индексатор Поиск с использованием ИИ Azure для сохранения метаданных разрешений, таких как списки управления доступом (ACL), наряду с другим содержимым из SharePoint в Microsoft 365. Индексатор сохраняет разрешения в виде метаданных для каждого индексированного документа. Во время запроса пользователи получают только документы, к которых у них есть разрешение на доступ.
Важно
Для сценариев, требующих полной модели разрешений SharePoint, меток конфиденциальности и встроенной настройки безопасности, используйте источник знаний удаленной SharePoint. Этот подход вызывает SharePoint прямо через API извлечения Copilot. Управление остается полностью в SharePoint, и результаты запросов автоматически учитывают все применимые разрешения и метки.
Необходимые условия
Поиск с использованием ИИ Azure на оплачиваемом уровне (базовый или выше) в любом регионе.
SharePoint в Microsoft 365 сайтах, библиотеках, папках и файлах с настроенными разрешениями.
Выполните все действия по настройке в документации по индексатору SharePoint, применяя требования для ACL, описанные в этой статье.
Настройте Microsoft Entra разрешения приложения и учетные данные, соответствующие вашему сценарию. См. сценарий «Права доступа по ACL». Прием ACL требует разрешений приложения. Делегированные разрешения не поддерживаются. Сведения о выборе между разрешениями приложения и делегированными разрешениями см. в разделе Выбор конфигурации разрешений.
REST API версии 2026-08-01-preview или эквивалентный пакет sdk для предварительной версии.
Ограничения
Для инкрементальных обновлений ACL требуется REST API версии 2026-05-01-preview или более поздней. В предыдущих предварительных версиях API система фиксирует ACL только при первой загрузке каждого элемента. Последующие изменения разрешений требуют явного переиндексирования. Инструкции по миграции см. в разделе "Синхронизация разрешений" между индексированных и исходным содержимым.
Изменения разрешений в родительской области видимости не учитываются автоматически при последующих запусках индексатора. Параметры обновления см. в разделе "Синхронизация разрешений" между индексированных и исходным содержимым.
Портал Azure не поддерживает эту функцию.
В этой предварительной версии не поддерживаются следующие функции:
политики SharePoint Information Management применимы к доступу пользователей. Система не оценивает, не обрабатывает и не учитывает эти политики во время выполнения запроса.
Ссылки, доступные для совместного использования, могут быть настроены для "Любых пользователей" или "Людей в вашей организации". Поддерживаются только ссылки, настроенные для "Определенных людей".
Группы SharePoint (например, группы Owners, Members и Visitors) поддерживаются начиная с версии REST API 2026-05-01-preview. См. раздел Настройка поддержки групп SharePoint. В более ранних предварительных версиях API поддерживаются только группы SharePoint, которые сопоставляются с группами Microsoft Entra.
Следующие функции индексатора не поддерживают наследование разрешений в индексированных документах, исходящих из SharePoint. Если вы используете какие-либо из этих функций в наборе навыков или индексаторе, разрешения на уровне документа не включаются в индексированное содержимое.
Хранилище знаний, включая хранилище ресурсов, необходимое для обслуживания изображений (предварительная версия) в агентическом извлечении. Поэтому выдача изображений не поддерживается для источников знаний, которые используют ACL SharePoint.
Поддержка модели разрешений SharePoint
Эта предварительная версия поддерживает базовые списки управления доступом для документов, элементов списка и современных страниц сайта ASPX.
| Функция SharePoint | Описание | Поддерживается | Заметки |
|---|---|---|---|
| Наследование сайтов, библиотек, списков и страниц | Сайт → библиотека/список → папка → файл/элемент/страница. | ✔️ | Оценивается при загрузке; эффективные списки управления доступом вычисляются для каждого элемента. |
| Уникальные ACL для папки, файла, элемента списка и страницы | Доступ на уровне элемента. | ✔️ | Включается при первом приеме данных и при последующих запусках, в ходе которых обнаруживаются изменения в ACL элементов с уникальными разрешениями. |
| элементы списка SharePoint | Разрешения на элементы списка (allSiteLists и allSiteContent контейнеры). |
✔️ | Предварительная версия, начиная с REST API 2026-05-01-preview. |
| Страницы сайта ASPX | Разрешения на современных страницах сайта (allSitePages и allSiteContent контейнерах). |
✔️ | Предварительная версия, начиная с REST API 2026-05-01-preview. |
| группы Microsoft Entra (Microsoft 365 и безопасность) | Групповой доступ. | ✔️ | Идентификаторы групп включаются, если их можно сопоставить с идентификатором Microsoft Entra (ID). |
| группы сайтов SharePoint | Владельцы/участники/посетители и настраиваемые группы сайта. | ✔️ | Предварительная версия, начиная с REST API 2026-05-01-preview. Требуется конфигурация групп SharePoint. Идентификаторы групп формируются с префиксом spg:. |
| Доступные ссылки "Для всех" или "Для людей в вашей организации" | Организационный или общедоступный доступ. | ❌ | Не поддерживается в предварительной версии. |
| Внешние или гостевые пользователи | Доступ для гостей. | ❌ | Не поддерживается. |
| Политики управления информацией | Политики для определения конкретных требований к разрешениям. | ❌ | Не поддерживается в предварительной версии. |
| Метки конфиденциальности Purview | Безопасность на уровне документа для конфиденциальности, классификации, разрешений и шифрования | ❌ | Поддерживается с помощью отдельной функции: сохранение и соблюдение меток конфиденциальности. |
Поддерживаемые отношения между группами
Транзитивность групп в Microsoft Entra действует в пределах Microsoft Entra. Он не расширяет Microsoft Entra группы, которые являются членами групп SharePoint.
| Отношение разрешений | Поддерживается | Руководство |
|---|---|---|
| Пользователь или группа Microsoft Entra, назначенная непосредственно элементу SharePoint | Да | Индексатор сохраняет идентификатор объекта пользователя или группы Microsoft Entra в метаданных разрешений элемента. |
| Пользователь попадает в назначенную группу Microsoft Entra благодаря транзитивной вложенности групп Microsoft Entra | Да | При выполнении запроса разрешение через Microsoft Graph расширяет транзитивное членство пользователя в группах Microsoft Entra. |
| Пользователь, назначенный непосредственно группе сайтов SharePoint с доступом к элементу | Да | Настройте поддержку групп SharePoint. |
| группа Microsoft Entra, вложенная в группу SharePoint | Нет | группа SharePoint разрешение не расширяет вложенную группу Microsoft Entra. Результаты, зависящие от этой связи, исключаются из результатов. Добавьте пользователей непосредственно в группу SharePoint или предоставьте доступ через поддерживаемое назначение группы Microsoft Entra. |
| Другие смешанные SharePoint и Microsoft Entra направления вложений | Не указано | Не делайте вывод о поддержке на основании транзитивности Microsoft Entra. Это ограничение в предварительной версии распространяется только на группы Microsoft Entra, вложенные в группы SharePoint. |
Как оцениваются иерархические разрешения
Разрешения в SharePoint наследуются в иерархии Сайт → Библиотека → Папка → Файл, если наследование не нарушено.
Во время обработки индексатор собирает идентификаторы пользователей и групп (ID) на каждом уровне и вычисляет действующий список управления доступом (ACL) для каждого файла.
Разрешения по сценарию ACL
Разрешения приложения Microsoft Entra и тип учетных данных, необходимые для приема списков управления доступом (ACL), зависят от того, какие типы элементов и групп вы индексируете. При регистрации приложения все разрешения добавляются в разделе ">Разрешения API", а федеративные учетные данные добавляются в разделе "Сертификаты и секреты>федеративных учетных данных". Пошаговые инструкции и снимки экрана см. в разделах Шаг 3: Создание регистрации приложения Microsoft Entra и Настройка зарегистрированного приложения с управляемой идентификацией.
| Сценарий | Разрешения API для добавления | Удостоверение |
|---|---|---|
| Списки управления доступом (ACL) для файлов в библиотеке документов, если доступ предоставляется только пользователям Microsoft Entra и стандартным группам (группы безопасности Microsoft Entra, группы Microsoft 365, группы безопасности с поддержкой почты) |
Microsoft Graph: Files.Read.All, Sites.FullControl.All (или Sites.Selected для ограниченного доступа) |
Секрет клиента или федеративные учетные данные |
| Списки управления доступом (ACL) к файлам библиотеки документов, когда также должны учитываться группы сайта SharePoint (Владельцы, Участники, Посетители или пользовательские группы сайта) |
Microsoft Graph: Files.Read.All, Sites.FullControl.All (или Sites.Selected)SharePoint: Sites.FullControl.All (или Sites.Selected) |
Федеративные учетные данные (обязательные) |
| Списки управления доступом для элементов списка SharePoint |
Microsoft Graph: Files.Read.All, Sites.FullControl.All (или Sites.Selected), User.Read.AllSharePoint: Sites.FullControl.All (или Sites.Selected) |
Федеративные учетные данные (обязательные) |
| Содержимое и списки управления доступом на страницах сайта ASPX |
Microsoft Graph: Sites.FullControl.All (или Sites.Selected), User.Read.All (сохраняйте Files.Read.All из строк выше, если вы также индексируете библиотеки документов или списки)SharePoint: Sites.FullControl.All (или Sites.Selected) |
Федеративные учетные данные (обязательные) |
Определение групп сайтов SharePoint во время выполнения запроса с помощью sharePointConnectorAppRegistration |
Добавьте SharePoint: User.Read.All в ту же регистрацию приложения, которую использует индексатор. |
Федеративные учетные данные (обязательные) |
Примечание
При добавлении разрешения можно выбрать между двумя поверхностями API: Microsoft Graph и SharePoint. Оба предоставляют одинаковые именованные разрешения. Например,
Sites.FullControl.Allприсутствует в обоих. Добавьте каждое разрешение в область API, указанную в таблице.Используйте федеративные учетные данные всякий раз, когда сценарий добавляет разрешения API SharePoint. Секреты клиента работают только для строки библиотеки документов, поддерживающей только Microsoft Graph.
User.Read.Allтребуется для элементов списка и страниц сайта ASPX, так как индексатор считывает эти разрешения через REST API SharePoint, который возвращает только электронную почту пользователя. Затем индексатор вызывает Microsoft Graph, чтобы сопоставить каждый адрес электронной почты с его идентификатором объекта Microsoft Entra, и для такого поиска требуетсяUser.Read.All.При использовании
Sites.Selectedпредоставьте приложению явный доступ к каждому целевому сайту SharePoint перед индексированием.
Федеративные учетные данные используются для аутентификации приложения с помощью доверенной управляемой идентичности вместо клиентского секрета. Те же федеративные учетные данные используются как для приема данных (индексатором), так и для оценки групп сайтов SharePoint во время выполнения запроса. Инструкции по настройке см. в разделе "Настройка зарегистрированного приложения с помощью управляемого удостоверения".
Перед включением приема данных ACL
Выполните следующие действия в зарегистрированном приложении Microsoft Entra:
- Определите сценарий в предыдущей таблице на основе того, что планируется индексировать (файлы библиотек документов, элементы списка, страницы сайта ASPX) и следует ли учитывать группы сайтов SharePoint.
- Откройте регистрацию приложения в Центр администрирования Microsoft Entra и перейдите к разрешениям API>Add a permission.
- Добавьте разрешения Microsoft Graph, перечисленные в вашем сценарии. Предоставьте согласие администратора.
- Если для сценария также требуются разрешения SharePoint, выберите Add a permission еще раз, выберите API SharePoint и добавьте
Sites.FullControl.All(илиSites.Selected). Предоставьте согласие администратора. - Настройте учетные данные:
- Для сценариев, использующих только Microsoft Graph, можно использовать либо секрет клиента (Certificates & secrets>Client secrets), либо федеративные учетные данные.
- Для любого сценария, включающего разрешения SharePoint, добавьте учетные данные федерации в раздел Сертификаты и секреты>Учетные данные федерации. См. статью "Настройка зарегистрированного приложения с помощью управляемого удостоверения".
- Предоставьте приложению доступ к целевым сайтам SharePoint (особенно важно при использовании
Sites.Selectedдля ограниченного доступа), чтобы он смог прочитать содержимое и разрешения, которые требуется индексировать.
Поиск правильных идентификаторов Microsoft Entra
Каждый идентификатор отображается в другом расположении на портале Azure и сопоставляется с определенным полем конфигурации. Используйте этот раздел как справочный материал при настройке загрузки ACL SharePoint с использованием федеративных учетных данных. Эти идентификаторы упоминаются в Настройка поддержки групп SharePoint и в строке подключения источника данных.
| Идентификатор | Расположение портала | Используется, где | Заметки |
|---|---|---|---|
| Идентификатор приложения для приема данных (клиента) |
Регистрации приложений><your-app>>Обзор |
ApplicationId в строке подключения к источнику данных; applicationId в sharePointConnectorAppRegistration |
Этот идентификатор правильно подходит для большинства полей конфигурации. Также называется идентификатором клиента. |
| Идентификатор объекта приложения |
Регистрации приложений><your-app>>Обзор (под идентификатором приложения (клиента)) |
Не используется в конфигурации Поиск с использованием ИИ Azure | Не путайте это с идентификатором приложения (клиента). Он отображается в той же области, непосредственно под идентификатором клиента. |
| Идентификатор объекта субъекта-службы |
Microsoft Entra ID>Корпоративные приложения><your-app>>Управление>Свойства |
Не используется в конфигурации Поиск с использованием ИИ Azure | Это представление субъекта-службы приложения. Это другой GUID, а не идентификатор объекта регистрации приложения. |
| Идентификатор субъекта управляемого удостоверения | ресурс управляемого удостоверения > или вкладка Удостоверение службы поиска | Не используется непосредственно в конфигурации источника данных или индекса Поиск с использованием ИИ Azure | Используется системой при настройке учетных данных федеративной идентификации в регистрации приложения. Создаваемые вами учетные данные доверяют этому идентификатору. |
| Идентификатор объекта федеративных учетных данных |
Регистрации приложений>><your-app>Управление>Сертификаты & секреты>Федеративные учетные данные><credential-name> |
Не используется в конфигурации Поиск с использованием ИИ Azure | Не используйте GUID для записи federatedCredentialIdучетных данных федеративного удостоверения. |
| Идентификатор приложения федеративных учетных данных | Назначаемое системой: Microsoft Entra ID<search-service>>>>; Назначаемое пользователем: <managed-identity-resource>> |
FederatedCredentialApplicationId в строке подключения к источнику данных; federatedCredentialId в sharePointConnectorAppRegistration |
См. идентификатор приложения федеративных учетных данных для поиска управляемого удостоверения. |
Идентификатор приложения федеративных учетных данных
Для FederatedCredentialApplicationId в строке подключения источника данных и federatedCredentialId в определении индекса используйте идентификатор собственного приложения (клиента) управляемой идентификации, а не идентификатор приложения для приема данных.
Системное управляемое удостоверение:
- Перейдите в службу Поиск с использованием ИИ Azure.
- Выберите Безопасность и сеть>Идентификация.
- На вкладке "Назначаемая системой " обратите внимание на идентификатор объекта (субъекта).
- Перейдите в Microsoft Entra ID>Управление>Корпоративные приложения.
- Найдите имя службы поиска или вставьте идентификатор объекта (субъекта) в поле поиска.
- Выберите результат и откройте свойства. Скопируйте идентификатор приложения , показанный здесь, что является значением
FederatedCredentialApplicationIdв источнике данных иfederatedCredentialIdв индексе.
Управляемая идентичность, назначаемая пользователем:
- Перейдите к ресурсу управляемой идентификации, назначенной пользователем.
- Выберите Параметры>Свойства.
- Скопируйте идентификатор клиента, который является значением
FederatedCredentialApplicationIdв источнике данных иfederatedCredentialIdв индексе.
Настройте службу поиска для приема ACL и применения проверок доступа во время выполнения запросов
Эти шаги настраивают службу поиска для приема ACL и обеспечения их соблюдения во время запросов.
Выбор места для заполнения полей ACL
Где вы сопоставляете поля метаданных ACL, зависит от того, записывает ли индексатор один документ на исходный элемент или несколько блоков на исходный элемент.
| Сценарий | Заполните поля ACL через | Почему |
|---|---|---|
| Без набора навыков или с набором навыков без разбиения на фрагменты; один поисковый документ для каждого элемента источника |
Сопоставления полей индексатора только (metadata_user_ids → UserIds, metadata_group_ids → GroupIds, и для групп SharePoint metadata_spo_site_url → SharePointSiteUrl). |
Индексатор записывает один документ в целевой индекс, а сопоставления полей переносят исходные метаданные в поля индекса. |
Набор навыков с разбиением на фрагменты (например, навык разделения текста для интегрированной векторизации), единый индекс с родительскими полями, повторяющимися в каждом фрагменте (projectionMode: skipIndexingParentDocuments) |
Проекции индекса в наборе навыков (mappings из /document/metadata_user_ids, /document/metadata_group_ids и для групп SharePoint /document/metadata_spo_site_url). |
Родительский документ не индексируется; индексируются только фрагменты. Значения ACL необходимо проецировать на каждый блок, чтобы фильтры во время запроса применялись к блоку, возвращенном в результатах. Сопоставления полей индексатора для этих полей игнорируются в этом режиме. |
| Набор навыков с разбиением на блоки, схема с двумя индексами (родительский индекс + индекс дочерних блоков) | В обоих случаях: сопоставления полей индексатора заполняют поля ACL в родительском индексе, а проекции индекса заполняют поля ACL в дочернем индексе фрагментов. | Оба индекса доступны для запроса, и каждый из них нуждается в метаданных, которые он фильтрует. |
Во всех сценариях с разбиением на части каждая часть должна содержать поля ACL. Фильтры прав доступа применяются к каждому документу, поэтому фрагмент без полей ACL не может быть возвращён правильному вызывающему объекту.
1. Конфигурация источника данных
Этот раздел дополняет базовое руководство Шаг 4: Создание источника данных. Установите
{
"name": "my-sharepoint-acl-datasource",
"type": "sharepoint",
"indexerPermissionOptions": ["userIds", "groupIds"],
"credentials": {
"connectionString": "<connection-string>;"
},
"container": {
"name": "<library-name>",
"query": "<optional-folder-path>"
}
}
2. Добавление полей разрешений в определение индекса
Добавьте поля в определение схемы индекса для хранения списков управления доступом и поддержки фильтрации во время запроса.
{
"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"
}
Установите атрибут retrievable только true во время разработки, чтобы проверить значения. Вы можете изменить свойство retrievable с true на false без необходимости перестроения индекса.
3. Настройка проекций индекса в наборе навыков (если применимо)
Когда разбиение на фрагменты включено, родительский документ не записывается в индекс, когда projectionMode включено skipIndexingParentDocuments. Перенесите метаданные ACL на каждый фрагмент через indexProjections.selectors[].mappings.
Если индексатор использует набор навыков с разбиением данных на фрагменты, например навык Text Split при включении интегрированной векторизации, обязательно сопоставьте свойства ACL для каждого фрагмента с помощью проекций индекса. Строки // в следующем примере приведены только как пояснительные аннотации и не являются допустимым JSON. Удалите их перед отправкой запроса.
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 и SharePointSiteUrl считывают метаданные уровня источника, передаваемые индексатором SharePoint (/document/metadata_*), и записывают эти значения в каждый фрагмент.
4. Настройте сопоставления полей индексатора для ACL (списков контроля доступа)
Используйте сопоставления полей индексатора, когда индексатор записывает один документ для каждого исходного элемента (без разбиения на фрагменты) или если вы поддерживаете отдельный родительский индекс наряду с индексом фрагментов. Если ваш набор навыков разбивает документы на фрагменты в единый целевой индекс с projectionMode: skipIndexingParentDocuments, показанные здесь сопоставления полей заменяются элементом indexProjections.mappings из предыдущего шага для индекса фрагментов.
Помимо требуемой конфигурации индексатора, сопоставьте исходные поля ACL метаданных из SharePoint с полями индекса.
{
"fieldMappings": [
{ "sourceFieldName": "metadata_user_ids", "targetFieldName": "UserIds" },
{ "sourceFieldName": "metadata_group_ids", "targetFieldName": "GroupIds" }
]
}
5. Запустите индексатор
Метаданные ACL подается при запуске индексатора. После создания или обновления индексатора (см. Шаг 6. Создание индексатора) запустите его, чтобы индексатор обработал списки управления доступом (ACL) вместе с содержимым.
POST https://[service name].search.windows.net/indexers/[indexer-name]/run?api-version=2026-08-01-preview
api-key: [admin key]
Если вы включили прием списков ACL для существующего индексатора, который уже проиндексировал элементы, вызовите /resync с options: ["permissions"], чтобы выполнить обратное заполнение списков ACL для этих элементов, или /resetdocs, чтобы повторно извлечь определенные элементы.
6. Проверьте прием ACL
Чтобы подтвердить правильное заполнение значений ACL, выполните следующие действия.
- Временно установите для
retrievableзначениеtrueдляUserIdsиGroupIdsв определении индекса. Для измененияretrievableне требуется перестроение индекса. - Выполните запрос на чтение с повышенными привилегиями, который выбирает
UserIdsиGroupIds, и убедитесь, что коллекции не пусты. Для фрагментированных сценариев убедитесь, что каждый блок содержит оба поля. - Верните
retrievableвfalseпосле проверки.
Настройка поддержки групп SharePoint
Начиная с REST API версии 2026-05-01-preview, индексатор SharePoint может принимать сведения о членстве в группах сайтов SharePoint («Владельцы», «Участники», «Посетители» и настраиваемые группы сайтов). Он учитывает эти группы при выполнении запроса. Идентификаторы групп SharePoint выводятся в поле metadata_group_ids с префиксом spg:, чтобы отличать их от идентификаторов объектов групп Microsoft Entra.
Это пошаговое руководство содержит всё необходимое: выполните шаги по порядку, чтобы настроить индекс, сопоставления полей индексатора и выполнить запрос к индексу с применением ограничений по группам сайта SharePoint.
Следующие компоненты совместно обеспечивают сопоставление групп сайта SharePoint:
| Компонент | Where | Purpose |
|---|---|---|
sharePointConnectorAppRegistration (с applicationId, tenantId, federatedCredentialId) |
Определение индекса | Предоставляет конфигурацию проверки подлинности, необходимую для службы поиска для вызова SharePoint REST API в качестве вызывающего пользователя и разрешения членства в группе сайтов во время запроса. |
SharePointSiteUrl поле (с sharepointSiteUrl: true) |
Схема индекса и сопоставление полей индексатора из metadata_spo_site_url |
Определяет, к какому сайту SharePoint относится документ, чтобы разрешение группы SP выполнялось в правильной области видимости. |
значения с префиксом spg: в GroupIds |
Метаданные разрешений документа | Различает идентификаторы групп сайта SharePoint от идентификаторов объектов группы Microsoft Entra. |
1. Предварительные требования
- SharePoint индексатор уже настроен для приема ACL. См. Настройка сопоставлений полей индексатора для списков управления доступом.
- Регистрация приложения Microsoft Entra с учетными данными федеративной идентификации. См. статью "Настройка зарегистрированного приложения с помощью управляемого удостоверения".
- REST API
2026-05-01-previewили более поздняя версия.
Примечание
FederatedCredentialApplicationId в строке подключения источника данных и federatedCredentialId в sharePointConnectorAppRegistration используйте идентификатор приложения управляемой идентификации. Свойство applicationId в sharePointConnectorAppRegistration использует идентификатор клиента приложения приема данных. Чтобы найти правильные значения, см. раздел "Поиск правильных Microsoft Entra идентификаторов".
2. Настройка индекса
Добавьте sharePointConnectorAppRegistration конфигурацию и поле SharePointSiteUrl рядом с полями фильтра разрешений UserIds и GroupIds, чтобы полная структура индекса находилась в одном месте. Сохраняйте 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. Настройка сопоставлений полей индексатора
Сопоставить поля метаданных SharePoint с полями индекса в одном объединенном блоке сопоставления. Первые два сопоставления — это те же сопоставления, что используются для стандартной загрузки ACL; третье сопоставление активирует разрешение групп SharePoint.
{
"fieldMappings": [
{ "sourceFieldName": "metadata_user_ids", "targetFieldName": "UserIds" },
{ "sourceFieldName": "metadata_group_ids", "targetFieldName": "GroupIds" },
{ "sourceFieldName": "metadata_spo_site_url", "targetFieldName": "SharePointSiteUrl" }
]
}
Если ваш набор навыков разбивает документы на фрагменты (например, с помощью навыка разделения текста для интегрированной векторизации), вместо этого спроецируйте SharePointSiteUrl на каждый фрагмент с помощью indexProjections.mappings. См. раздел "Выбор места для заполнения полей ACL".
4. Запрос индекса
Никаких изменений на стороне клиента не требуется. Один и тот же токен x-ms-query-source-authorization активирует и Microsoft Entra, и принудительное применение для группы сайтов SharePoint. Служба поиска определяет членство в группах SharePoint на стороне сервера с помощью sharePointConnectorAppRegistration в индексе.
Структуру запроса см. в примере общего запроса и в примере для SharePoint с принудительным применением групп сайта SharePoint.
5. Проверка
Чтобы подтвердить, что идентификаторы групп SharePoint попали в индекс, выполните запрос elevated-read query с выборкой GroupIds и найдите в ответе значения с префиксом spg:.
Синхронизируйте разрешения между индексированным и исходным содержимым.
Начиная с REST API 2026-05-01-preview, изменения ACL для элементов с уникальными разрешениями обнаруживаются и обновляются при каждом успешном запуске индексатора. Индексатор использует маркеры изменений SharePoint, чтобы инкрементно отслеживать добавление и удаление назначений ролей, точно так же, как он отслеживает изменения содержимого.
Для некоторых сценариев по-прежнему требуется явное обновление:
| Изменить область действия | Обнаружено автоматически | Рекомендуемое действие |
|---|---|---|
| Разрешения для определенного элемента с уникальными разрешениями (файл, элемент списка или страница) | Да | Действия не требуется. Изменение будет обнаружено при следующем успешном запуске индексатора. |
| Изменение содержания в конкретном элементе (что также приводит к повторной оценке эффективных ACL для этого элемента) | Да | Действия не требуется. |
| Изменения разрешений в родительском объекте (сайт, библиотека, список или папка), наследуемых дочерними элементами | Нет | Вызовите /resync с options: ["permissions"], чтобы обновить списки управления доступом во всём источнике данных, либо вызовите /resetdocs с затронутыми ключами документов, чтобы обновить и содержимое, и списки управления доступом. |
| Приём ACL включён для существующего индексатора | Нет | Вызовите /resync с options: ["permissions"], чтобы ретроспективно заполнить ACL для ранее проиндексированных элементов. |
Сброс определенных документов
Вы можете сбросить определенные документы для повторного включения содержимого и списков контроля доступа.
POST https://{service}.search.windows.net/indexers/{indexer}/resetdocs?api-version=2026-08-01-preview
{
"documentKeys": ["doc123", "doc456"]
}
Пересинхронизировать списки управления доступом по всему источнику данных
После первичной загрузки можно повторно синхронизировать ACL содержимого полного набора данных. Для полного успеха эта операция требует запуска индексатора после завершения.
POST https://{service}.search.windows.net/indexers/{indexer}/resync?api-version=2026-08-01-preview
{
"options": ["permissions"]
}
Важно
При изменении разрешений SharePoint без инициирования механизма обновления индекс обслуживает устаревшие данные управления доступом для ранее обработанных файлов.
После индексирования данных и списков управления доступом можно выполнить запрос к индексу.
Troubleshooting
| Симптом | Причина и разрешение |
|---|---|
UserIds или GroupIds пусты в индексированных документах |
Если в вашем наборе навыков используется projectionMode: skipIndexingParentDocuments, сопоставления полей индексатора для полей ACL игнорируются. Вместо этого задайте поля ACL через indexProjections.mappings для каждого фрагмента. |
SharePoint идентификаторы группы сайтов отсутствуют или значения GroupIds не имеют префикса spg: |
Убедитесь, что индекс имеет конфигурацию sharePointConnectorAppRegistration, поле SharePointSiteUrl существует с sharepointSiteUrl: true, а сопоставление metadata_spo_site_url присутствует либо в сопоставлениях полей индексатора, либо в проекциях индекса. |
SharePointSiteUrl пуст или имеет значение null после индексации, хотя в остальном ACL заполняются корректно |
Индексатор выдает эти метаданные в metadata_spo_site_urlразделе , а не metadata_sharepoint_site_url. Убедитесь, что сопоставление полей индексатора использует "sourceFieldName": "metadata_spo_site_url". Если в наборе навыков используются проекции индексов для фрагментированных документов, убедитесь, что источник сопоставления проекций является /document/metadata_spo_site_url. |
| Индексатор возвращает 401 или 403 | Предоставьте согласие от имени администратора для разрешений API Microsoft Graph и SharePoint в вашем сценарии. Используйте федеративные учетные данные (а не секрет клиента), если сценарий требует его. См. сценарий «Права доступа по ACL». |
| Разрешения являются устаревшими после изменения сайта, библиотеки, списка или папки ACL | Вызовите /resync с помощью options: ["permissions"]. См. Синхронизация разрешений между индексированным и исходным содержимым для получения контекста. |
federatedCredentialId не принимается при настройке sharePointConnectorAppRegistration |
Используйте идентификатор приложения управляемой идентичности, а не идентификатор объекта учетных данных федеративной идентификации или идентификатор субъекта управляемой идентичности. См. идентификатор приложения федеративных учетных данных. |
Индексатор возвращает 401 Unauthorized, а для FederatedCredentialApplicationId задано значение |
Убедитесь, что вы использовали идентификатор приложения управляемого удостоверения (найденный в корпоративных приложениях), а не идентификаторApplicationId приложения приема (клиента) или любой идентификатор объекта. Для управляемого удостоверения, назначенного пользователем, используйте Идентификатор клиента со страницы «Свойства» ресурса управляемого удостоверения.
Ознакомьтесь с правильными идентификаторами Microsoft Entra. |
Если после индексации метаданных ACL отсутствуют ожидаемые результаты, появляются неожиданные результаты или возникают сбои при получении результатов во время запроса, см. раздел Устранение неполадок фильтрации разрешений SharePoint.
Связанное содержимое
- Индексировать содержимое SharePoint в Поиск с использованием ИИ Azure (предварительная версия)
- Принудительное применение ACL во время запроса