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.
stockage Azure permet l’accès en fonction du rôle sur les conteneurs dans le stockage d’objets blob, où les rôles tels que Lecteur de données BlobStorage ou Contributeur aux données blobStorage déterminent si quelqu’un a accès au contenu. Recherche Azure AI prend en charge l’ingestion des autorisations utilisateur (préversion) parallèlement à l’ingestion de documents afin d’utiliser ces autorisations pour contrôler l’accès aux résultats de recherche. Si un utilisateur n'a pas d'autorisations sur un répertoire ou un fichier spécifique dans stockage Azure, celui-ci n'a pas accès aux documents correspondants dans les résultats de Recherche Azure AI, même si vous disposez personnellement d'une affectation Search Index Data Reader sur l'index.
- À partir de 2025-05-01-preview et pour les versions ultérieures, les métadonnées des étendues RBAC peuvent être ingérées à l’aide de l’indexeur Blob.
- 2025-11-01-preview et les versions ultérieures fournissent une prise en charge équivalente des sources de connaissances Blob dans stockage Azure.
Le périmètre RBAC est défini au niveau du conteneur et s’applique à tous les blobs (documents) via l’héritage des autorisations. L’étendue RBAC est capturée lors de l’indexation en tant que métadonnées d’autorisation. Vous pouvez utiliser les API Push pour charger et indexer le contenu et les métadonnées d’autorisation manuellement (voir Autorisations d’indexation à l’aide de l’API REST Push), ou vous pouvez utiliser un indexeur ou une source de connaissances pour automatiser l’ingestion des données. Cet article se concentre sur l'automatisation de l'indexation.
Au moment de la requête, l’identité de l’appelant est incluse dans l’en-tête de requête via le x-ms-query-source-authorization paramètre. L’identité doit correspondre aux métadonnées d’autorisation sur les documents si l’utilisateur doit afficher les résultats de la recherche.
Cet article se concentre sur les approches d’automatisation de l’indexation, basées sur cette base :
Blobs stockage Azure sécurisés à l’aide du contrôle d’accès en fonction du rôle (Azure RBAC). Il n'existe aucune prise en charge du contrôle d'accès basé sur les attributs (Azure ABAC).
Indexeur de blob Azure ou source de connaissances Blob qui récupère et ingère des données et des métadonnées, y compris des filtres d’autorisation. Pour obtenir la prise en charge du filtre d’autorisation, utilisez la dernière API REST en préversion ou un package d’aperçu d’un Kit de développement logiciel (SDK) Azure qui prend en charge la fonctionnalité.
Un index dans Recherche Azure AI contenant les documents ingérés et les autorisations correspondantes. Les métadonnées d’autorisation sont stockées en tant que champs dans l’index.
Requête qui utilise des filtres d’autorisation. Pour configurer des requêtes qui respectent les filtres d’autorisation, utilisez la dernière API REST en préversion ou un package d’aperçu d’un Kit de développement logiciel (SDK) Azure qui prend en charge la fonctionnalité.
Conditions préalables
Microsoft Entra ID authentification et autorisation. Les services et les applications doivent se trouver dans le même locataire. Les utilisateurs peuvent se trouver dans différents locataires, à condition que tous les locataires utilisent Microsoft Entra ID. Les attributions de rôles sont utilisées pour chaque connexion authentifiée.
Recherche Azure AI, n’importe quelle région, mais vous devez disposer d’un niveau facturable (de base et supérieur) pour la prise en charge des identités managées. Le service de recherche doit être configuré pour l’accès en fonction du rôle et doit avoir une identité managée (système ou utilisateur).
Stockage Azure, performances standard (v2 à usage général), sur les niveaux d’accès chaud, sporadique et froid, avec des conteneurs ou des objets blob sécurisés par RBAC.
Vous devez comprendre comment les indexeurs et les sources de connaissances fonctionnent et comment créer un index. Cet article explique les paramètres de configuration de la source de données et de l’indexeur, mais ne fournit pas les étapes de création de l’index. Pour plus d’informations sur les index conçus pour les filtres d’autorisations, consultez Créer un index avec des champs de filtre d’autorisation.
Limitations
Le portail Azure ne prend pas en charge cette fonctionnalité.
Les fonctionnalités d’indexeur suivantes ne prennent pas en charge l’héritage des autorisations dans les documents indexés provenant d’ADLS Gen2. 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é.
Configurer le Stockage Blob
Vérifiez que votre conteneur d’objets blob utilise un accès basé sur les rôles.
Connectez-vous au portail Azure et recherchez votre compte de stockage.
Étendez les conteneurs et sélectionnez le conteneur qui contient les objets blob que vous souhaitez indexer.
Sélectionnez Access Control (IAM) pour vérifier les attributions de rôles. Les utilisateurs et les groupes disposant d’un lecteur de données Blob de stockage ou d’un contributeur aux données blob de stockage ont accès aux documents de recherche dans l’index une fois le conteneur indexé.
Autorisation
Pour l’exécution de l’indexeur, l’identité de votre service de recherche doit disposer de l’autorisation Lecteur de données Blob de stockage. Pour plus d’informations, consultez Connect to stockage Azure using a managed identity.
Configurer Recherche Azure AI
Rappelez-vous que le service de recherche doit avoir :
Autorisation
Pour l’exécution de l’indexeur, le client qui émet l’appel d’API doit avoir Contributeur du serviceSearch l’autorisation de créer des objets, Search Index Data Contributor autorisation d’effectuer l’importation de données et Search Index Data Reader pour interroger un index, voir Connect to Recherche Azure AI using roles.
Configurer une source de connaissances
Si vous utilisez une source de connaissances, les définitions de la source de connaissances sont utilisées pour générer un pipeline d’indexation complet (indexeur, source de données et index). L’étendue RBAC est détectée et automatiquement incluse dans l’index généré. Il n’est pas nécessaire de modifier l’un des objets générés si vous souhaitez l’héritage d’autorisation dans votre contenu indexé.
Points clés sur la configuration qui le rendent adapté à ce scénario :
-
isADLSGen2a la valeur false, ce qui signifie que la source de données est Stockage Blob Azure. -
ingestionPermissionOptionsspécifierbacScope.
# Create / Update Azure Blob Knowledge Source
###
PUT {{url}}/knowledgesources/azure-blob-ks?api-version=2026-08-01-preview
api-key: {{key}}
Content-Type: application/json
{
"name": "azure-blob-ks",
"kind": "azureBlob",
"description": "A sample azure blob knowledge source",
"azureBlobParameters": {
"connectionString": "{{blob-connection-string}}",
"containerName": "blobcontainer",
"folderPath": null,
"isADLSGen2": false,
"ingestionParameters": {
"identity": null,
"embeddingModel": {
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"deploymentId": "text-embedding-3-large",
"modelName": "text-embedding-3-large",
"resourceUri": "{{aoai-endpoint}}",
"apiKey": "{{aoai-key}}"
}
},
"chatCompletionModel": null,
"disableImageVerbalization": true,
"ingestionSchedule": null,
"ingestionPermissionOptions": ["rbacScope"],
"contentExtractionMode": "minimal",
"aiServices": {
"uri": "{{ai-endpoint}}",
"apiKey": "{{ai-key}}"
}
}
}
}
Référence :Créer ou mettre à jour une source de connaissances (API REST)
Configurer l’indexation basée sur l’indexeur
Si vous utilisez un indexeur, configurez-le, la source de données et l’index pour extraire les métadonnées d’autorisation à partir d’objets blob.
Créer la source de données
Le type de source de données doit être
azureblob.Le mode d’analyse de source de données doit être la valeur par défaut.
La source de données doit avoir
indexerPermissionOptionsavecrbacScope.Pour
rbacScope, configurez la chaîne de connexion avec le format d'identité gérée.Pour les chaînes de connexion utilisant une identité managée affectée par l’utilisateur, vous devez également spécifier la
identitypropriété.
Exemple JSON avec une identité managée système et indexerPermissionOptions:
{
"name" : "my-blob-datasource",
"type": "azureblob",
"indexerPermissionOptions": ["rbacScope"],
"credentials": {
"connectionString": "ResourceId=/subscriptions/<your subscription ID>/resourceGroups/<your resource group name>/providers/Microsoft.Storage/storageAccounts/<your storage account name>/;"
},
"container": {
"name": "<your-container-name>",
"query": "<optional-query-used-for-selecting-specific-blobs>"
}
}
Exemple de schéma JSON avec une identité managée par l’utilisateur dans le chaîne de connexion :
{
"name" : "my-blob-datasource",
"type": "azureblob",
"indexerPermissionOptions": ["rbacScope"],
"credentials": {
"connectionString": "ResourceId=/subscriptions/<your subscription ID>/resourceGroups/<your resource group name>/providers/Microsoft.Storage/storageAccounts/<your storage account name>/;"
},
"container": {
"name": "<your-container-name>",
"query": "<optional-query-used-for-selecting-specific-blobs>"
},
"identity": {
"@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity",
"userAssignedIdentity": "/subscriptions/{subscription-ID}/resourceGroups/{resource-group-name}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{user-assigned-managed-identity-name}"
}
}
Créer des champs d’autorisation dans l’index
Dans Recherche Azure AI, vérifiez que votre index contient des définitions de champs pour les métadonnées d’autorisation. Les métadonnées d’autorisation peuvent être indexées quand indexerPermissionOptions elles sont spécifiées dans la définition de la source de données.
Attributs de schéma recommandés pour la portée RBAC :
- Champ d’étendue RBAC avec la valeur de permissionFilter
rbacScope. - Propriété
permissionFilterOptionpermettant d’activer le filtrage au moment de l’interrogation. - Utiliser des champs de chaîne pour les métadonnées d’autorisation
- Définissez la
filterablevaleur true sur tous les champs.
Notez que retrievable est faux. Vous pouvez définir la valeur true pendant le développement pour vérifier que les autorisations sont présentes, mais n’oubliez pas de revenir à false avant de le déployer dans un environnement de production afin que les identités de principal de sécurité ne soient pas visibles dans les résultats.
Exemple de schéma JSON :
{
...
"fields": [
...
{
"name": "RbacScope",
"type": "Edm.String",
"permissionFilter": "rbacScope",
"filterable": true,
"retrievable": false
}
],
"permissionFilterOption": "enabled"
}
Configurer l’indexeur
Les mappages de champs au sein d’un indexeur définissent le chemin des données sur les champs d’un index. Les champs cibles et de destination qui varient selon le nom ou le type de données nécessitent un mappage de champ explicite. Les champs de métadonnées suivants dans Stockage Blob Azure peuvent avoir besoin de mappages de champs si vous modifiez le nom du champ :
-
metadata_rbac_scope (
Edm.String) : étendue RBAC du conteneur.
Spécifiez fieldMappings dans l’indexeur pour router les métadonnées d’autorisation vers les champs cibles pendant l’indexation.
Exemple de schéma JSON :
{
...
"fieldMappings": [
{ "sourceFieldName": "metadata_rbac_scope", "targetFieldName": "RbacScope" }
]
}
Exécuter l’indexeur
Une fois que votre indexeur, votre source de données et votre index sont configurés, exécutez l’indexeur pour définir le processus en mouvement. S’il existe un problème avec la configuration ou les autorisations, ces problèmes s’affichent à cette étape.
Par défaut, un indexeur s’exécute dès que vous le publiez dans un service de recherche, mais si la configuration de l’indexeur inclut disabled la valeur true, l’indexeur est publié dans un état désactivé afin que vous puissiez exécuter l’indexeur manuellement.
Nous vous recommandons de exécuter l’indexeur à partir du portail Azure afin de pouvoir surveiller l’état et les messages.
En supposant qu’aucune erreur n’est détectée, l’index est maintenant rempli et vous pouvez avancer avec les requêtes et les tests.
Suivi des suppressions
Pour gérer efficacement la suppression d’objets blob, vérifiez que vous avez activé le suivi des suppressions avant l’exécution de votre indexeur pour la première fois. Cette fonctionnalité permet au système de détecter les objets blob supprimés de votre source et de supprimer le contenu correspondant de l’index.