Ansluta till Azure AI Search med hjälp av roller
Azure tillhandahåller global autentisering och rollbaserad åtkomstkontroll via Microsoft Entra-ID för alla tjänster som körs på plattformen. I den här artikeln får du lära dig vilka roller som ger åtkomst till sökinnehåll och administration i Azure AI Search.
I Azure AI Search kan du tilldela Azure-roller för:
- Tjänstadministration
- Utveckling eller skrivåtkomst till en söktjänst
- Skrivskyddad åtkomst för frågor
- Begränsad åtkomst till ett enda index
Å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, rollbaserad administratör för åtkomstkontroll eller en anpassad roll med Behörigheter för Microsoft.Authorization/roleAssignments/write .
Så här tilldelar du roller i portalen
Följande steg fungerar för alla rolltilldelningar.
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 för att starta guiden Lägg till rolltilldelning.
Välj en roll. Du kan tilldela flera säkerhetsobjekt, oavsett om användare eller hanterade identiteter till en roll i en genomströmning av guiden, men du måste upprepa de här stegen för varje roll som du definierar.
På fliken Medlemmar väljer du Microsoft Entra-användar- eller gruppidentiteten. Om du konfigurerar behörigheter för en annan Azure-tjänst väljer du en system- eller användarhanterad identitet.
På fliken Granska + tilldela väljer du Granska + tilldela för att tilldela rollen.
Inbyggda roller som används i sökning
Dataplanet refererar till åtgärder mot söktjänstens slutpunkt, till exempel indexering eller frågor, eller någon annan åtgärd som anges i REST-API:er för söktjänsten eller motsvarande Azure SDK-klientbibliotek.
Kontrollplan refererar till Azure-resurshantering, till exempel att skapa eller konfigurera en söktjänst.
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.
Sammanfattning
Behörigheter | Dataläsare för sökindex | Search Index Data Contributor | Söktjänstdeltagare | Ägare/deltagare | Läsare |
---|---|---|---|---|---|
Visa resursen i Azure Portal | ❌ | ❌ | ✅ | ✅ | ✅ |
Visa resursegenskaper/mått/slutpunkt | ❌ | ❌ | ✅ | ✅ | ✅ |
Visa en lista över alla objekt på resursen | ❌ | ❌ | ✅ | ✅ | ✅ |
Åtkomstkvoter och tjänststatistik | ❌ | ❌ | ✅ | ✅ | ❌ |
Läsa/fråga ett index | ✅ | ❌ | ❌ | ❌ | ❌ |
Ladda upp data för indexering | ❌ | ✅ | ❌ | ❌ | ❌ |
Skapa eller redigera index/alias | ❌ | ❌ | ✅ | ✅ | ❌ |
Skapa, redigera och köra indexerare/datakällor/kompetensuppsättningar | ❌ | ❌ | ✅ | ✅ | ❌ |
Skapa eller redigera synonymkartor | ❌ | ❌ | ✅ | ✅ | ❌ |
Skapa eller redigera felsökningssessioner | ❌ | ❌ | ✅ | ✅ | ❌ |
Skapa eller hantera distributioner | ❌ | ❌ | ✅ | ✅ | ❌ |
Skapa eller konfigurera Azure AI Search-resurser | ❌ | ❌ | ✅ | ✅ | ❌ |
Visa/kopiera/återskapa nycklar under Nycklar | ❌ | ❌ | ✅ | ✅ | ❌ |
Visa roller/principer/definitioner | ❌ | ❌ | ✅ | ✅ | ❌ |
Ange autentiseringsalternativ | ❌ | ❌ | ✅ | ✅ | ❌ |
Konfigurera privata anslutningar | ❌ | ❌ | ✅ | ✅ | ❌ |
Konfigurera nätverkssäkerhet | ❌ | ❌ | ✅ | ✅ | ❌ |
Ägare och deltagare beviljar samma behörigheter, förutom att endast Ägare kan tilldela roller.
Ägare och deltagare kan skapa, läsa, uppdatera och ta bort objekt i Azure Portal om API-nycklar är aktiverade. Portalen använder nycklar vid interna anrop till API:er för dataplanet. När du sedan konfigurerar Azure AI Search till att använda "endast roller" kommer ägare och deltagare inte att kunna hantera objekt i portalen med bara dessa rolltilldelningar. Lösningen är att tilldela fler roller, till exempel Search Index Data Reader, Search Index Data Contributor och Search Service Contributor.
Tilldela roller
I det här avsnittet tilldelar du roller för:
- Tjänstadministration
- Utveckling eller skrivåtkomst till en söktjänst
- Skrivskyddad åtkomst för frågor
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. Om du är ägare eller deltagare kan du också utföra de flesta REST API-uppgifter för dataplansökning i Azure Portal.
Roll | ID |
---|---|
Owner |
8e3af657-a8ff-443c-a75c-2fe8c4bcb635 |
Contributor |
b24988ac-6180-42a0-ab88-20f7382dd24c |
Reader |
acdd72a7-3385-48ef-bd42-f606fba81ae7 |
Logga in på Azure-portalen.
Tilldela följande roller:
- Ä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)
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.
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 |
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.
Tilldela följande roller:
- 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)
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.
Roll | ID |
---|---|
Search Index Data Reader med PowerShell |
1407120a-92aa-4202-b7e9-c0e197c71c8f |
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.
Tilldela rollen Dataläsare för sökindex.
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 Portal. 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.
I Azure Portal navigerar du till söktjänsten.
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.