Connessione a Ricerca di intelligenza artificiale di Azure usando l'autenticazione con chiave

Ricerca di intelligenza artificiale di Azure offre l'autenticazione basata su chiavi che è possibile usare nelle connessioni al servizio di ricerca. Una chiave API è una stringa univoca composta da 52 numeri e lettere generati in modo casuale. Una richiesta inviata a un endpoint del servizio di ricerca viene accettata se la richiesta e la chiave API sono valide.

Nota

Si noti rapidamente come viene usata la terminologia "chiave" in Ricerca di intelligenza artificiale di Azure. Una "chiave API", descritta in questo articolo, fa riferimento a un GUID usato per l'autenticazione di una richiesta. Un termine separato, "chiave documento", fa riferimento a una stringa univoca nel contenuto indicizzato usato per identificare in modo univoco i documenti in un indice di ricerca.

Tipi di chiavi API

Esistono due tipi di chiavi usate per l'autenticazione di una richiesta:

Type Livello di autorizzazione Massimo Modalità di creazione
Amministratore Accesso completo (lettura/scrittura) per tutte le operazioni sul contenuto 2 1 Due chiavi amministratore, chiamate chiave primaria e secondaria nel portale, vengono generate quando il servizio viene creato e possono essere generate di nuovo singolarmente su richiesta.
Query Accesso in sola lettura, con ambito alla raccolta documenti di un indice di ricerca 50 Viene generata una chiave di query con il servizio. Altre informazioni possono essere create su richiesta da un amministratore del servizio di ricerca.

1 Avere due consente di eseguire il rollover di una chiave durante l'uso della seconda chiave per l'accesso continuo al servizio.

Visivamente, non esiste alcuna distinzione tra una chiave di amministrazione o una chiave di query. Entrambe le chiavi sono stringhe composte da 52 caratteri alfanumerici generati in modo casuale. Se si perde traccia del tipo di chiave specificato nell'applicazione, è possibile controllare i valori delle chiavi nel portale.

Usare le chiavi API nelle connessioni

Le chiavi API vengono usate per le richieste del piano dati (contenuto), ad esempio la creazione o l'accesso a un indice o a qualsiasi altra richiesta rappresentata nelle API REST di ricerca. Al momento della creazione del servizio, una chiave API è l'unico meccanismo di autenticazione per le operazioni del piano dati, ma è possibile sostituire o integrare l'autenticazione della chiave con i ruoli di Azure se non è possibile usare chiavi hardcoded nel codice.

Le chiavi API vengono specificate nelle richieste client a un servizio di ricerca. Il passaggio di una chiave API valida nella richiesta è considerato la prova che la richiesta proviene da un client autorizzato. Se si creano, modificano o eliminano oggetti, è necessaria una chiave API di amministrazione. In caso contrario, le chiavi di query vengono in genere distribuite alle applicazioni client che eseguono query.

È possibile specificare le chiavi API in un'intestazione di richiesta per le chiamate API REST o nel codice che chiama le librerie client azure.search.documents negli SDK di Azure. Se si usa il portale di Azure per eseguire attività, l'assegnazione di ruolo determina il livello di accesso.

Le procedure consigliate per l'uso di chiavi hardcoded nei file di origine includono:

  • Usare le chiavi API solo se la divulgazione dei dati non è un rischio (ad esempio, quando si usano dati di esempio) e se si opera dietro un firewall. L'esposizione delle chiavi API è un rischio sia per i dati che per l'uso non autorizzato del servizio di ricerca.

  • Controllare sempre il codice, gli esempi e il materiale di training prima della pubblicazione per assicurarsi di non aver lasciato le chiavi API valide.

  • Per i carichi di lavoro di produzione, passare all'ID Microsoft Entra e all'accesso in base al ruolo. In alternativa, se si vuole continuare a usare le chiavi API, assicurarsi di monitorare sempre chi può accedere alle chiavi API e rigenerare le chiavi API a cadenza regolare.

Come vengono usate le chiavi API nel portale di Azure:

  • L'autenticazione della chiave è incorporata. Per impostazione predefinita, il portale prova prima le chiavi API. Tuttavia, se si disabilitano le chiavi API e si configurano le assegnazioni di ruolo, il portale usa invece le assegnazioni di ruolo.

Autorizzazioni per visualizzare o gestire le chiavi API

Le autorizzazioni per la visualizzazione e la gestione delle chiavi API vengono trasmesse tramite assegnazioni di ruolo. I membri dei ruoli seguenti possono visualizzare e ricreare una chiave:

I ruoli seguenti non hanno accesso alle chiavi API:

  • Lettore
  • Collaboratore ai dati dell'indice di ricerca
  • Lettore di dati dell'indice di ricerca

Trovare le chiavi esistenti

È possibile visualizzare e gestire le chiavi API nel portale di Azure oppure tramite PowerShell, l'interfaccia della riga di comando di Azure o l'API REST.

  1. Accedere al portale di Azure e trovare il servizio di ricerca.

  2. In Impostazioni selezionare Chiavi per visualizzare le chiavi di amministratore ed eseguire query.

Screenshot of a portal page showing API keys.

Creare chiavi di query

Le chiavi di query vengono usate per l'accesso in sola lettura ai documenti all'interno di un indice per le operazioni destinate a una raccolta di documenti. Le query di ricerca, filtro e suggerimento sono tutte operazioni che accettano una chiave di query. Qualsiasi operazione di sola lettura che restituisce definizioni di dati o oggetti di sistema, ad esempio una definizione di indice o uno stato dell'indicizzatore, richiede una chiave di amministratore.

Limitare l'accesso e le operazioni nelle app client è essenziale per proteggere gli asset di ricerca nel servizio. Usare sempre una chiave di query anziché una chiave di amministrazione per qualsiasi query proveniente da un'app client.

  1. Accedere al portale di Azure e trovare il servizio di ricerca.

  2. In Impostazioni selezionare Chiavi per visualizzare le chiavi API.

  3. In Gestisci chiavi di query usare la chiave di query già generata per il servizio o creare nuove chiavi di query. La chiave di query predefinita non è denominata, ma altre chiavi di query generate possono essere denominate per la gestibilità.

    Screenshot of the query key management options.

Riscrivere una chiave amministratore

Vengono create due chiavi di amministrazione per ogni servizio in modo che sia possibile ruotare una chiave primaria usando la chiave secondaria per la continuità aziendale.

  1. In Impostazioni selezionare Chiavi e quindi copiare la chiave secondaria.

  2. Per tutte le applicazioni, aggiornare le impostazioni della chiave API per usare la chiave secondaria.

  3. Riscrivere la chiave primaria.

  4. Aggiornare tutte le applicazioni affinché usino la nuova chiave primaria.

Se si rigenerano inavvertitamente entrambe le chiavi contemporaneamente, tutte le richieste client che usano tali chiavi avranno esito negativo con HTTP 403 Non consentito. Tuttavia, il contenuto non viene eliminato e non viene bloccato in modo permanente.

È comunque possibile accedere al servizio tramite il portale o a livello di codice. Le funzioni di gestione sono operative tramite un ID sottoscrizione non una chiave API del servizio e sono quindi ancora disponibili anche se le chiavi API non sono.

Dopo aver creato nuove chiavi tramite il portale o il livello di gestione, l'accesso viene ripristinato al contenuto (indici, indicizzatori, origini dati, mappe sinonimi) dopo aver fornito tali chiavi alle richieste.

Proteggere le chiavi API

Usare le assegnazioni di ruolo per limitare l'accesso alle chiavi API.

Si noti che non è possibile usare la crittografia della chiave gestita dal cliente per crittografare le chiavi API. Solo i dati sensibili all'interno del servizio di ricerca stesso (ad esempio, il contenuto dell'indice o i stringa di connessione nelle definizioni degli oggetti origine dati) possono essere crittografati tramite chiave gestita dal cliente.

  1. Passare alla pagina del servizio di ricerca in portale di Azure.

  2. Nel riquadro di spostamento sinistro selezionare Controllo di accesso (IAM) e quindi selezionare la scheda Assegnazioni di ruolo.

  3. Nel filtro Ruolo selezionare i ruoli che dispongono dell'autorizzazione per visualizzare o gestire le chiavi (Proprietario, Collaboratore, Collaboratore servizio di ricerca). Le entità di sicurezza risultanti assegnate a tali ruoli dispongono delle autorizzazioni chiave per il servizio di ricerca.

  4. Per precauzione, controllare anche la scheda Amministratori classici per determinare se gli amministratori e i coamministratori hanno accesso.

Vedi anche