Verbinding maken een zoekservice naar andere Azure-resources met een beheerde identiteit

U kunt een Azure AI-Search-service configureren om verbinding te maken met andere Azure-resources met behulp van een door het systeem toegewezen of door de gebruiker toegewezen beheerde identiteit en een Azure-roltoewijzing. Beheerde identiteiten en roltoewijzingen elimineren de noodzaak om geheimen en referenties door te geven in een verbindingsreeks of code.

Vereisten

  • Een zoekservice in de Basic-laag of hoger.

  • Een Azure-resource die binnenkomende aanvragen van een Microsoft Entra-aanmelding accepteert die een geldige roltoewijzing heeft.

Ondersteunde scenario's

Azure AI Search kan een door het systeem toegewezen of door de gebruiker toegewezen beheerde identiteit gebruiken voor uitgaande verbindingen met Azure-resources. Een door het systeem beheerde identiteit wordt aangegeven wanneer een verbindingsreeks de unieke resource-id is van een Microsoft Entra ID-compatibele service of toepassing. Een door de gebruiker toegewezen beheerde identiteit wordt opgegeven via een 'identiteit'-eigenschap.

Een zoekservice maakt gebruik van Azure Storage als een indexeerfunctiegegevensbron en als gegevenssink voor foutopsporingssessies, verrijkingscaching en kennisarchief. Voor zoekfuncties die terugschrijven naar de opslag, heeft de beheerde identiteit een roltoewijzing inzender nodig, zoals beschreven in de sectie Een rol toewijzen.

Scenario Door het systeem beheerde identiteit Door de gebruiker toegewezen beheerde identiteit (preview)
Indexeerfunctieverbindingen met ondersteunde Azure-gegevensbronnen13 Ja Ja
Azure Key Vault voor door de klant beheerde sleutels Ja Ja
Fouten opsporen in sessies (gehost in Azure Storage)1 Ja Nr.
Verrijkingscache (gehost in Azure Storage)1,2 Ja Ja
Kennisarchief (gehost in Azure Storage)1 Ja Ja
Aangepaste vaardigheden (gehost in Azure Functions of gelijkwaardig) Ja Ja
Vaardigheid voor insluiten van Azure OpenAI Ja Ja
Azure OpenAI vectorizer Ja Ja

1 Voor connectiviteit tussen zoeken en opslag legt uw netwerkbeveiligingsconfiguratie beperkingen op voor welk type beheerde identiteit u kunt gebruiken. Alleen een door het systeem beheerde identiteit kan worden gebruikt voor een verbinding met dezelfde regio met opslag via de uitzondering van de vertrouwde service of regel voor het resource-exemplaar. Zie Toegang tot een met netwerk beveiligd opslagaccount voor meer informatie.

2 Eén methode voor het opgeven van een verrijkingscache bevindt zich in de wizard Gegevens importeren. Momenteel accepteert de wizard geen beheerde identiteit verbindingsreeks voor verrijkingscache. Nadat de wizard is voltooid, kunt u echter de verbindingsreeks in de JSON-definitie van de indexeerfunctie bijwerken om een door het systeem of de gebruiker toegewezen beheerde identiteit op te geven en de indexeerfunctie opnieuw uit te voeren.

3 Opmerking: het uitschakelen van sleutels in het Azure-opslagaccount wordt momenteel niet ondersteund voor Azure Table die wordt gebruikt als gegevensbron. Hoewel beheerde identiteit wordt gebruikt om de opslagsleutels niet expliciet op te geven, gebruikt de AI-zoekservice nog steeds de sleutels voor deze implementatie.

Een door het systeem beheerde identiteit maken

Wanneer een door het systeem toegewezen beheerde identiteit is ingeschakeld, maakt Azure een identiteit voor uw zoekservice die kan worden gebruikt voor verificatie bij andere Azure-services binnen dezelfde tenant en hetzelfde abonnement. U kunt deze identiteit vervolgens gebruiken in Azure RBAC-toewijzingen (op rollen gebaseerd toegangsbeheer) die toegang tot gegevens toestaan tijdens het indexeren.

Een door het systeem toegewezen beheerde identiteit is uniek voor uw zoekservice en is gedurende zijn levensduur gebonden aan de service.

  1. Meld u aan bij Azure Portal en zoek uw zoekservice.

  2. Selecteer Identiteit onder Instellingen.

  3. Selecteer op het tabblad Systeem toegewezen onder Status de optie Aan.

  4. Selecteer Opslaan.

    Schermopname van de pagina Identiteit in Azure Portal.

    Nadat u het bestand hebt opgeslagen, ziet u een object-id die is toegewezen aan uw zoekservice.

    Schermopname van een id van een systeemidentiteitsobject.

Een door de gebruiker toegewezen beheerde identiteit maken (preview)

Een door de gebruiker toegewezen beheerde identiteit is een resource in Azure. Het is handig als u meer granulariteit nodig hebt in roltoewijzingen, omdat u afzonderlijke identiteiten kunt maken voor verschillende toepassingen en scenario's.

Belangrijk

Deze functie is beschikbaar als openbare preview onder aanvullende gebruiksvoorwaarden. Door de gebruiker toegewezen beheerde identiteiten worden momenteel niet ondersteund voor verbindingen met een met netwerk beveiligd opslagaccount. Voor de zoekaanvraag is momenteel een openbaar IP-adres vereist.

  1. Meld u aan bij Azure Portal

  2. Selecteer + Een resource maken.

  3. Zoek in de zoekbalk 'Search-service s en marketplace' naar 'Door gebruiker toegewezen beheerde identiteit' en selecteer vervolgens Maken.

    Schermopname van de door de gebruiker toegewezen tegel beheerde identiteit in Azure Marketplace.

  4. Selecteer het abonnement, de resourcegroep en de regio. Geef de identiteit een beschrijvende naam.

  5. Selecteer Maken en wacht totdat de resource is geïmplementeerd.

    In de volgende stappen wijst u de door de gebruiker toegewezen beheerde identiteit toe aan uw zoekservice.

  6. Selecteer Identiteit op de pagina van de zoekservice onder Instellingen.

  7. Selecteer Toevoegen op het tabblad Toegewezen gebruiker.

  8. Kies het abonnement en selecteer vervolgens de door de gebruiker toegewezen beheerde resource die u in de vorige stap hebt gemaakt.

Firewalltoegang toestaan

Als uw Azure-resource zich achter een firewall bevindt, controleert u of er een binnenkomende regel is waarmee aanvragen van uw zoekservice worden toegegeven.

Een rol toewijzen

Een beheerde identiteit moet worden gekoppeld aan een Azure-rol die machtigingen voor de Azure-resource bepaalt.

  • Machtigingen voor gegevenslezers zijn nodig voor gegevensverbindingen van de indexeerfunctie en voor toegang tot een door de klant beheerde sleutel in Azure Key Vault.

  • Inzendermachtigingen (schrijven) zijn nodig voor AI-verrijkingsfuncties die gebruikmaken van Azure Storage voor het hosten van foutopsporingssessiegegevens, het opslaan van verrijking in cache en langetermijnopslag van inhoud in een kennisarchief.

De volgende stappen zijn voor Azure Storage. Als uw resource Azure Cosmos DB of Azure SQL is, zijn de stappen vergelijkbaar.

  1. Meld u aan bij Azure Portal en zoek uw Azure-resource waartoe de zoekservice toegang moet hebben.

  2. Selecteer in Azure Storage toegangsbeheer (AIM) in het linkernavigatiedeelvenster.

  3. Selecteer Roltoewijzing toevoegen.

  4. Selecteer op de pagina Rol de rollen die nodig zijn voor uw zoekservice:

    Opdracht Roltoewijzing
    Blob-indexering met behulp van een indexeerfunctie Opslagblobgegevenslezer toevoegen
    ADLS Gen2-indexering met behulp van een indexeerfunctie Opslagblobgegevenslezer toevoegen
    Tabelindexering met behulp van een indexeerfunctie Lezer en gegevenstoegang toevoegen
    Bestandsindexering met behulp van een indexeerfunctie Lezer en gegevenstoegang toevoegen
    Schrijven naar een kennisarchief Voeg Storage Blob DataContributor toe voor object- en bestandsprojecties, en Reader en Data Access voor tabelprojecties.
    Schrijven naar een verrijkingscache Inzender voor opslagblobgegevens toevoegen
    Foutopsporingssessiestatus opslaan Inzender voor opslagblobgegevens toevoegen
    Gegevens insluiten (vectoriseren) met behulp van Azure OpenAI-insluitmodellen Cognitive Services OpenAI-gebruiker toevoegen
  5. Selecteer Beheerde identiteit op de pagina Leden.

  6. Selecteer leden. Kies uw abonnement op de pagina Beheerde identiteit selecteren en filter vervolgens op servicetype en selecteer vervolgens de service. Alleen de services met een beheerde identiteit zijn beschikbaar om te selecteren.

    Schermopname van het deelvenster Beheerde identiteit selecteren in de wizard Roltoewijzing.

  7. Selecteer Controleren + toewijzen.

voorbeelden van Verbinding maken iontekenreeksen

Zodra een beheerde identiteit is gedefinieerd voor de zoekservice en een roltoewijzing krijgt, kunnen uitgaande verbindingen worden gewijzigd om de unieke resource-id van de andere Azure-resource te gebruiken. Hier volgen enkele voorbeelden van verbindingsreeks s voor verschillende scenario's.

Blobgegevensbron (systeem):

Een indexeerfunctiegegevensbron bevat een eigenschap referenties die bepaalt hoe de verbinding met de gegevensbron wordt gemaakt. In het volgende voorbeeld ziet u een verbindingsreeks waarin de unieke resource-id van een opslagaccount wordt opgegeven. Microsoft Entra ID verifieert de aanvraag met behulp van de door het systeem beheerde identiteit van de zoekservice. U ziet dat de verbindingsreeks geen container bevat. In een definitie van een gegevensbron wordt een containernaam opgegeven in de eigenschap 'container' (niet weergegeven), niet de verbindingsreeks.

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

Blobgegevensbron (gebruiker):

Een zoekaanvraag naar Azure Storage kan ook worden gedaan onder een door de gebruiker toegewezen beheerde identiteit, momenteel in preview. De gebruikersidentiteit van de zoekservice wordt opgegeven in de eigenschap 'identiteit'. U kunt de portal of de REST API preview versie 2021-04-30-Preview gebruiken om de identiteit in te stellen.

"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}"
  }

Kennisarchief:

Een definitie van een kennisarchief bevat een verbindingsreeks naar Azure Storage. In Azure Storage maakt een kennisarchief projecties als blobs en tabellen. De verbindingsreeks is de unieke resource-id van uw opslagaccount. U ziet dat de tekenreeks geen containers of tabellen in het pad bevat. Deze worden gedefinieerd in de definitie van de ingesloten projectie, niet de verbindingsreeks.

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

Verrijkingscache:

Een indexeerfunctie maakt, gebruikt en onthoudt de container die wordt gebruikt voor de verrijkingen in de cache. Het is niet nodig om de container op te nemen in de cache verbindingsreeks. U vindt de object-id op de pagina Identiteit van uw zoekservice in de portal.

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

Foutopsporingssessie:

Een foutopsporingssessie wordt uitgevoerd in de portal en neemt een verbindingsreeks wanneer u de sessie start. U kunt een tekenreeks plakken die vergelijkbaar is met het volgende voorbeeld.

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

Aangepaste vaardigheid:

Een aangepaste vaardigheid is gericht op het eindpunt van een Azure-functie of app die als host fungeert voor aangepaste code. Het eindpunt wordt opgegeven in de definitie van de aangepaste vaardigheid. De aanwezigheid van de 'authResourceId' vertelt de zoekservice verbinding te maken met behulp van een beheerde identiteit, waarbij de toepassings-id van de doelfunctie of app in de eigenschap wordt doorgegeven.

{
  "@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": [ ...]
}

Azure OpenAI-insluitingsvaardigheden en Azure OpenAI-vectorizer:

Een Azure OpenAI-insluitingsvaardigheid en vectorizer in AI Search richt zich op het eindpunt van een Azure OpenAI-service die als host fungeert voor een insluitmodel. Het eindpunt wordt opgegeven in de definitie van de vaardigheid voor het insluiten van vaardigheden in Azure OpenAI en/of in de Definitie van de Azure OpenAI-vectorizer. De door het systeem beheerde identiteit wordt gebruikt als deze is geconfigureerd en of de 'apikey' en 'authIdentity' leeg zijn. De eigenschap authIdentity wordt alleen gebruikt voor door de gebruiker toegewezen beheerde identiteit.

{
  "@odata.type": "#Microsoft.Skills.Text.AzureOpenAIEmbeddingSkill",
  "description": "Connects a deployed embedding model.",
  "resourceUri": "https://url.openai.azure.com/",
  "deploymentId": "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"
      }
    }
  ]

Zie ook