Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Nota
Azure AI Search è disponibile tramite il portale di Azure, le API REST e Azure SDK. È inoltre alla base di Foundry IQ, il livello di conoscenza gestito che trasforma il contenuto aziendale in knowledge base riutilizzabili e con riconoscimento delle autorizzazioni per gli agenti nel portale di Microsoft Foundry.
Important
Le funzionalità, le funzionalità o le proprietà contrassegnate (anteprima) non sono coperte da un contratto di servizio, non sono consigliate per i carichi di lavoro di produzione e potrebbero cambiare o essere vincolate prima che diventino disponibili a livello generale. Le condizioni di anteprima Azure AI Search si applicano a tutte le funzionalità di anteprima, indipendente o parte di una funzionalità disponibile a livello generale.
Archiviazione di Azure consente l'accesso basato sui ruoli nei contenitori nell'archiviazione BLOB, in cui ruoli come Lettore Dati BLOB di Archiviazione o Collaboratore Dati BLOB di Archiviazione determinano se un utente ha accesso al contenuto. Azure AI Search supporta l'inserimento di autorizzazioni utente (anteprima) insieme all'inserimento di documenti in modo da poter usare tali autorizzazioni per controllare l'accesso ai risultati della ricerca. Se un utente non dispone delle autorizzazioni per una directory o un file specifico in Archiviazione di Azure, tale utente non ha accesso ai documenti corrispondenti nei risultati di Azure AI Search, anche se personalmente si dispone di un'assegnazione di Search Index Data Reader sull'indice.
- 2025-05-01-preview e versioni successive, i metadati degli ambiti RBAC possono essere inseriti usando l'indicizzatore BLOB.
- A partire dalla versione 2025-11-01-preview, è disponibile un supporto equivalente per le fonti di conoscenza BLOB in Archiviazione di Azure.
L'ambito del controllo degli accessi in base al ruolo viene impostato a livello di contenitore e passa a tutti i BLOB (documenti) tramite l'ereditarietà delle autorizzazioni di accesso. L'ambito di RBAC viene acquisito durante l'indicizzazione come metadati delle autorizzazioni. È possibile usare le API push per caricare e indicizzare manualmente il contenuto e i metadati delle autorizzazioni (vedere Autorizzazioni di indicizzazione tramite l'API REST push) oppure è possibile usare un indicizzatore o un'origine conoscenze per automatizzare l'inserimento dei dati. Questo articolo è incentrato sull'automazione dell'indicizzazione.
In fase di query, l'identità del chiamante viene inclusa nell'intestazione della richiesta tramite il x-ms-query-source-authorization parametro . L'identità deve corrispondere ai metadati delle autorizzazioni per i documenti se l'utente deve visualizzare i risultati della ricerca.
Questo articolo è incentrato sugli approcci di automazione dell'indicizzazione basati su questa base:
Archiviazione di Azure BLOB protetti tramite il controllo degli accessi in base al ruolo (Azure RBAC). Non è disponibile alcun supporto per il controllo degli accessi basato sugli attributi (Azure ABAC).
Indicizzatore BLOB di Azure o una fonte di conoscenza Blob che recupera e inserisce dati e metadati, inclusi i filtri di autorizzazione. Per ottenere il supporto del filtro delle autorizzazioni, usare l'API REST di anteprima più recente o un pacchetto di anteprima di un Azure SDK che supporta la funzionalità.
An index in Azure AI Search contenente i documenti inseriti e le autorizzazioni corrispondenti. I metadati di autorizzazione vengono archiviati come campi nell'indice.
Query che usa filtri di autorizzazione. Per configurare query che rispettano i filtri delle autorizzazioni, usare l'API REST di anteprima più recente o un pacchetto di anteprima di un Azure SDK che supporta la funzionalità.
Prerequisiti
Autenticazione e autorizzazione di Microsoft Entra ID. I servizi e le app devono trovarsi nello stesso tenant. Gli utenti possono trovarsi in tenant diversi purché tutti i tenant siano Microsoft Entra ID. Le assegnazioni di ruolo vengono usate per ogni connessione autenticata.
Azure AI Search, qualsiasi area, ma è necessario avere un livello fatturabile (basic e superiore) per il supporto delle identità gestite. Il servizio di ricerca deve essere configurato per l'accesso basato sui ruoli e deve avere un'identità gestita (sistema o utente).
Archiviazione di Azure, prestazioni Standard (utilizzo generico v2), nei livelli di accesso frequente, ad accesso sporadico e sporadico, con contenitori o BLOB protetti con controllo degli accessi in base al ruolo.
È necessario comprendere come funzionano gli indicizzatori e le origini conoscenze e come creare un indice. Questo articolo illustra le impostazioni di configurazione per l'origine dati e l'indicizzatore, ma non fornisce i passaggi per la creazione dell'indice. Per altre informazioni sugli indici progettati per i filtri di autorizzazione, vedere Creare un indice con campi di filtro delle autorizzazioni.
Limitations
Il portale di Azure non supporta questa funzionalità.
Le funzionalità dell'indicizzatore seguenti non supportano l'ereditarietà delle autorizzazioni nei documenti indicizzati provenienti da ADLS Gen2. Se si usa una di queste funzionalità in un set di competenze o in un indicizzatore, le autorizzazioni a livello di documento non vengono incluse nel contenuto indicizzato.
Configurare l'archiviazione Blob
Verificare che il blob container utilizzi l'accesso in base al ruolo.
Accedere al portale di Azure e trovare l'account di archiviazione.
Espandere i contenitori e selezionare il contenitore con i BLOB da indicizzare.
Selezionare Controllo di accesso (IAM) per controllare le assegnazioni di ruolo. Gli utenti e i gruppi con Storage Blob Data Reader o Storage Blob Data Contributor hanno accesso ai documenti di ricerca nell'indice dopo che il contenitore è stato indicizzato.
Autorizzazione
Per l'esecuzione dell'indicizzatore, l'identità del servizio di ricerca deve disporre dell'autorizzazione Lettore dati BLOB di archiviazione. Per altre informazioni, vedere Connetti ad Archiviazione di Azure utilizzando un'identità gestita.
Configurare Azure AI Search
Tenere presente che il servizio di ricerca deve avere:
Autorizzazione
Per l'esecuzione dell'indicizzatore, il client che esegue la chiamata API deve disporre dell'autorizzazione Search Service Contributor per creare oggetti. Search Index Data Contributor autorizzazione per eseguire l'importazione dei dati e Search Index Data Reader per eseguire query su un indice, vedere Connect to Azure AI Search using roles.
Configurare un'origine conoscenza
Se si utilizza un'origine della conoscenza, le definizioni nell'origine della conoscenza vengono usate per generare una pipeline di indicizzazione completa (indicizzatore, origine dati e indice). L'ambito RBAC viene rilevato e incluso automaticamente nell'indice generato. Non è necessario modificare uno degli oggetti generati se si vuole l'ereditarietà delle autorizzazioni nel contenuto indicizzato.
Punti chiave sulla configurazione che lo rendono funzionante per questo scenario:
-
isADLSGen2è impostato su false, il che significa che l'origine dati è Archiviazione BLOB di Azure. -
ingestionPermissionOptionsspecificarbacScope.
# 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}}"
}
}
}
}
Reference:Create or Update Knowledge Source (API REST)
Configurare l'indicizzazione basata su indicizzatore
Se stai usando un indicizzatore, configura l'indicizzatore stesso, l'origine dati e l'indice per recuperare i metadati delle autorizzazioni dai BLOB.
Creare l'origine dati
Il tipo di origine dati deve essere
azureblob.La modalità di analisi dell'origine dati deve essere l'impostazione predefinita.
L'origine dati deve avere
indexerPermissionOptionsconrbacScope.Per
rbacScope, configurare la stringa di connessione con il formato identità gestita.Per le stringhe di connessione che usano un'identità gestita assegnata dall'utente, è necessario specificare anche la
identityproprietà .
Esempio JSON con identità gestita dal sistema e 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>"
}
}
Esempio di schema JSON con un'identità gestita dall'utente nel stringa di connessione:
{
"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}"
}
}
Creare campi di autorizzazione nell'indice
In Azure AI Search verificare che l'indice contenga definizioni di campo per i metadati delle autorizzazioni. I metadati di autorizzazione possono essere indicizzati quando indexerPermissionOptions viene specificato nella definizione dell'origine dati.
Ambito del controllo RBAC per gli attributi di schema consigliati:
- Campo dell'ambito RBAC con il valore
rbacScopepermissionFilter. - Proprietà
permissionFilterOptionper abilitare il filtro durante la query. - Usare i campi stringa per i metadati delle autorizzazioni
- Impostare
filterablesu true in tutti i campi.
Si noti che retrievable è false. È possibile impostare true durante lo sviluppo per verificare che le autorizzazioni siano presenti, ma ricordarsi di reimpostare su false prima di eseguire la distribuzione in un ambiente di produzione affinché le identità dell'entità di sicurezza non siano visibili nei risultati.
Esempio di schema JSON:
{
...
"fields": [
...
{
"name": "RbacScope",
"type": "Edm.String",
"permissionFilter": "rbacScope",
"filterable": true,
"retrievable": false
}
],
"permissionFilterOption": "enabled"
}
Configurare l'indicizzatore
Il mapping dei campi all'interno di un indicizzatore imposta il percorso dei dati ai campi di un indice. I campi di origine e di destinazione che variano in base al nome o al tipo di dati richiedono un mapping dei campi esplicito. I campi di metadati seguenti in Archiviazione BLOB di Azure potrebbero richiedere mapping dei campi se si modifica il nome del campo:
-
metadata_rbac_scope (
Edm.String): ambito RBAC del contenitore.
Specificare fieldMappings nell'indicizzatore per instradare i metadati delle autorizzazioni ai campi di destinazione durante l'indicizzazione.
Esempio di schema JSON:
{
...
"fieldMappings": [
{ "sourceFieldName": "metadata_rbac_scope", "targetFieldName": "RbacScope" }
]
}
Eseguire l'indicizzatore
Dopo aver configurato l'indicizzatore, l'origine dati e l'indice, esegui l'indicizzatore per avviare il processo. Se si verifica un problema con la configurazione o le autorizzazioni, questi problemi si verificano in questo passaggio.
Per impostazione predefinita, un indicizzatore viene eseguito non appena lo si pubblica in un servizio di ricerca, ma se la configurazione dell'indicizzatore include disabled impostato su true, l'indicizzatore viene pubblicato in uno stato disabilitato in modo da poter eseguire manualmente l'indicizzatore.
È consigliabile eseguire l'indicizzatore dal portale di Azure in modo da poter monitorare lo stato e i messaggi.
Supponendo che non siano presenti errori, l'indice è ora popolato ed è possibile procedere con query e test.
Rilevamento delle eliminazioni
Per gestire in modo efficace l'eliminazione dei BLOB, assicurarsi di aver abilitato il rilevamento delle eliminazioni prima che l'indicizzatore venga eseguito per la prima volta. Questa funzionalità consente al sistema di rilevare i BLOB eliminati dall'origine ed eliminare il contenuto corrispondente dall'indice.