Condividi tramite


Configurare un servizio di ricerca per connettersi usando un'identità gestita in Ricerca di intelligenza artificiale di Azure

Importante

L'assegnazione di identità gestita assegnata dall'utente è in anteprima pubblica in Condizioni per l'utilizzo supplementari. L'API REST di anteprima di gestione fornisce un'assegnazione di identità gestita assegnata dall'utente per Ricerca di intelligenza artificiale di Azure. Il supporto per un'identità gestita assegnata dal sistema è disponibile a livello generale.

È possibile usare Microsoft Entra ID e assegnazioni di ruolo per le connessioni in uscita da Ricerca di intelligenza artificiale di Azure alle risorse che forniscono dati, intelligenza artificiale applicata o vettorizzazione durante l'indicizzazione o le query.

Per usare i ruoli in una connessione in uscita, configurare innanzitutto il servizio di ricerca in modo da usare un'identità gestita assegnata dal sistema o assegnata dall'utente come principio di sicurezza per il servizio di ricerca in un tenant di Microsoft Entra. Dopo aver creato un'identità gestita, è possibile assegnare ruoli per l'accesso autorizzato. Le identità gestite e le assegnazioni di ruolo eliminano la necessità di passare segreti e credenziali in un stringa di connessione o codice.

Prerequisiti

  • Un servizio di ricerca a livello Basic o superiore, qualsiasi area.

  • Risorsa di Azure che accetta le richieste in ingresso da un'entità di sicurezza Di Microsoft Entra con un'assegnazione di ruolo valida.

Scenari supportati

Ricerca di intelligenza artificiale di Azure può connettersi ad altre risorse di Azure con l'identità gestita assegnata dal sistema o assegnata dall'utente.

  • servizio di ricerca configurazione di un'identità gestita assegnata dal sistema è disponibile a livello generale.
  • servizio di ricerca configurazione di un'identità gestita assegnata dall'utente è disponibile in anteprima pubblica, in condizioni supplementari per l'utilizzo.
  • L'utilizzo di un'identità gestita, assegnata dal sistema o dall'utente, è disponibile a livello generale. Ad esempio, se si vuole un'identità gestita assegnata dall'utente in una connessione all'origine dati dell'indicizzatore, un insieme di credenziali delle chiavi, una sessione di debug o una cache di arricchimento, è possibile usare una versione dell'API REST disponibile a livello generale per creare la connessione, presupponendo che la funzionalità in uso sia disponibile anche a livello generale.

Un'identità gestita dal sistema viene indicata quando un stringa di connessione è l'ID risorsa univoco di un servizio o un'applicazione compatibile con ID Microsoft Entra. Un'identità gestita assegnata dall'utente viene specificata tramite una proprietà "identity".

Un servizio di ricerca usa Archiviazione di Azure come origine dati dell'indicizzatore e come sink di dati per le sessioni di debug, la memorizzazione nella cache di arricchimento e l'archivio conoscenze. Per le funzionalità di ricerca che esegue il writeback nell'archiviazione, l'identità gestita richiede un'assegnazione di ruolo collaboratore, come descritto nella sezione "Assegnare un ruolo".

Scenario System Assegnata dall'utente
Connessioni dell'indicizzatore alle originidati di Azure supportate 1
Azure Key Vault per le chiavi gestite dal cliente
Sessioni di debug (ospitate in Archiviazione di Azure)1 No
Cache di arricchimento (ospitata in Archiviazione di Azure)1,2
Knowledge Store (ospitato in Archiviazione di Azure)1
Connessioni ad Azure OpenAI o Azure AI 3

1 Per la connettività tra la ricerca e l'archiviazione, la configurazione di sicurezza di rete impone vincoli per il tipo di identità gestita che è possibile usare. È possibile usare solo un'identità gestita dal sistema per una connessione alla stessa area all'archiviazione tramite l'eccezione del servizio attendibile o la regola dell'istanza di risorsa. Per informazioni dettagliate, vedere Accesso a un account di archiviazione protetto dalla rete.

2 Per la memorizzazione nella cache di arricchimento nell'archiviazione tabelle di Azure, il servizio di ricerca attualmente non è in grado di connettersi alle tabelle in un account di archiviazione con accesso con chiave condivisa disattivato.

3 Le connessioni ad Azure OpenAI o azure per intelligenza artificiale includono: competenza personalizzata, vettore personalizzato, competenza di incorporamento di Azure OpenAI, vettore OpenAI di Azure, competenza AML, vettore del catalogo dei modelli di Azure AI Studio, competenza di incorporamento della visione artificiale di Azure, competenza di incorporamenti di Visione artificiale di Azure, vettore di Visione artificiale di Azure.

Creare un'identità gestita dal sistema

Quando si abilita un'identità gestita assegnata dal sistema, Microsoft Entra ID crea un'identità per il servizio di ricerca che può essere usato per eseguire l'autenticazione ad altri servizi di Azure all'interno dello stesso tenant. È quindi possibile usare questa identità nelle assegnazioni di ruolo per accedere a dati e modelli.

Un'identità gestita assegnata dal sistema è univoca per il servizio di ricerca e associata al servizio per la sua durata. Un servizio di ricerca può avere una sola identità gestita assegnata dal sistema.

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

  2. In Impostazioni selezionare Identità.

  3. Nella scheda Assegnata dal sistema , in Stato, selezionare .

  4. Seleziona Salva.

    Screenshot della pagina Identity in portale di Azure.

    Dopo aver salvato le impostazioni, la pagina viene aggiornata per visualizzare un identificatore di oggetto assegnato al servizio di ricerca.

    Screenshot di un identificatore dell'oggetto identity di sistema.

Creare un'identità gestita assegnata dall'utente

Importante

Parte di questo scenario è disponibile in anteprima pubblica in Condizioni supplementari per l'utilizzo. L'API REST di anteprima di gestione fornisce la configurazione dell'identità gestita assegnata dall'utente per Ricerca di intelligenza artificiale di Azure.

Un'identità gestita assegnata dall'utente è una risorsa in Azure. È possibile creare più identità gestite assegnate dall'utente se si vuole una maggiore granularità nelle assegnazioni di ruolo. Ad esempio, è possibile che si vogliano identità separate per applicazioni e scenari diversi.

I passaggi sono:

  • Nella sottoscrizione di Azure creare un'identità gestita assegnata dall'utente.
  • Nel servizio di ricerca aggiornare la definizione del servizio per abilitare l'identità gestita assegnata dall'utente (questo passaggio è in anteprima).
  • In altri servizi di Azure a cui ci si vuole connettere, creare un'assegnazione di ruolo per l'identità.
  • Nelle connessioni all'origine dati in Ricerca di intelligenza artificiale di Azure, ad esempio un'origine dati dell'indicizzatore, fare riferimento all'identità gestita dall'utente nei dettagli della connessione. Questo passaggio è disponibile a livello generale se il supporto per la funzionalità è disponibile a livello generale.

È possibile definire l'ambito di un'identità gestita assegnata dall'utente a sottoscrizioni, gruppi di risorse o tipi di risorse.

L'associazione di un'identità gestita assegnata dall'utente è supportata nella portale di Azure, nelle versioni di anteprima delle API REST di gestione e nei pacchetti BETA SDK che forniscono la funzionalità.

  1. Accedere al portale di Azure

  2. Selezionare Crea una risorsa.

  3. Nella barra di ricerca "servizio di ricerca e marketplace" cercare "Identità gestita assegnata dall'utente" e quindi selezionare Crea.

    Screenshot del riquadro Identità gestita assegnata dall'utente in Azure Marketplace.

  4. Selezionare la sottoscrizione, il gruppo di risorse e l'area. Assegnare all'identità un nome descrittivo.

  5. Selezionare Crea e attendere il completamento della distribuzione della risorsa.

    Prima di poter usare l'identità, sono necessari alcuni minuti.

  6. Nella pagina del servizio di ricerca, in Impostazioni selezionare Identità.

  7. Nella scheda Assegnata dall'utente selezionare Aggiungi.

  8. Scegliere la sottoscrizione e quindi selezionare la risorsa gestita assegnata dall'utente creata nel passaggio precedente.

Assegnare un ruolo

Dopo aver ottenuto un'identità gestita, assegnare ruoli che determinano le autorizzazioni del servizio di ricerca per la risorsa di Azure.

  • Le autorizzazioni di lettura sono necessarie per le connessioni dati dell'indicizzatore e per l'accesso a una chiave gestita dal cliente in Azure Key Vault.

  • Le autorizzazioni di scrittura sono necessarie per le funzionalità di arricchimento tramite intelligenza artificiale che usano Archiviazione di Azure per ospitare i dati delle sessioni di debug, la memorizzazione nella cache di arricchimento e l'archiviazione del contenuto a lungo termine in un archivio conoscenze.

I passaggi seguenti illustrano il flusso di lavoro dell'assegnazione di ruolo. Questo esempio è relativo ad Azure OpenAI. Per altre risorse di Azure, vedere Connettersi a Archiviazione di Azure, Connettersi ad Azure Cosmos DB o Connettersi ad Azure SQL.

  1. Accedere al portale di Azure con l'account Azure e passare alla risorsa Azure OpenAI.

  2. Selezionare Controllo di accesso dal menu a sinistra.

  3. Selezionare Aggiungi e quindi Aggiungi assegnazione di ruolo.

  4. In Ruoli della funzione processo selezionare Servizi cognitivi OpenAI User (Utente OpenAI) e quindi selezionare Avanti.

  5. In Membri selezionare Identità gestita e quindi selezionare Membri.

  6. Filtrare in base alla sottoscrizione e al tipo di risorsa (servizio di ricerca) e quindi selezionare l'identità gestita del servizio di ricerca.

  7. Seleziona Rivedi + assegna.

Esempi di stringa di connessione

Dopo aver definito un'identità gestita per il servizio di ricerca e assegnato un'assegnazione di ruolo, è possibile modificare le connessioni in uscita per usare l'ID risorsa univoco dell'altra risorsa di Azure. Ecco alcuni esempi di stringa di connessione per vari scenari.

È possibile usare le versioni dell'API REST disponibili a livello generale e i pacchetti di Azure SDK per queste connessioni.

Suggerimento

È possibile creare la maggior parte di questi oggetti nella portale di Azure, specificando un'identità gestita assegnata dal sistema o dall'utente e quindi visualizzare la definizione JSON per ottenere il stringa di connessione.

Origine dati BLOB (sistema):

Un'origine dati dell'indicizzatore include una proprietà "credentials" che determina la modalità di connessione all'origine dati. Nell'esempio seguente viene illustrato un stringa di connessione che specifica l'ID risorsa univoco di un account di archiviazione.

Microsoft Entra ID autentica la richiesta usando l'identità gestita dal sistema del servizio di ricerca. Si noti che il stringa di connessione non include un contenitore. In una definizione di origine dati, un nome di contenitore viene specificato nella proprietà "container" (non visualizzata), non nella stringa di connessione.

"credentials": {
    "connectionString": "ResourceId=/subscriptions/{subscription-ID}/resourceGroups/{resource-group-name}/providers/Microsoft.Storage/storageAccounts/{storage-account-name};"
    }

Origine dati BLOB (utente):

È anche possibile effettuare una richiesta di ricerca per Archiviazione di Azure con un'identità gestita assegnata dall'utente. L'identità utente del servizio di ricerca viene specificata nella proprietà "identity".

"credentials": {
    "connectionString": "ResourceId=/subscriptions/{subscription-ID}/resourceGroups/{resource-group-name}/providers/Microsoft.Storage/storageAccounts/{storage-account-name};"
    },
  . . .
"identity": {
    "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity",
    "userAssignedIdentity": "/subscriptions/{subscription-ID}/resourceGroups/{resource-group-name}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{user-assigned-managed-identity-name}"
  }

Archivio conoscenze:

Una definizione dell'archivio conoscenze include un stringa di connessione da Archiviazione di Azure. Il stringa di connessione è l'ID risorsa univoco dell'account di archiviazione. Si noti che la stringa non include contenitori o tabelle nel percorso. Questi vengono definiti nella definizione di proiezione incorporata, non nella stringa di connessione.

"knowledgeStore": {
  "storageConnectionString": "ResourceId=/subscriptions/{subscription-ID}/resourceGroups/{resource-group-name}/providers/Microsoft.Storage/storageAccounts/storage-account-name};"
}

Cache di arricchimento:

Un indicizzatore crea, usa e memorizza il contenitore usato per gli arricchimenti memorizzati nella cache. Non è necessario includere il contenitore nella cache stringa di connessione. È possibile trovare l'ID oggetto nella pagina Identità del servizio di ricerca nel portale.

"cache": {
  "enableReprocessing": true,
  "storageConnectionString": "ResourceId=/subscriptions/{subscription-ID}/resourceGroups/{resource-group-name}/providers/Microsoft.Storage/storageAccounts/{storage-account-name};"
}

Sessione di debug:

Una sessione di debug viene eseguita nel portale e accetta un stringa di connessione all'avvio della sessione. È possibile incollare una stringa simile all'esempio seguente.

"ResourceId=/subscriptions/{subscription-ID}/resourceGroups/{resource-group-name}/providers/Microsoft.Storage/storageAccounts/{storage-account-name}/{container-name};",

Competenza personalizzata:

Una competenza personalizzata è destinata all'endpoint di una funzione di Azure o di un'app che ospita codice personalizzato. L'endpoint viene specificato nella definizione della competenza personalizzata. La presenza di "authResourceId" indica al servizio di ricerca di connettersi usando un'identità gestita, passando l'ID applicazione della funzione o dell'app di destinazione nella proprietà .

{
  "@odata.type": "#Microsoft.Skills.Custom.WebApiSkill",
  "description": "A custom skill that can identify positions of different phrases in the source text",
  "uri": "https://contoso.count-things.com",
  "authResourceId": "<Azure-AD-registered-application-ID>",
  "batchSize": 4,
  "context": "/document",
  "inputs": [ ... ],
  "outputs": [ ...]
}

Competenza di incorporamento di Azure OpenAI e vettore OpenAI di Azure:

Una competenza e un vettore di incorporamento di Azure OpenAI nella ricerca di intelligenza artificiale hanno come destinazione l'endpoint di un servizio Azure OpenAI che ospita un modello di incorporamento. L'endpoint viene specificato nella definizione della competenza di incorporamento di Azure OpenAI e/o nella definizione del vettore OpenAI di Azure. L'identità gestita dal sistema viene usata se configurata e se "apikey" e "authIdentity" sono vuoti. La proprietà "authIdentity" viene usata solo per l'identità gestita assegnata dall'utente.

{
  "@odata.type": "#Microsoft.Skills.Text.AzureOpenAIEmbeddingSkill",
  "description": "Connects a deployed embedding model.",
  "resourceUri": "https://url.openai.azure.com/",
  "deploymentId": "text-embedding-ada-002",
  "modelName": "text-embedding-ada-002",
  "inputs": [
    {
      "name": "text",
      "source": "/document/content"
    }
  ],
  "outputs": [
    {
      "name": "embedding"
    }
  ]
}
 "vectorizers": [
    {
      "name": "my_azure_open_ai_vectorizer",
      "kind": "azureOpenAI",
      "azureOpenAIParameters": {
        "resourceUri": "https://url.openai.azure.com",
        "deploymentId": "text-embedding-ada-002",
        "modelName": "text-embedding-ada-002"
      }
    }
  ]

Verificare l'accesso al firewall

Se la risorsa di Azure si trova dietro un firewall, assicurarsi che sia presente una regola in ingresso che ammette le richieste dal servizio di ricerca.

Vedi anche