Ansluta till Azure AI Search med hjälp av roller
Azure tillhandahåller ett globalt autentiserings- och rollbaserat auktoriseringssystem för alla tjänster som körs på plattformen. I Azure AI Search kan du tilldela Azure-roller för:
Åtkomst per användare via sökresultat (kallas ibland säkerhet på radnivå eller säkerhet på dokumentnivå) stöds inte via rolltilldelningar. Som en lösning skapar du säkerhetsfilter som trimmar resultatet efter användaridentitet och tar bort dokument som beställaren inte ska ha åtkomst till. Se det här enterprise-chattexemplet med RAG för en demonstration.
Rolltilldelningar är kumulativa och genomgripande för alla verktyg och klientbibliotek. Du kan tilldela roller med någon av de metoder som stöds som beskrivs i dokumentationen om rollbaserad åtkomstkontroll i Azure.
Rollbaserad åtkomst är valfri, men rekommenderas. Alternativet är nyckelbaserad autentisering, vilket är standardinställningen.
Förutsättningar
En söktjänst i valfri region, på valfri nivå, aktiverad för rollbaserad åtkomst.
Ägare, administratör för användaråtkomst eller en anpassad roll med Behörigheter för Microsoft.Authorization/roleAssignments/write .
Inbyggda roller som används i Azure AI Search
Följande roller är inbyggda. Om de här rollerna inte räcker till skapar du en anpassad roll.
Roll | Plan | beskrivning |
---|---|---|
Ägare | Kontrollera & data | Fullständig åtkomst till kontrollplanet för sökresursen, inklusive möjligheten att tilldela Azure-roller. Endast rollen Ägare kan aktivera eller inaktivera autentiseringsalternativ eller hantera roller för andra användare. Prenumerationsadministratörer är medlemmar som standard. På dataplanet har den här rollen samma åtkomst som rollen Search Service-deltagare. Den innehåller åtkomst till alla dataplansåtgärder förutom möjligheten att fråga eller indexera dokument. |
Deltagare | Kontrollera & data | Samma nivå av kontrollplansåtkomst som Ägare, minus möjligheten att tilldela roller eller ändra autentiseringsalternativ. På dataplanet har den här rollen samma åtkomst som rollen Search Service-deltagare. Den innehåller åtkomst till alla dataplansåtgärder förutom möjligheten att fråga eller indexera dokument. |
Läsare | Kontrollera & data | Läsåtkomst i hela tjänsten, inklusive sökmått, innehållsmått (förbrukad lagring, antal objekt) och objektdefinitioner av dataplansresurser (index, indexerare och så vidare). Det går dock inte att läsa API-nycklar eller läsa innehåll i index. |
Söktjänstdeltagare | Kontrollera & data | Läs- och skrivåtkomst till objektdefinitioner (index, alias, synonymkartor, indexerare, datakällor och kompetensuppsättningar). Den här rollen är till för utvecklare som skapar objekt och för administratörer som hanterar en söktjänst och dess objekt, men utan åtkomst till indexinnehåll. Använd den här rollen för att skapa, ta bort och lista index, hämta indexdefinitioner, hämta tjänstinformation (statistik och kvoter), testa analysverktyg, skapa och hantera synonymkartor, indexerare, datakällor och kompetensuppsättningar. Se Microsoft.Search/searchServices/* för behörighetslistan. |
Search Index Data Contributor | Data | Läs- och skrivåtkomst till innehåll i index. Den här rollen är avsedd för utvecklare eller indexägare som behöver importera, uppdatera eller köra frågor mot dokumentsamlingen för ett index. Den här rollen stöder inte skapande eller hantering av index. Som standard är den här rollen för alla index i en söktjänst. Se Bevilja åtkomst till ett enda index för att begränsa omfånget. |
Dataläsare för sökindex | Data | Skrivskyddad åtkomst för att fråga efter sökindex. Den här rollen gäller för appar och användare som kör frågor. Den här rollen stöder inte läsåtkomst till objektdefinitioner. Du kan till exempel inte läsa en definition av sökindex eller hämta statistik för söktjänsten. Som standard är den här rollen för alla index i en söktjänst. Se Bevilja åtkomst till ett enda index för att begränsa omfånget. |
Kombinera dessa roller för att få tillräcklig behörighet för ditt användningsfall.
Kommentar
Om du inaktiverar rollbaserad åtkomst i Azure fortsätter inbyggda roller för kontrollplanet (ägare, deltagare, läsare) att vara tillgängliga. Om du inaktiverar rollbaserad åtkomst tar du bort bara de datarelaterade behörigheter som är associerade med dessa roller. Om dataplansroller är inaktiverade motsvarar Search Service-deltagaren kontrollplansdeltagaren.
Tilldela roller
I det här avsnittet tilldelar du roller för:
-
Roll ID Owner
8e3af657-a8ff-443c-a75c-2fe8c4bcb635 Contributor
b24988ac-6180-42a0-ab88-20f7382dd24c Reader
acdd72a7-3385-48ef-bd42-f606fba81ae7 Utveckling eller skrivåtkomst till en söktjänst
Uppgift Roll ID CRUD-åtgärder Search Service Contributor
7ca78c08-252a-4471-8644-bb5ff32d4ba0 Läsa in dokument, köra indexeringsjobb Search Index Data Contributor
8ebe5a00-799e-43f5-93ac-243d3dce84a7 Fråga ett index Search Index Data Reader
1407120a-92aa-4202-b7e9-c0e197c71c8f Skrivskyddad åtkomst för frågor
Roll ID Search Index Data Reader
med PowerShell1407120a-92aa-4202-b7e9-c0e197c71c8f
Tilldela roller för tjänstadministration
Som tjänstadministratör kan du skapa och konfigurera en söktjänst och utföra alla kontrollplansåtgärder som beskrivs i REST API för hantering eller motsvarande klientbibliotek. Beroende på vilken roll du har kan du också utföra de flesta REST API-uppgifter för dataplansökning.
Logga in på Azure-portalen.
Gå till söktjänsten.
Välj Åtkomstkontroll (IAM) i det vänstra navigeringsfönstret.
Välj + Lägg till>Lägg till rolltilldelning.
Välj en tillämplig roll:
- Ägare (fullständig åtkomst till alla dataplans- och kontrollplansåtgärder, förutom frågebehörigheter)
- Deltagare (samma som Ägare, förutom behörigheter för att tilldela roller)
- Läsare (godkänd för övervakning och visning av mått)
På fliken Medlemmar väljer du Microsoft Entra-användar- eller gruppidentiteten.
På fliken Granska + tilldela väljer du Granska + tilldela för att tilldela rollen.
Tilldela roller för utveckling
Rolltilldelningar är globala i söktjänsten. Om du vill begränsa behörigheter till ett enda index använder du PowerShell eller Azure CLI för att skapa en anpassad roll.
En annan kombination av roller som ger fullständig åtkomst är Deltagare eller Ägare, plus Dataläsare för sökindex.
Viktigt!
Om du konfigurerar rollbaserad åtkomst för en tjänst eller ett index och du även anger en API-nyckel för begäran använder söktjänsten API-nyckeln för att autentisera.
Logga in på Azure-portalen.
Gå till söktjänsten.
Välj Åtkomstkontroll (IAM) i det vänstra navigeringsfönstret.
Välj + Lägg till>Lägg till rolltilldelning.
Välj en roll:
- Söktjänstdeltagare (create-read-update-delete-åtgärder för index, indexerare, kompetensuppsättningar och andra objekt på den översta nivån)
- Sök indexdatadeltagare (läs in dokument och kör indexeringsjobb)
- Dataläsare för sökindex (fråga efter ett index)
En annan kombination av roller som ger fullständig åtkomst är Deltagare eller Ägare, plus Dataläsare för sökindex.
På fliken Medlemmar väljer du Microsoft Entra-användar- eller gruppidentiteten.
På fliken Granska + tilldela väljer du Granska + tilldela för att tilldela rollen.
Upprepa för de andra rollerna. De flesta utvecklare behöver alla tre.
Tilldela roller för skrivskyddade frågor
Använd rollen Dataläsare för sökindex för appar och processer som bara behöver läsåtkomst till ett index.
Detta är en mycket specifik roll. Den ger GET- eller POST-åtkomst till dokumentsamlingen för ett sökindex för sökning, automatisk komplettering och förslag. Det stöder inte GET- eller LIST-åtgärder för ett index eller andra objekt på den översta nivån eller GET-tjänststatistik.
Det här avsnittet innehåller grundläggande steg för att konfigurera rolltilldelningen och är här för fullständighet, men vi rekommenderar att du använder Azure AI Search utan nycklar för omfattande instruktioner om hur du konfigurerar din app för rollbaserad åtkomst.
Logga in på Azure-portalen.
Gå till söktjänsten.
Välj Åtkomstkontroll (IAM) i det vänstra navigeringsfönstret.
Välj + Lägg till>Lägg till rolltilldelning.
Välj rollen Dataläsare för sökindex.
På fliken Medlemmar väljer du Microsoft Entra-användar- eller gruppidentiteten. Om du konfigurerar behörigheter för en annan tjänst kanske du använder en system- eller användarhanterad identitet. Välj det alternativet om rolltilldelningen är för en tjänstidentitet.
På fliken Granska + tilldela väljer du Granska + tilldela för att tilldela rollen.
Testa rolltilldelningar
Använd en klient för att testa rolltilldelningar. Kom ihåg att roller är kumulativa och ärvda roller som är begränsade till prenumerations- eller resursgruppsnivå inte kan tas bort eller nekas på resursnivå (söktjänst).
Konfigurera ditt program för nyckellösa anslutningar och ha rolltilldelningar på plats innan du testar.
Logga in på Azure-portalen.
Gå till söktjänsten.
På sidan Översikt väljer du fliken Index :
Search Service-deltagare kan visa och skapa ett objekt, men kan inte läsa in dokument eller köra frågor mot ett index. Om du vill verifiera behörigheter skapar du ett sökindex.
Search Index Data Contributors kan läsa in dokument. Det finns inget alternativ för inläsningsdokument i portalen utanför guiden Importera data, men du kan återställa och köra en indexerare för att bekräfta dokumentinläsningsbehörigheter.
Search Index Data Readers kan köra frågor mot indexet. Om du vill verifiera behörigheter använder du Sökutforskaren. Du bör kunna skicka frågor och visa resultat, men du bör inte kunna visa indexdefinitionen eller skapa en.
Testa som aktuell användare
Om du redan är deltagare eller ägare av söktjänsten kan du presentera en ägartoken för din användaridentitet för autentisering till Azure AI Search.
Hämta en ägartoken för den aktuella användaren med hjälp av Azure CLI:
az account get-access-token --scope https://search.azure.com/.default
Eller genom att använda PowerShell:
Get-AzAccessToken -ResourceUrl https://search.azure.com
Klistra in dessa variabler i en ny textfil i Visual Studio Code.
@baseUrl = PASTE-YOUR-SEARCH-SERVICE-URL-HERE @index-name = PASTE-YOUR-INDEX-NAME-HERE @token = PASTE-YOUR-TOKEN-HERE
Klistra in och skicka sedan en begäran för att bekräfta åtkomsten. Här är en som frågar indexet hotels-quickstart
POST https://{{baseUrl}}/indexes/{{index-name}}/docs/search?api-version=2024-07-01 HTTP/1.1 Content-type: application/json Authorization: Bearer {{token}} { "queryType": "simple", "search": "motel", "filter": "", "select": "HotelName,Description,Category,Tags", "count": true }
Bevilja åtkomst till ett enda index
I vissa scenarier kanske du vill begränsa ett programs åtkomst till en enskild resurs, till exempel ett index.
Portalen stöder för närvarande inte rolltilldelningar på den här detaljnivån, men det kan göras med PowerShell eller Azure CLI.
I PowerShell använder du New-AzRoleAssignment, anger Azure-användaren eller gruppnamnet och tilldelningens omfattning.
Läs in modulerna
Azure
ochAzureAD
och anslut till ditt Azure-konto:Import-Module -Name Az Import-Module -Name AzureAD Connect-AzAccount
Lägg till en rolltilldelning som är begränsad till ett enskilt index:
New-AzRoleAssignment -ObjectId <objectId> ` -RoleDefinitionName "Search Index Data Contributor" ` -Scope "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service>/indexes/<index-name>"
Skapa en anpassad roll
Om inbyggda roller inte ger rätt kombination av behörigheter kan du skapa en anpassad roll för att stödja de åtgärder du behöver.
Det här exemplet klonar Search Index Data Reader och lägger sedan till möjligheten att lista index efter namn. Normalt betraktas en lista över index i en söktjänst som en administrativ rättighet.
De här stegen härleds från Skapa eller uppdatera anpassade Azure-roller med hjälp av Azure-portalen. Kloning från en befintlig roll stöds på en söktjänstsida.
De här stegen skapar en anpassad roll som utökar sökfrågebehörigheten till att inkludera listindex efter namn. Vanligtvis betraktas listning av index som en administratörsfunktion.
Gå till söktjänsten i Azure-portalen.
I det vänstra navigeringsfönstret väljer du Åtkomstkontroll (IAM).
I åtgärdsfältet väljer du Roller.
Högerklicka på Sök indexdataläsare (eller en annan roll) och välj Klona för att öppna guiden Skapa en anpassad roll .
På fliken Grundläggande anger du ett namn för den anpassade rollen, till exempel "Sök indexdatautforskaren" och väljer sedan Nästa.
På fliken Behörigheter väljer du Lägg till behörighet.
På fliken Lägg till behörigheter söker du efter och väljer sedan panelen Microsoft Search .
Ange behörigheter för din anpassade roll. Överst på sidan använder du standardalternativet Åtgärder :
- Under Microsoft.Search/operations (Microsoft.Search/operations) väljer du Läs : Lista alla tillgängliga åtgärder.
- Under Microsoft.Search/searchServices/index väljer du Läs: Läs index.
På samma sida växlar du till Dataåtgärder och under Microsoft.Search/searchServices/index/documents väljer du Läs : Läs dokument.
JSON-definitionen ser ut som i följande exempel:
{ "properties": { "roleName": "search index data explorer", "description": "", "assignableScopes": [ "/subscriptions/0000000000000000000000000000000/resourceGroups/free-search-svc/providers/Microsoft.Search/searchServices/demo-search-svc" ], "permissions": [ { "actions": [ "Microsoft.Search/operations/read", "Microsoft.Search/searchServices/indexes/read" ], "notActions": [], "dataActions": [ "Microsoft.Search/searchServices/indexes/documents/read" ], "notDataActions": [] } ] } }
Välj Granska + skapa för att skapa rollen. Nu kan du tilldela användare och grupper till rollen.
Villkorlig åtkomst
Vi rekommenderar villkorsstyrd åtkomst i Microsoft Entra om du behöver tillämpa organisationsprinciper, till exempel multifaktorautentisering.
Följ dessa steg för att aktivera en princip för villkorlig åtkomst för Azure AI Search:
Sök efter villkorsstyrd åtkomst i Microsoft Entra.
Välj Principer.
Välj Ny princip.
I avsnittet Molnappar eller åtgärder i principen lägger du till Azure AI Search som en molnapp beroende på hur du vill konfigurera din princip.
Uppdatera de återstående parametrarna för principen. Ange till exempel vilka användare och grupper som den här principen gäller för.
Spara principen.
Viktigt!
Om din söktjänst har tilldelats en hanterad identitet visas den specifika söktjänsten som en molnapp som kan inkluderas eller exkluderas som en del av principen för villkorsstyrd åtkomst. Principer för villkorlig åtkomst kan inte tillämpas på en specifik söktjänst. Kontrollera i stället att du väljer den allmänna Azure AI Search-molnappen .
Begränsningar
Rollbaserad åtkomstkontroll kan öka svarstiden för vissa begäranden. Varje unik kombination av tjänstresurs (index, indexerare osv.) och tjänstens huvudnamn utlöser en auktoriseringskontroll. Dessa auktoriseringskontroller kan ge upp till 200 millisekunder svarstid per begäran.
I sällsynta fall där begäranden kommer från ett stort antal olika tjänsthuvudnamn, alla riktade mot olika tjänstresurser (index, indexerare osv.), är det möjligt att auktoriseringskontrollerna resulterar i begränsning. Begränsning skulle bara ske om hundratals unika kombinationer av söktjänstens resurs och tjänstens huvudnamn användes inom en sekund.
Felsöka problem med rollbaserad åtkomstkontroll
När du utvecklar program som använder rollbaserad åtkomstkontroll för autentisering kan några vanliga problem uppstå:
Om auktoriseringstoken kom från en hanterad identitet och lämpliga behörigheter nyligen har tilldelats kan det ta flera timmar innan dessa behörighetstilldelningar börjar gälla.
Standardkonfigurationen för en söktjänst är nyckelbaserad autentisering. Om du inte ändrade standardnyckelinställningen till Både eller Rollbaserad åtkomstkontroll nekas alla begäranden som använder rollbaserad autentisering automatiskt oavsett underliggande behörigheter.