Dela via


Ansluta till Azure AI Search med hjälp av nycklar

Azure AI Search stöder både nyckellös och nyckelbaserad autentisering för anslutningar till din söktjänst. En API-nyckel är en unik sträng som består av 52 slumpmässigt genererade siffror och bokstäver. I källkoden kan du ange den som en miljövariabel eller som en appinställning i projektet och sedan referera till variabeln på begäran.

Viktigt!

När du skapar en söktjänst är nyckelbaserad autentisering standard, men det är inte det säkraste alternativet. Vi rekommenderar att du ersätter den med rollbaserad åtkomst.

Aktiverad som standard

Nyckelbaserad autentisering är standardvärdet för nya söktjänster. En begäran som görs till en slutpunkt för söktjänsten godkänns om både begäran och API-nyckeln är giltiga och din söktjänst har konfigurerats för att tillåta API-nycklar på en begäran. I Azure Portal anges autentisering på sidan Nycklar under Inställningar. Antingen API-nycklar eller Båda ger nyckelstöd.

Skärmbild av sidan Nycklar i Azure Portal.

Typer av API-nycklar

Det finns två typer av nycklar som används för att autentisera en begäran:

Typ Behörighetsnivå Högsta Så här skapas
Administratör Fullständig åtkomst (läs-och-skrivbehörighet) för alla innehållsåtgärder 2 1 Två administratörsnycklar, som kallas primära och sekundära nycklar i Azure Portal, genereras när tjänsten skapas och kan återskapas individuellt på begäran.
Fråga Skrivskyddad åtkomst, begränsad till dokumentsamlingen för ett sökindex 50 En frågenyckel genereras med tjänsten. Fler kan skapas på begäran av en administratör för söktjänsten.

1 Om du har två kan du rulla över en nyckel medan du använder den andra nyckeln för fortsatt åtkomst till tjänsten.

Visuellt finns det ingen skillnad mellan en administratörsnyckel eller frågenyckel. Båda nycklarna är strängar som består av 52 slumpmässigt genererade alfanumeriska tecken. Om du tappar reda på vilken typ av nyckel som anges i ditt program kan du kontrollera nyckelvärdena i Azure Portal.

Använda API-nycklar för anslutningar

API-nycklar används för begäranden om dataplan (innehåll), till exempel att skapa eller komma åt ett index eller någon annan begäran som visas i REST-API:erna för sökning.

Du kan använda antingen en API-nyckel eller Azure-roller för hanteringsplanbegäranden (tjänst). När du använder en API-nyckel:

  • Administratörsnycklar används för att skapa, ändra eller ta bort objekt. Administratörsnycklar används också för GET-objektdefinitioner och systeminformation.
  • Frågenycklar distribueras vanligtvis till klientprogram som utfärdar frågor.

Så här används API-nycklar i REST-anrop:

Ange en administratörsnyckel i begärandehuvudet. Du kan inte skicka administratörsnycklar på URI:n eller i brödtexten i begäran. Administratörsnycklar används för åtgärden create-read-update-delete och för begäranden som utfärdas till själva söktjänsten, till exempel LIST-index eller GET-tjänststatistik.

Här är ett exempel på admin-API-nyckelanvändning för en begäran om att skapa index:

### Create an index
POST {{baseUrl}}/indexes?api-version=2024-07-01  HTTP/1.1
  Content-Type: application/json
  api-key: {{adminApiKey}}

    {
        "name": "my-new-index",  
        "fields": [
            {"name": "docId", "type": "Edm.String", "key": true, "filterable": true},
            {"name": "Name", "type": "Edm.String", "searchable": true }
         ]
   }

Ange en frågenyckel i ett begärandehuvud för POST eller på URI:n för GET. Frågenycklar används för åtgärder som riktar sig till index/docs samlingen: Sök dokument, komplettera automatiskt, Föreslå eller HÄMTA dokument.

Här är ett exempel på fråge-API-nyckelanvändning i en GET-begäran (Search Documents):

### Query an index
GET /indexes/my-new-index/docs?search=*&api-version=2024-07-01&api-key={{queryApiKey}}

Kommentar

Det anses vara en dålig säkerhetspraxis att skicka känsliga data, till exempel en api-key i begärande-URI:n. Därför accepterar Azure AI Search endast en frågenyckel som en api-key i frågesträngen. Som en allmän regel rekommenderar vi att du skickar huvudet api-key som en begäran.

Behörigheter för att visa eller hantera API-nycklar

Behörigheter för att visa och hantera API-nycklar förmedlas via rolltilldelningar. Medlemmar i följande roller kan visa och återskapa nycklar:

Följande roller har inte åtkomst till API-nycklar:

  • Läsare
  • Search Index Data Contributor
  • Dataläsare för sökindex

Hitta befintliga nycklar

Du kan visa och hantera API-nycklar i Azure Portal eller via PowerShell, Azure CLI eller REST API.

  1. Logga in på Azure Portal och hitta söktjänsten.

  2. Under Inställningar väljer du Nycklar för att visa administratörs- och frågenycklar.

Skärmbild av en portalsida med API-nycklar.

Skapa frågenycklar

Frågenycklar används för skrivskyddad åtkomst till dokument i ett index för åtgärder som riktar sig till en dokumentsamling. Sök-, filter- och förslagsfrågor är alla åtgärder som tar en frågenyckel. Alla skrivskyddade åtgärder som returnerar systemdata eller objektdefinitioner, till exempel en indexdefinition eller indexeringsstatus, kräver en administratörsnyckel.

Det är viktigt att begränsa åtkomst och åtgärder i klientappar för att skydda söktillgångarna i din tjänst. Använd alltid en frågenyckel i stället för en administratörsnyckel för frågor som kommer från en klientapp.

  1. Logga in på Azure Portal och hitta söktjänsten.

  2. Under Inställningar väljer du Nycklar för att visa API-nycklar.

  3. Under Hantera frågenycklar använder du den frågenyckel som redan har genererats för din tjänst eller skapar nya frågenycklar. Standardfrågenyckeln namnges inte, men andra genererade frågenycklar kan namnges för hanterbarhet.

    Skärmbild av alternativen för hantering av frågenycklar.

Återskapa administratörsnycklar

Två administratörsnycklar skapas för varje tjänst så att du kan rotera en primärnyckel när du använder den sekundära nyckeln för affärskontinuitet.

  1. Under Inställningar väljer du Nycklar och kopierar sedan den sekundära nyckeln.

  2. För alla program uppdaterar du API-nyckelinställningarna så att den sekundära nyckeln används.

  3. Återskapa primärnyckeln.

  4. Uppdatera alla program så att de använder den nya primärnyckeln.

Om du oavsiktligt återskapar båda nycklarna samtidigt misslyckas alla klientbegäranden som använder dessa nycklar med HTTP 403 Förbjuden. Innehållet tas dock inte bort och du är inte permanent utelåst.

Du kan fortfarande komma åt tjänsten via Azure Portal eller programmatiskt. Hanteringsfunktioner fungerar via ett prenumerations-ID, inte en tjänst-API-nyckel, och är därför fortfarande tillgängliga även om dina API-nycklar inte är det.

När du har skapat nya nycklar via portalen eller hanteringslagret återställs åtkomsten till ditt innehåll (index, indexerare, datakällor, synonymkartor) när du har angett dessa nycklar på begäranden.

Säkra API-nycklar

Använd rolltilldelningar för att begränsa åtkomsten till API-nycklar.

Det går inte att använda kundhanterad nyckelkryptering för att kryptera API-nycklar. Endast känsliga data i själva söktjänsten (till exempel indexinnehåll eller anslutningssträng i datakällobjektdefinitioner) kan vara CMK-krypterade.

  1. Gå till söktjänstsidan i Azure Portal.

  2. I det vänstra navigeringsfönstret väljer du Åtkomstkontroll (IAM) och sedan fliken Rolltilldelningar .

  3. I filtret Roll väljer du de roller som har behörighet att visa eller hantera nycklar (ägare, deltagare, söktjänstdeltagare). De resulterande säkerhetsobjekt som tilldelats dessa roller har nyckelbehörigheter för din söktjänst.

  4. Som en försiktighetsåtgärd kontrollerar du även fliken Klassiska administratörer för att avgöra om administratörer och medadministratörer har åtkomst.

Bästa praxis

  • För produktionsarbetsbelastningar växlar du till Microsoft Entra-ID och rollbaserad åtkomst. Om du vill fortsätta använda API-nycklar bör du alltid övervaka vem som har åtkomst till dina API-nycklar och återskapa API-nycklar med jämna mellanrum.

  • Använd endast API-nycklar om avslöjande av data inte är en risk (till exempel när du använder exempeldata) och om du arbetar bakom en brandvägg. Exponering av API-nycklar är en risk för både data och obehörig användning av din söktjänst.

  • Om du använder en API-nyckel lagrar du den på ett säkert sätt någon annanstans, till exempel i Azure Key Vault. Inkludera inte API-nyckeln direkt i koden och publicera den aldrig offentligt.

  • Kontrollera alltid kod, exempel och träningsmaterial innan du publicerar för att se till att du inte oavsiktligt exponerar en API-nyckel.

Se även