Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Note
Recherche Azure AI est disponible via le portail Azure, les API REST et les SDK Azure. Il sous-tend également Foundry IQ, la couche de connaissances managée qui transforme le contenu d’entreprise en bases de connaissances réutilisables et prenant en charge les autorisations pour les agents dans le portail Microsoft Foundry.
Important
Les fonctionnalités, capacités ou propriétés marquées (préversion) ne sont pas couvertes par un accord de niveau de service, ne sont pas recommandées pour les workloads de production et peuvent être modifiées ou faire l’objet de restrictions avant leur mise à disposition générale. Les Recherche Azure AI termes de la préversion s'appliquent à toutes les fonctionnalités d'aperçu, qu'il s'agisse d'une fonctionnalité autonome ou d'une partie d'une fonctionnalité généralement disponible.
L’ingestion des métadonnées d’autorisation de SharePoint (version préliminaire) utilise un indexeur Recherche Azure AI pour conserver les métadonnées d’autorisation, telles que les listes de contrôle d’accès (ACL), en plus des autres contenus provenant de SharePoint dans Microsoft 365. L’indexeur stocke les autorisations sous forme de métadonnées sur chaque document indexé. Au moment de la requête, les utilisateurs reçoivent uniquement les documents auxquels ils sont autorisés à accéder.
Important
Pour les scénarios nécessitant le modèle complet d’autorisations de SharePoint, les étiquettes de sensibilité et le découpage de sécurité prêt à l’emploi, utilisez une source de connaissances SharePoint distante. Cette approche appelle SharePoint directement via l’API de récupération Copilot. La gouvernance reste entièrement en SharePoint et les résultats des requêtes respectent automatiquement toutes les autorisations et étiquettes applicables.
Conditions préalables
Recherche Azure AI sur un niveau facturable (De base ou supérieur) dans n’importe quelle région.
SharePoint dans Microsoft 365 sites, bibliothèques, dossiers et fichiers avec des autorisations configurées.
Effectuez toutes les étapes de configuration de la documentation de l’indexeur SharePoint, en appliquant les exigences spécifiques à la liste de contrôle d’accès décrites dans cet article.
Configurez les autorisations d’application Microsoft Entra et les informations d’identification appropriées pour votre scénario. Consultez le scénario des autorisations par ACL. L’ingestion des ACL nécessite des autorisations d’application. Les autorisations déléguées ne sont pas prises en charge. Pour en savoir plus sur le choix entre les autorisations d’application et les autorisations déléguées, consultez Choisir votre configuration d’autorisations.
API REST version 2026-08-01-preview ou un package de SDK d’évaluation équivalent.
Limitations
Les mises à jour incrémentielles de liste de contrôle d’accès nécessitent l’API REST 2026-05-01-preview ou une version ultérieure. Dans les versions antérieures de l’API en préversion, le système capture uniquement les listes de contrôle d’accès sur la première ingestion de chaque élément. Les modifications d’autorisation ultérieures nécessitent une réindexation explicite. Pour connaître les étapes de migration, consultez Synchroniser les autorisations entre le contenu indexé et le contenu source.
Les modifications des autorisations au niveau du parent ne sont pas prises en compte automatiquement lors des exécutions ultérieures de l’indexeur. Pour connaître les options d’actualisation, consultez Synchroniser les autorisations entre le contenu indexé et le contenu source.
Le portail Azure ne prend pas en charge cette fonctionnalité.
Les fonctionnalités suivantes ne sont pas prises en charge dans cette préversion :
Politiques de gestion de l'information de SharePoint applicables à l'accès des utilisateurs. Le système n’évalue pas, n’ingère pas ou n’honore pas ces stratégies au moment de la requête.
Liens partageables délimités à « Tout le monde » ou « Personnes de votre organisation ». Seuls les liens limités à « Personnes spécifiques » sont pris en charge.
Les groupes SharePoint (tels que les groupes Propriétaires, Membres et Visiteurs) sont pris en charge à compter de l’API REST 2026-05-01-preview. Consultez Configurer la prise en charge des groupes SharePoint. Dans les versions antérieures de l’API en préversion, seuls les groupes SharePoint qui se résolvent en groupes Microsoft Entra sont pris en charge.
Les fonctionnalités d'indexeur suivantes ne prennent pas en charge l'héritage des autorisations dans les documents indexés provenant de SharePoint. Si vous utilisez l’une de ces fonctionnalités dans un ensemble de compétences ou un indexeur, les autorisations au niveau du document ne sont pas incluses dans le contenu indexé.
Base de connaissances, y compris le magasin d’actifs requis pour le service d’images (version préliminaire) dans la récupération agentique. Par conséquent, le service d’image n’est pas pris en charge pour les sources de connaissances qui ingèrent des ACL SharePoint.
Prise en charge du modèle d’autorisation SharePoint
Cette préversion prend en charge les listes de contrôle d’accès de base pour les documents, les éléments de liste et les pages de site ASPX modernes.
| Fonctionnalité SharePoint | Description | Soutenu | Notes |
|---|---|---|---|
| Héritage au niveau du site, de la bibliothèque, de la liste et de la page | Site → bibliothèque/liste → dossier → fichier/élément/page. | ✔️ | Évalué à l’ingestion ; ACL effectives calculées par élément. |
| ACL uniques des dossiers, fichiers, éléments de liste et pages | Accès au niveau de l’élément. | ✔️ | Inclus lorsqu’ils sont présents lors de la première ingestion et lors des exécutions ultérieures qui détectent des modifications des ACL pour les éléments dotés d’autorisations uniques. |
| Éléments de liste SharePoint | Autorisations sur les éléments de liste (allSiteLists) et sur les conteneurs (allSiteContent). |
✔️ | Disponible en préversion à compter de la version 2026-05-01-preview de l’API REST. |
| Pages de site ASPX | Autorisations sur les pages de site modernes (allSitePages et allSiteContent conteneurs). |
✔️ | Disponible en préversion à compter de la version 2026-05-01-preview de l’API REST. |
| groupes Microsoft Entra (Microsoft 365 et sécurité) | Accès basé sur un groupe. | ✔️ | Les ID de groupe sont inclus lorsqu’ils peuvent être résolus en un ID Microsoft Entra. |
| groupes de sites SharePoint | Propriétaires/Membres/Visiteurs et groupes de sites personnalisés. | ✔️ | Disponible en préversion à compter de la version 2026-05-01-preview de l’API REST. Nécessite la configuration des groupes SharePoint. Les ID de groupe sont émis avec le spg: préfixe. |
| Partageable « Liens pour tous » ou « Liens pour les membres de votre organisation » | Accès public ou à l’échelle de l’organisation. | ❌ | Non pris en charge dans la version préliminaire. |
| Utilisateurs externes/invités | Accès pour les invités. | ❌ | Non pris en charge. |
| Stratégies de gestion des informations | Stratégies pour définir des exigences d’autorisations spécifiques. | ❌ | Non pris en charge dans la version préliminaire. |
| Étiquettes de sensibilité Purview | Sécurité au niveau du document pour la confidentialité, la catégorisation, les autorisations et le chiffrement | ❌ | Prise en charge par le biais d’une fonctionnalité distincte : conservation et respect des étiquettes de confidentialité. |
Relations de groupe prises en charge
La transitivité des groupes Microsoft Entra s’applique au sein de Microsoft Entra. Elle ne développe pas les groupes Microsoft Entra qui sont membres de groupes SharePoint.
| Relation entre autorisations | Soutenu | Conseils |
|---|---|---|
| Utilisateur ou groupe Microsoft Entra affecté directement à l’élément SharePoint | Oui | L’indexeur stocke l’ID d’objet de l’utilisateur ou du groupe Microsoft Entra dans les métadonnées d’autorisation de l’élément. |
| L’utilisateur accède à un groupe Microsoft Entra attribué via l’imbrication transitive de groupes Microsoft Entra | Oui | La résolution via Microsoft Graph à l’exécution de la requête inclut les appartenances transitives de l’utilisateur à des groupes Microsoft Entra. |
| Utilisateur affecté directement à un groupe de sites SharePoint qui a accès à l’élément | Oui | Configurez la prise en charge des groupes SharePoint. |
| groupe Microsoft Entra imbriqué dans un groupe SharePoint | No | La résolution du groupe SharePoint n’étend pas le groupe Microsoft Entra imbriqué. Les résultats qui dépendent de cette relation sont filtrés. Ajoutez des utilisateurs directement au groupe SharePoint ou accordez l’autorisation via une attribution de groupe Microsoft Entra prise en charge. |
| Autres sens d’imbrication mixtes de SharePoint et de Microsoft Entra | Non spécifié(e) | Ne déduisez pas la prise en charge de la transitivité de Microsoft Entra. Cette limitation de l’aperçu s’applique aux groupes Microsoft Entra imbriqués dans des groupes SharePoint. |
Évaluation des autorisations hiérarchiques
Les permissions de SharePoint héritent de la hiérarchie du Site → Bibliothèque → Dossier → Fichier, sauf si l’héritage est rompu.
Pendant l’ingestion, l’indexeur rassemble les identificateurs d’utilisateur et de groupe (ID) à chaque niveau et calcule la liste de contrôle d’accès effective pour chaque fichier.
Autorisations par scénario ACL
Les Microsoft Entra autorisations d’application et le type d’informations d’identification requis pour l’ingestion de liste de contrôle d’accès dépendent des types d’éléments et des types de groupes que vous indexez. Dans l’enregistrement de l’application, toutes les autorisations sont ajoutées sous Autorisations de l’API>Ajouter une autorisation, et les informations d’identification fédérées sont ajoutées sous Certificats & secrets>Informations d’identification fédérées. Pour obtenir des instructions détaillées et des captures d’écran, consultez Step 3 : Créer une inscription d’application Microsoft Entra et Configurer l’application inscrite avec une identité managée.
| Scénario | Autorisations d’API à ajouter | Informations d’identification |
|---|---|---|
| Listes de contrôle d’accès sur les fichiers de bibliothèque de documents, lorsque l’accès est accordé uniquement par le biais d’utilisateurs Microsoft Entra et de groupes standard (groupes de sécurité Microsoft Entra, groupes de sécurité Microsoft 365, groupes de sécurité avec extension messagerie) |
Microsoft Graph : Files.Read.All, Sites.FullControl.All (ou Sites.Selected pour l’accès étendu) |
Secret client ou information d’identification fédérée |
| Les listes de contrôle d’accès sur les fichiers d’une bibliothèque de documents doivent également être respectées lorsque les groupes de sites SharePoint (Propriétaires, Membres, Visiteurs ou groupes de sites personnalisés) |
Microsoft Graph : Files.Read.All, Sites.FullControl.All (ou Sites.Selected)SharePoint : Sites.FullControl.All (ou Sites.Selected) |
Identifiant fédéré (obligatoire) |
| Listes de contrôle d’accès sur les éléments de liste SharePoint |
Microsoft Graph : Files.Read.All, Sites.FullControl.All (ou Sites.Selected), User.Read.AllSharePoint : Sites.FullControl.All (ou Sites.Selected) |
Identifiant fédéré (obligatoire) |
| Contenu et listes de contrôle d’accès sur les pages de site ASPX |
Microsoft Graph : Sites.FullControl.All (ou Sites.Selected), User.Read.All (conservez Files.Read.All à partir des lignes ci-dessus si vous indexez également des bibliothèques de documents ou des listes)SharePoint : Sites.FullControl.All (ou Sites.Selected) |
Identifiant fédéré (obligatoire) |
Résolution des groupes de site SharePoint au moment de la requête via sharePointConnectorAppRegistration |
Ajouter SharePoint : User.Read.All au même enregistrement d’application utilisé par l’indexeur |
Identifiant fédéré (obligatoire) |
Note
Lorsque vous ajoutez une autorisation, vous choisissez entre deux surfaces d’API : Microsoft Graph et SharePoint. Les deux présentent des autorisations portant des noms similaires. Par exemple,
Sites.FullControl.Allexiste sous les deux. Ajoutez chaque autorisation sous l’aire d’API indiquée dans la table.Utilisez des informations d’identification fédérées chaque fois que le scénario ajoute des autorisations d’API SharePoint. Les secrets de client fonctionnent uniquement pour la ligne de bibliothèque de documents Microsoft Graph.
User.Read.Allest nécessaire pour les éléments de liste et les pages de site ASPX, car l'indexeur lit ces autorisations via l'API REST SharePoint, qui retourne uniquement l'e-mail de l'utilisateur. L’indexeur appelle ensuite Microsoft Graph pour faire correspondre chaque adresse e-mail à son ID d’objet Microsoft Entra, et cette recherche nécessiteUser.Read.All.Lorsque vous utilisez
Sites.Selected, accordez à l’application un accès explicite à chaque site SharePoint cible avant l’indexation.
Les informations d’identification fédérées authentifient l’application à l’aide d’une identité managée approuvée au lieu d’une clé secrète client. Les mêmes informations d’identification fédérées couvrent à la fois l’ingestion (indexeur) et l’évaluation au moment de la requête des groupes de sites SharePoint. Pour connaître les étapes de configuration, consultez Configuration de l’application inscrite avec une identité managée.
Avant d’activer l’ingestion de liste de contrôle d’accès
Effectuez ces étapes sur votre application de Microsoft Entra inscrite :
- Identifiez votre scénario dans le tableau précédent en fonction de ce que vous prévoyez d’indexer (fichiers de bibliothèque de documents, éléments de liste, pages de site ASPX) et selon que les groupes de sites SharePoint doivent être respectés.
- Ouvrez l’enregistrement de votre application dans le centre d’administration Microsoft Entra et accédez à Autorisations d’API>Ajouter une autorisation.
- Ajoutez les autorisations Microsoft Graph répertoriées pour votre scénario. Accordez le consentement de l’administrateur.
- Si votre scénario nécessite également des autorisations SharePoint, sélectionnez Add une autorisation à nouveau, choisissez l’API SharePoint et ajoutez
Sites.FullControl.All(ouSites.Selected). Accordez le consentement de l’administrateur. - Configurez les informations d’identification :
- Pour les scénarios utilisant uniquement Microsoft Graph, vous pouvez utiliser soit un secret client (Certificates & secrets>Client secrets), soit des informations d’identification fédérées.
- Pour tout scénario qui inclut des autorisations SharePoint, ajoutez des informations d’identification fédérées sous
Certificates & secrets Informations d’identification fédérées . Consultez Configuration de l’application enregistrée avec une identité managée.
- Accordez à l’application l’accès aux sites SharePoint cibles (particulièrement important lorsque vous utilisez
Sites.Selectedpour l’accès étendu) afin qu’il puisse lire le contenu et les autorisations que vous souhaitez indexer.
Rechercher les identificateurs de Microsoft Entra corrects
Chaque identificateur apparaît à un emplacement différent dans le portail Azure et correspond à un champ de configuration spécifique. Utilisez cette section comme référence lors de la configuration de l’ingestion des ACL SharePoint avec des informations d’identification fédérées. Ces identificateurs sont mentionnés dans Configurer la prise en charge des groupes SharePoint et dans la chaîne de connexion de la source de données.
| Identificateur | Emplacement du portail | Utilisé dans les cas suivants | Notes |
|---|---|---|---|
| Identifiant d’application d’ingestion (client) |
Inscriptions d’applications><your-app>>Vue d’ensemble |
ApplicationId dans la chaîne de connexion de la source de données ; applicationId dans sharePointConnectorAppRegistration |
Cet ID est correct pour la plupart des champs de configuration. Également appelé « ID client ». |
| ID d’objet d’application |
>
<your-app>
> inscriptions d'applications Overview (ID d’application (client) ci-dessous) |
Non utilisé dans la configuration de Recherche Azure AI | Ne confondez pas cela avec l’ID d’application (client). Il apparaît dans le même panneau, directement sous l’ID client. |
| ID d’objet du principal de service |
>
Applications d’entreprise><your-app>>Gérer>Propriétés |
Non utilisé dans la configuration de Recherche Azure AI | Il s’agit de la représentation principale du service de l’application. Il s’agit d’un GUID différent de l’identifiant d’objet de l’enregistrement d’application. |
| Identifiant principal d’identité managée | Ressource d’identité managée > ou le volet Identité du service de recherche | N’est pas utilisé directement dans la source de données ou la configuration de l’index d’Recherche Azure AI. | Utilisé en interne lorsque vous configurez les informations d’identification d’identité fédérée sur l’inscription de l’application. L’identifiant que vous créez fait confiance à cette identité. |
| ID de l’objet d’informations d’identification fédérées | Inscriptions d’applicationsGérerCertificats et secretsInformations d’identification fédérées | Non utilisé dans la configuration de Recherche Azure AI | N’utilisez pas le GUID de l’entrée d’informations d’identification d’identité fédérée pour federatedCredentialId. |
| ID de l’application d’informations d’identification fédérées | Affecté par le système : Microsoft Entra ID><search-service>>>Propriétés ; Affecté par l’utilisateur : <managed-identity-resource>>Propriétés |
FederatedCredentialApplicationId dans la chaîne de connexion de la source de données ; federatedCredentialId dans sharePointConnectorAppRegistration |
Consultez l’ID d’application d’informations d’identification fédérées pour la recherche d’identité gérée. |
ID de l’application d’informations d’identification fédérées
Dans la chaîne de connexion de la source de données FederatedCredentialApplicationId et dans la définition de l’index federatedCredentialId, utilisez le propre ID d’application (client) de l’identité managée, et non l’ID de l’application d’ingestion.
Identité managée affectée par le système :
- Accédez à votre service Recherche Azure AI.
- Sélectionnez Sécurité + mise en réseau>Identité.
- Sous l’onglet Affecté par le système, notez l’ID d’objet (principal).
- Accédez à Microsoft Entra ID>Gérer>Applications d’entreprise.
- Recherchez le nom de votre service de recherche ou collez l’ID d’objet (principal) dans la zone de recherche.
- Sélectionnez le résultat et ouvrez Propriétés. Copiez l’ID d’application indiqué ici, qui est la valeur de
FederatedCredentialApplicationIdla source de données etfederatedCredentialIdde l’index.
Identité managée affectée par l’utilisateur :
- Accédez à la ressource d’identité managée affectée par l’utilisateur.
- Sélectionnez Paramètres>Propriétés.
- Copiez l’ID client, qui est la valeur de
FederatedCredentialApplicationIdla source de données etfederatedCredentialIdde l’index.
Configurez votre service de recherche pour l’ingestion des listes de contrôle d’accès (ACL) et leur application au moment de la requête
Ces étapes configurent votre service de recherche pour l'ingestion d'ACL et activent le respect des ACL au moment de la requête.
Choisir où renseigner les champs ACL
L’emplacement où vous mappez les champs de métadonnées ACL dépend du fait que l’indexeur écrit un document par élément source ou plusieurs blocs par élément source.
| Scénario | Remplir les champs de liste de contrôle d’accès via | Pourquoi |
|---|---|---|
| Aucun ensemble de compétences ni ensemble de compétences sans segmentation ; un document de recherche par élément source |
Mappages de champs de l’indexeur uniquement (metadata_user_ids → UserIds, metadata_group_ids → GroupIds, et pour les groupes SharePoint metadata_spo_site_url → SharePointSiteUrl). |
L’indexeur écrit un document unique dans l’index cible et les mappages de champs portent les métadonnées sources dans les champs d’index. |
Ensemble de compétences avec segmentation (par exemple, compétence Fractionnement de texte pour la vectorisation intégrée), index unique avec des champs parents répétés sur chaque bloc (projectionMode: skipIndexingParentDocuments) |
Projections d’index dans le jeu de compétences (mappings à partir de /document/metadata_user_ids, /document/metadata_group_ids et, pour les groupes SharePoint, /document/metadata_spo_site_url). |
Le document parent n’est pas indexé ; seuls les blocs sont. Les valeurs d’ACL doivent être répercutées sur chaque fragment afin que les filtres appliqués à l’exécution de la requête s’appliquent au fragment renvoyé dans les résultats. Les mappages de champs de l’indexeur pour ces champs sont ignorés dans ce mode. |
| Ensemble de compétences avec segmentation, modèle à deux index (index parent + index de segments enfant) | Tous deux : les mappages de champs de l’indexeur renseignent les champs de liste de contrôle d’accès dans l’index parent, les projections d’index renseignent les champs de liste de contrôle d’accès dans l’index de segments enfant. | Les deux index sont interrogeables et chacun a besoin des métadonnées sur laquelle il filtre. |
Dans tous les scénarios de fragmentation, chaque fragment doit contenir les champs ACL. Les filtres d’autorisation s’appliquent par document, de sorte qu’un bloc manquant de champs ACL ne peut pas être retourné à l’appelant droit.
1. Configuration de la source de données
Cette section constitue un complément au guide de base Étape 4 : Créer une source de données. Définissez indexerPermissionOptions dans la définition de source data pour permettre l’indexation de userIds et groupIds à partir de documents SharePoint.
{
"name": "my-sharepoint-acl-datasource",
"type": "sharepoint",
"indexerPermissionOptions": ["userIds", "groupIds"],
"credentials": {
"connectionString": "<connection-string>;"
},
"container": {
"name": "<library-name>",
"query": "<optional-folder-path>"
}
}
2. Ajouter des champs d’autorisation à la définition d’index
Ajoutez des champs à votre définition de schéma d’index pour stocker les listes de contrôle d’accès et prendre en charge le filtrage au moment des requêtes.
{
"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"
}
Définissez l’attribut retrievable à true uniquement pendant le développement pour vérifier les valeurs. Vous pouvez modifier le paramètre de capacité de récupération (retrievable) de true à false sans nécessiter de reconstruction d'index.
3. Configurer les projections d’index dans votre ensemble de compétences (le cas échéant)
Lorsque la segmentation est activée, le document parent n’est pas écrit dans l’index lorsque projectionMode c’est skipIndexingParentDocuments. Reportez les métadonnées de liste de contrôle d’accès sur chaque segment via indexProjections.selectors[].mappings.
Si votre indexeur utilise un ensemble de compétences avec un segment de données, tel que la compétence Fractionnement de texte lors de l’activation de la vectorisation intégrée, veillez à mapper les propriétés ACL à chaque bloc à l’aide de projections d’index. Les // lignes de l’exemple suivant sont des annotations illustrantes et ne sont pas valides JSON. Supprimez-les avant de soumettre la demande.
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"
}
}
}
Les mappages UserIds, GroupIds et SharePointSiteUrl lisent les métadonnées de niveau source émises par l’indexeur SharePoint (/document/metadata_*) et écrivent les valeurs sur chaque segment.
4. Configurer les mappages de champs de l’indexeur pour les ACL (listes de contrôle d’accès)
Utilisez des mappages de champs d’indexeur lorsque l’indexeur écrit un document par élément source (aucune segmentation) ou lorsque vous conservez un index parent distinct en même temps qu’un index de bloc. Si votre ensemble de compétences fractionne les documents dans un index cible unique avec projectionMode: skipIndexingParentDocuments, les mappages de champs indiqués ici sont remplacés par le indexProjections.mappings de l’étape précédente pour l’index de segments.
Outre votre configuration de indexer requise, mappez les champs ACL de métadonnées brutes de SharePoint à vos champs d’index.
{
"fieldMappings": [
{ "sourceFieldName": "metadata_user_ids", "targetFieldName": "UserIds" },
{ "sourceFieldName": "metadata_group_ids", "targetFieldName": "GroupIds" }
]
}
5. Exécuter l’indexeur
Les métadonnées ACL sont ingérées lorsque l’indexeur s’exécute. Après avoir créé ou mis à jour l’indexeur (voir l’étape 6 : Créer un indexeur), déclenchez une exécution afin que l’indexeur ingère des ACL en même temps que le contenu.
POST https://[service name].search.windows.net/indexers/[indexer-name]/run?api-version=2026-08-01-preview
api-key: [admin key]
Si vous avez activé l’ingestion des listes de contrôle d’accès sur un indexeur existant qui a déjà indexé des éléments, appelez /resync avec options: ["permissions"] pour renseigner les listes de contrôle d’accès de ces éléments, ou /resetdocs pour réextraire des éléments spécifiques.
6. Vérifiez l’ingestion des ACL
Pour confirmer que les valeurs ACL sont correctement renseignées :
- Définissez temporairement
retrievablesurtruepourUserIdsetGroupIdsdans la définition de votre index. La modificationretrievablene nécessite pas de reconstruction d’index. - Exécutez une requête de lecture privilégiée qui sélectionne
UserIdsetGroupIds, puis vérifiez que les collections ne sont pas vides. Pour les scénarios segmentés, vérifiez que chaque bloc comporte les deux champs. - Retournez
retrievableàfalseaprès vérification.
Configurer la prise en charge des groupes SharePoint
À partir de l’API REST 2026-05-01-preview, l’indexeur SharePoint peut indexer les appartenances aux groupes de sites SharePoint (propriétaires, membres, visiteurs et groupes de sites personnalisés). Ces groupes sont pris en compte au moment de la requête. Les ID de groupe SharePoint sont renvoyés dans le champ metadata_group_ids avec le préfixe spg: afin de les distinguer des ID d’objet des groupes Microsoft Entra.
Cette procédure pas à pas est autonome : effectuez les étapes dans l’ordre pour configurer l’index, les mappages des champs de l’indexeur et interroger l’index avec l’application des groupes de sites SharePoint.
Les composants suivants fonctionnent ensemble pour permettre la résolution des groupes de sites SharePoint :
| Composant | Where | Purpose |
|---|---|---|
sharePointConnectorAppRegistration (avec applicationId, tenantId, federatedCredentialId) |
Définition d’index | Fournit la configuration d’authentification requise pour le service de recherche afin d’appeler l’API REST SharePoint en tant qu’utilisateur appelant et résoudre l’appartenance au groupe de sites au moment de la requête. |
SharePointSiteUrl champ (avec sharepointSiteUrl: true) |
Schéma d’index + mappage des champs de l’indexeur à partir de metadata_spo_site_url |
Identifie le site SharePoint auquel appartient un document, afin que la résolution des groupes SP s’effectue dans le bon périmètre. |
valeurs préfixées par spg: dans GroupIds |
Métadonnées d’autorisation des documents | Distinguez les ID de groupe de sites SharePoint des ID d’objet des groupes Microsoft Entra. |
1. Prérequis
- Indexeur SharePoint déjà configuré pour l’ingestion des ACL. Consultez Configurer les mappages de champs de l’indexeur pour les listes de contrôle d’accès.
- Inscription d’application Microsoft Entra avec des informations d’identification d’identité fédérée. Consultez Configuration de l’application enregistrée avec une identité managée.
- API
2026-05-01-previewREST ou version ultérieure.
Note
FederatedCredentialApplicationId dans la chaîne de connexion de la source de données et federatedCredentialId dans sharePointConnectorAppRegistration utilisent l’ID d’application de l’identité gérée. La propriété applicationId dans sharePointConnectorAppRegistration utilise l’ID client de l’application d’ingestion. Pour rechercher les valeurs correctes, consultez Rechercher les identificateurs de Microsoft Entra corrects.
2. Configurer l’index
Ajoutez la sharePointConnectorAppRegistration configuration et le SharePointSiteUrl champ en même temps que les UserIdsGroupIds champs de filtre d’autorisation, de sorte que la forme d’index complète se trouve à un seul endroit. Conservez 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. Configurer les mappages de champs de l’indexeur
Mappez les champs de métadonnées SharePoint aux champs d’index dans un seul bloc de mappage combiné. Les deux premiers mappages sont les mêmes que ceux utilisés pour l’ingestion ACL standard ; le troisième mappage active la résolution des groupes SharePoint.
{
"fieldMappings": [
{ "sourceFieldName": "metadata_user_ids", "targetFieldName": "UserIds" },
{ "sourceFieldName": "metadata_group_ids", "targetFieldName": "GroupIds" },
{ "sourceFieldName": "metadata_spo_site_url", "targetFieldName": "SharePointSiteUrl" }
]
}
Si votre jeu de compétences fractionne les documents (par exemple, avec la compétence Fractionnement de texte pour la vectorisation intégrée), projetez SharePointSiteUrl sur chaque segment via indexProjections.mappings à la place. Consultez Choisir où renseigner les champs ACL.
4. Interroger l’index
Aucune modification côté client n’est requise. Le même jeton x-ms-query-source-authorization applique à la fois le contrôle des groupes de sites Microsoft Entra et de SharePoint. Le service de recherche résout côté serveur les appartenances aux groupes SharePoint à l’aide de sharePointConnectorAppRegistration dans l’index.
Pour la structure de la requête, consultez l’exemple de requête générale et l’exemple spécifique à SharePoint avec application du groupe de sites SharePoint.
5. Vérifier
Pour confirmer que les ID de groupe SharePoint ont bien été ajoutés à l’index, exécutez une requête elevated-read qui sélectionne GroupIds et recherchez dans la réponse les valeurs préfixées par spg:.
Synchroniser les autorisations entre le contenu indexé et le contenu source
À compter de l’API REST 2026-05-01-preview, les modifications de liste de contrôle d’accès pour les éléments disposant d’autorisations uniques sont détectées et actualisées sur chaque exécution réussie de l’indexeur. L’indexeur utilise les jetons de modification de SharePoint pour prendre en compte, de manière incrémentielle, les ajouts et les suppressions d’attributions de rôles, de la même façon qu’il prend en compte les modifications de contenu.
Certains scénarios nécessitent toujours une actualisation explicite :
| Modifier l’étendue | Détecté automatiquement | Action recommandée |
|---|---|---|
| Autorisations sur un élément spécifique avec des autorisations uniques (fichier, élément de liste ou page) | Oui | Aucune action requise. La modification est prise en compte lors de la prochaine exécution réussie de l’indexeur. |
| Modification du contenu sur un élément spécifique (qui réévalue également les listes de contrôle d’accès effectives pour cet élément) | Oui | Aucune action requise. |
| Les autorisations changent au niveau parent (site, bibliothèque, liste ou dossier) et sont héritées par les éléments enfants | No | Appelez /resync avec options: ["permissions"] pour actualiser les listes de contrôle d’accès sur la source de données ou appelez /resetdocs avec les clés de document affectées pour actualiser le contenu et les listes de contrôle d’accès. |
| Ingestion ACL activée sur un indexeur existant | No | Appelez /resync avec options: ["permissions"] pour renseigner les ACL des éléments précédemment indexés. |
Réinitialiser des documents spécifiques
Vous pouvez réinitialiser des documents spécifiques pour ingérer entièrement du contenu et des listes de contrôle d’accès.
POST https://{service}.search.windows.net/indexers/{indexer}/resetdocs?api-version=2026-08-01-preview
{
"documentKeys": ["doc123", "doc456"]
}
Resynchroniser les listes de contrôle d’accès sur la source de données complète
Vous pouvez resynchroniser le contenu ACL du jeu de données complet après l’ingestion initiale. Pour réussir pleinement, cette opération nécessite une exécution d’indexeur après l’achèvement.
POST https://{service}.search.windows.net/indexers/{indexer}/resync?api-version=2026-08-01-preview
{
"options": ["permissions"]
}
Important
Si vous modifiez SharePoint autorisations sans déclencher de mécanisme de mise à jour, l’index fournit des données ACL obsolètes pour les fichiers précédemment ingérés.
Après avoir indexé vos données et listes de contrôle d’accès, vous pouvez interroger l’index.
Résolution des problèmes
| Symptôme | Cause et résolution |
|---|---|
UserIds ou GroupIds sont vides dans les documents indexés |
Si votre ensemble de compétences utilise projectionMode: skipIndexingParentDocuments, les mappages de champs d’indexeur pour les champs ACL sont ignorés. Définissez à la place les champs ACL via indexProjections.mappings pour chaque bloc. |
SharePoint ID de groupe de sites sont manquants ou les valeurs GroupIds n'ont pas le préfixe spg: |
Vérifiez que l’index possède la configuration sharePointConnectorAppRegistration, que le champ SharePointSiteUrl existe avec sharepointSiteUrl: true, et que le mappage metadata_spo_site_url est présent dans les mappages de champs de l’indexeur ou dans les projections d’index. |
SharePointSiteUrl est vide ou null après l’indexation, même si les listes de contrôle d’accès sont sinon renseignées correctement |
L’indexeur émet ces métadonnées sous metadata_spo_site_url, et non metadata_sharepoint_site_url. Vérifiez que le mappage de champs de votre indexeur utilise "sourceFieldName": "metadata_spo_site_url". Si votre ensemble de compétences utilise des projections d’index pour les documents segmentés, vérifiez que la source de mappage de projection est /document/metadata_spo_site_url. |
| L’indexeur retourne 401 ou 403 | Accordez le consentement de l’administrateur sur les autorisations d’API Microsoft Graph et de SharePoint pour votre scénario. Utilisez des informations d’identification fédérées (et non une clé secrète client) lorsque le scénario l’exige. Consultez le scénario des autorisations par ACL. |
| Les autorisations sont obsolètes après avoir modifié une liste ACL de site, de bibliothèque, de liste ou de dossier | Appeler /resync avec options: ["permissions"]. Consultez Synchroniser les autorisations entre le contenu indexé et source pour le contexte. |
federatedCredentialId est rejeté lors de la configuration sharePointConnectorAppRegistration |
Utilisez l’ID d’application de l’identité managée, et non l’ID d’objet de l’identité fédérée ou l’ID principal de l’identité managée. Consultez ID d’application d’informations d’identification fédérées |
L’indexeur retourne 401 Unauthorized et FederatedCredentialApplicationId est défini |
Vérifiez que vous avez utilisé l’ID d’application de l’identité managée (trouvé dans les applications d’entreprise), et non l’ID d’application d’ingestion (client) ouApplicationId n’importe quel ID d’objet. Pour une identité managée affectée par l’utilisateur, utilisez l’ID client à partir de la page Propriétés de la ressource d’identité managée. Consultez Rechercher les identificateurs de Microsoft Entra corrects. |
Pour les résultats manquants, inattendus ou ayant échoué au moment de la requête après l’indexation des métadonnées de liste de contrôle d’accès, consultez Résoudre les problèmes de filtrage des autorisations SharePoint.