Azure AI-sökning stöder role-baserad åtkomstkontroll via Microsoft Entra ID. Rollbaserad åtkomst är valfri men rekommenderas. Alternativet är nyckelbaserad autentisering, vilket är standardinställningen.
Om du tilldelar flera roller till ett säkerhetsobjekt kombineras behörigheterna. Rolltilldelningar gäller för alla verktyg och klientbibliotek.
Den här artikeln beskriver hur du tilldelar inbyggda roller för tjänstadministration, utveckling och skrivskyddad fråge- och hämtningsåtkomst. Den innehåller också steg för att skapa anpassade roller och testa rolltilldelningar.
Förutsättningar
En Azure AI-sökning tjänst (alla regioner och nivåer) med role-baserad åtkomst aktiverad.
Behörighet att tilldela Azure roller. Någon av följande roller fungerar:
Granska rolltilldelningsinstruktionerna för din föredragna klient:
Identifiera det tilldelningsvärde som krävs av din föredragna klient. Beroende på klient- och tilldelningstyp kan det här värdet vara användarens huvudnamn, gruppobjekt-ID, tjänstens huvudnamn, program-ID för tjänstens huvudnamn eller Microsoft Entra objekt-ID.
Inbyggda roller
Roller är en samling behörigheter som påverkar kontrollplanet eller dataplanet:
Kontrollplan: Åtgärder för etablering av tjänster, konfiguration och administration. Kontrollplansåtgärder omfattar att skapa eller ta bort söktjänster, lista API-nycklar och hantera nätverks- och autentiseringsinställningar. Tillgänglig via REST-API:erna Azure Resource Manager, Search Management REST API:er och motsvarande Azure SDKs klientbibliotek.
Dataplan: Åtgärder mot söktjänstens slutpunkt. Dataplansåtgärder delas in i två kategorier: objekthantering och innehållsåtkomst. Tillgänglig via rest-API:erna för Search Service och motsvarande Azure SDKs klient-bibliotek.
Rollbeskrivningar
Följande inbyggda roller beviljar behörigheter till Azure AI-sökning. Kontrollplansroller är alltid tillgängliga, medan dataplansroller kräver att rollbaserad åtkomst är aktiverad på din söktjänst. Du kan kombinera inbyggda roller för bredare åtkomst eller skapa en anpassad roll med de specifika behörigheter du behöver.
| Roll |
Flygplan |
beskrivning |
|
Ägare |
Control |
- Fullständig åtkomst till kontrollplanet, inklusive möjligheten att tilldela roller och ändra autentiseringsinställningarna.
- Prenumerationsadministratörer har den här rollen som standard.
- Kan hantera API-nycklar.
- Det går inte att skapa sökobjekt, läsa in dokument, frågeindex eller hämta från kunskapsbaser.
|
|
Deltagare |
Control |
- Samma nivå av kontrollplansåtkomst som Ägare, minus möjligheten att tilldela roller.
|
|
Läsare |
Control |
- Skrivskyddad kontrollplansåtkomst.
- Kan visa tjänstmått och objektdefinitioner.
- Det går inte att visa eller hantera API-nycklar, läsa in dokument, fråga index eller hämta från kunskapsbaser.
|
|
Söktjänstdeltagare |
Kontroll & data |
- Fullständig åtkomst till kontrollplanet. Dataplansåtkomst är begränsad till objekthantering.
- Kan skapa index, indexerare, kompetensuppsättningar, kunskapsbaser och andra sökobjekt.
- Kan hämta administratörs- och fråge-API-nycklar via kontrollplansåtgärder.
- Det går inte att läsa in dokument, frågeindex eller hämta från kunskapsbaser direkt via rollbaserad åtkomst.
- Fullständig behörighetslista finns i
Microsoft.Search/searchServices/*.
|
|
Sökindexdatabidragare |
Uppgifter |
- Läs- och skrivåtkomst till innehåll.
- Kan läsa in dokument, frågeindex och hämta från kunskapsbaser.
- Det går inte att ändra objektdefinitioner eller hämta administratörsnycklar.
|
|
Dataläsare för sökindex |
Uppgifter |
- Skrivskyddad innehållsåtkomst.
- Kan köra frågor mot index och hämta från kunskapsbaser.
- Det går inte att läsa in dokument, ändra objektdefinitioner eller hämta administratörsnycklar.
|
Viktigt!
- Ägare, deltagare och söktjänstdeltagare kan hämta administratörsnycklar som ger fullständig läs-skrivåtkomst till dataplanet. Bevilja endast dessa roller till betrodda användare.
- Som standard gäller dataplansroller för alla index i söktjänsten. För att begränsa databidragsgivare eller dataläsare för sökindex till ett enda index, se Bevilja åtkomst till ett enda index.
Sammanfattning av behörigheter
Använd följande tabell för att snabbt hitta vilken roll som ger de behörigheter du behöver.
| Behörigheter |
Ägare/bidragsgivare |
Läsare |
Söktjänstdeltagare |
Sökindexdatabidragare |
Dataläsare för sökindex |
| Skapa och konfigurera Azure AI-sökning tjänster |
✅ |
❌ |
✅ |
❌ |
❌ |
| Åtkomsttjänst i Azure-portalen |
✅ |
✅ |
✅ |
❌ |
❌ |
| Visa tjänstegenskaper, mått och slutpunkt |
✅ |
✅ |
✅ |
❌ |
❌ |
| Visa en lista över alla objekt i tjänsten |
✅ |
✅ |
✅ |
❌ |
❌ |
| Åtkomstkvoter och tjänststatistik |
✅ |
❌ |
✅ |
❌ |
❌ |
| Visa, kopiera och återskapa nycklar |
✅ |
❌ |
✅ |
❌ |
❌ |
| Ange autentiseringsalternativ |
✅ |
❌ |
✅ |
❌ |
❌ |
| Visa roller, principer och definitioner |
✅ |
✅ |
✅ |
❌ |
❌ |
| Konfigurera nätverkssäkerhet och privata anslutningar |
✅ |
❌ |
✅ |
❌ |
❌ |
| Skapa, köra och hantera sökobjekt 1 |
❌ |
❌ |
✅ |
❌ |
❌ |
| Ladda upp data för indexering 2 |
❌ |
❌ |
❌ |
✅ |
❌ |
| Sök i ett index |
❌ |
❌ |
❌ |
✅ |
✅ |
| Hämta från en kunskapsbas |
❌ |
❌ |
❌ |
✅ |
✅ |
| Förbigå behörighetsfilter med utökad läsåtkomst (förhandsversion) |
❌ |
❌ |
❌ |
✅ |
❌ |
1 Innehåller index, indexerare, datakällor, kompetensuppsättningar, alias, synonymkartor, felsökningssessioner, kunskapsbaser och kunskapskällor. Indexers stöder även kör- och återställningsoperationer.
2 En ägare eller deltagare kan köra guiden Importera data för att skapa och läsa in index, även om de inte kan ladda upp dokument i andra klienter. På samma sätt kan indexerare skriva till valfritt index i söktjänsten, oavsett rolltilldelningar per index. I båda fallen utför söktjänsten (inte användaren) dataplansåtgärderna med hjälp av dess Microsoft.Search/searchServices/indexes/documents/* behörigheter.
Tilldela inbyggda roller
I det här avsnittet tilldelar du roller för:
Tilldela roller för tjänstadministration
Med följande roller kan du skapa, konfigurera och hantera en söktjänst. Dessa roller är hierarkiska, så välj en baserat på den åtkomstnivå du behöver.
| Roll |
ID-nummer |
|
Ägare |
8e3af657-a8ff-443c-a75c-2fe8c4bcb635 |
|
Deltagare |
b24988ac-6180-42a0-ab88-20f7382dd24c |
|
Läsare |
acdd72a7-3385-48ef-bd42-f606fba81ae7 |
Gå till söktjänsten i Azure-portalen.
Välj Åtkomstkontroll (IAM) i den vänstra rutan.
Välj + Lägg till>Lägg till rolltilldelning.
Välj en roll: Ägare, Deltagare eller Läsare.
På fliken Members väljer du Microsoft Entra användar- eller gruppidentitet. Om du konfigurerar behörigheter för en annan Azure tjänst väljer du en systemtilldelad eller användartilldelad hanterad identitet.
På fliken Granska + tilldela väljer du Granska + tilldela för att tilldela rollen.
Logga in på din Azure-prenumeration.
az login
Skapa en rolltilldelning som är begränsad till söktjänsten. Ange tilldelningsobjektet och omfånget.
az role assignment create \
--assignee <assignee> \
--role "Reader" \
--scope "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service>"
Referens:az role assignment create
Importera den nödvändiga modulen och anslut till ditt Azure-konto.
Import-Module Az.Resources
Connect-AzAccount
Skapa en rolltilldelning som är begränsad till söktjänsten. I det här exemplet används ett användarnamn för användarinloggning.
New-AzRoleAssignment -SignInName <email> `
-RoleDefinitionName "Reader" `
-Scope "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service>"
Referens:New-AzRoleAssignment
Öppna ett kommandogränssnitt och logga in på din Azure-prenumeration.
az login
Hämta en åtkomsttoken för Azure Resource Manager.
az account get-access-token --scope https://management.azure.com/.default --query accessToken --output tsv
Skicka en PUT-begäran för att skapa en rolltilldelning som är begränsad till söktjänsten. Ange principalType till User, Groupeller ServicePrincipal för att matcha tilldelningsobjektet.
PUT https://management.azure.com/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service>/providers/Microsoft.Authorization/roleAssignments/<role-assignment-guid>?api-version=2022-04-01 HTTP/1.1
Authorization: Bearer <access-token>
Content-Type: application/json
{
"properties": {
"roleDefinitionId": "/subscriptions/<subscription>/providers/Microsoft.Authorization/roleDefinitions/acdd72a7-3385-48ef-bd42-f606fba81ae7",
"principalId": "<principal-object-id>",
"principalType": "<principal-type>"
}
}
Referens:Rolltilldelningar – Skapa
Tilldela roller för utveckling
Med följande roller kan du skapa sökobjekt, läsa in dokument, frågeindex och hämta från kunskapsbaser. Tilldela alla tre rollerna för att täcka alla utvecklingsaktiviteter.
Gå till söktjänsten i Azure-portalen.
Välj Åtkomstkontroll (IAM) i den vänstra rutan.
Välj + Lägg till>Lägg till rolltilldelning.
Välj Söktjänstdeltagare.
På fliken Members väljer du Microsoft Entra användar- eller gruppidentitet. Om du konfigurerar behörigheter för en annan Azure tjänst väljer du en systemtilldelad eller användartilldelad hanterad identitet.
På fliken Granska + tilldela väljer du Granska + tilldela för att tilldela rollen.
Upprepa de här stegen för att tilldela Search Index Data Contributor och Search Index Data Reader.
Logga in på din Azure-prenumeration.
az login
Skapa en rolltilldelning som är begränsad till söktjänsten. Ange tilldelningsobjektet och omfånget.
az role assignment create \
--assignee <assignee> \
--role "Search Index Data Contributor" \
--scope "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service>"
Referens:az role assignment create
(Valfritt) Skapa en rolltilldelning som är begränsad till ett index. Ange tilldelningsobjektet och omfånget.
az role assignment create \
--assignee <assignee> \
--role "Search Index Data Contributor" \
--scope "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service>/indexes/<index-name>"
Referens:az role assignment create
Importera den nödvändiga modulen och anslut till ditt Azure-konto.
Import-Module Az.Resources
Connect-AzAccount
Skapa en rolltilldelning som är begränsad till söktjänsten. I det här exemplet används ett användarnamn för användarinloggning.
New-AzRoleAssignment -SignInName <email> `
-RoleDefinitionName "Search Index Data Contributor" `
-Scope "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service>"
Referens:New-AzRoleAssignment
(Valfritt) Skapa en rolltilldelning som är begränsad till ett index. I det här exemplet används ett användarnamn för användarinloggning.
New-AzRoleAssignment -SignInName <email> `
-RoleDefinitionName "Search Index Data Contributor" `
-Scope "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service>/indexes/<index-name>"
Referens:New-AzRoleAssignment
Öppna ett kommandogränssnitt och logga in på din Azure-prenumeration.
az login
Hämta en åtkomsttoken för Azure Resource Manager.
az account get-access-token --scope https://management.azure.com/.default --query accessToken --output tsv
Skicka en PUT-begäran för att skapa en rolltilldelning som är begränsad till söktjänsten. Ange principalType till User, Groupeller ServicePrincipal för att matcha tilldelningsobjektet.
PUT https://management.azure.com/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service>/providers/Microsoft.Authorization/roleAssignments/<role-assignment-guid>?api-version=2022-04-01 HTTP/1.1
Authorization: Bearer <access-token>
Content-Type: application/json
{
"properties": {
"roleDefinitionId": "/subscriptions/<subscription>/providers/Microsoft.Authorization/roleDefinitions/8ebe5a00-799e-43f5-93ac-243d3dce84a7",
"principalId": "<principal-object-id>",
"principalType": "<principal-type>"
}
}
Referens:Rolltilldelningar – Skapa
(Valfritt) Skicka en PUT-begäran för att skapa en rolltilldelning som är begränsad till ett index.
PUT https://management.azure.com/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service>/indexes/<index-name>/providers/Microsoft.Authorization/roleAssignments/<role-assignment-guid>?api-version=2022-04-01 HTTP/1.1
Authorization: Bearer <access-token>
Content-Type: application/json
{
"properties": {
"roleDefinitionId": "/subscriptions/<subscription>/providers/Microsoft.Authorization/roleDefinitions/8ebe5a00-799e-43f5-93ac-243d3dce84a7",
"principalId": "<principal-object-id>",
"principalType": "<principal-type>"
}
}
Referens:Rolltilldelningar – Skapa
Tilldela roller för skrivskyddad åtkomst
Använd följande roll för appar och processer som bara behöver läsåtkomst till index och kunskapsbaser. Åtgärder som stöds omfattar sökning, sökning, automatisk komplettering och förslag på index och hämtning för kunskapsbaser.
Gå till söktjänsten i Azure-portalen.
Välj Åtkomstkontroll (IAM) i den vänstra rutan.
Välj + Lägg till>Lägg till rolltilldelning.
Välj rollen Dataläsare för sökindex .
På fliken Members väljer du Microsoft Entra användar- eller gruppidentitet. Om du konfigurerar behörigheter för en annan Azure tjänst väljer du en systemtilldelad eller användartilldelad hanterad identitet.
På fliken Granska + tilldela väljer du Granska + tilldela för att tilldela rollen.
Logga in på din Azure-prenumeration.
az login
Skapa en rolltilldelning som är begränsad till söktjänsten. Ange tilldelningsobjektet och omfånget.
az role assignment create \
--assignee <assignee> \
--role "Search Index Data Reader" \
--scope "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service>"
Referens:az role assignment create
(Valfritt) Skapa en rolltilldelning som är begränsad till ett index. Ange tilldelningsobjektet och omfånget.
az role assignment create \
--assignee <assignee> \
--role "Search Index Data Reader" \
--scope "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service>/indexes/<index-name>"
Referens:az role assignment create
Importera den nödvändiga modulen och anslut till ditt Azure-konto.
Import-Module Az.Resources
Connect-AzAccount
Skapa en rolltilldelning som är begränsad till söktjänsten. I det här exemplet används ett användarnamn för användarinloggning.
New-AzRoleAssignment -SignInName <email> `
-RoleDefinitionName "Search Index Data Reader" `
-Scope "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service>"
Referens:New-AzRoleAssignment
(Valfritt) Skapa en rolltilldelning som är begränsad till ett index. I det här exemplet används ett användarnamn för användarinloggning.
New-AzRoleAssignment -SignInName <email> `
-RoleDefinitionName "Search Index Data Reader" `
-Scope "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service>/indexes/<index-name>"
Referens:New-AzRoleAssignment
Öppna ett kommandogränssnitt och logga in på din Azure-prenumeration.
az login
Hämta en åtkomsttoken för Azure Resource Manager.
az account get-access-token --scope https://management.azure.com/.default --query accessToken --output tsv
Skicka en PUT-begäran för att skapa en rolltilldelning som är begränsad till söktjänsten. Ange principalType till User, Groupeller ServicePrincipal för att matcha tilldelningsobjektet.
PUT https://management.azure.com/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service>/providers/Microsoft.Authorization/roleAssignments/<role-assignment-guid>?api-version=2022-04-01 HTTP/1.1
Authorization: Bearer <access-token>
Content-Type: application/json
{
"properties": {
"roleDefinitionId": "/subscriptions/<subscription>/providers/Microsoft.Authorization/roleDefinitions/1407120a-92aa-4202-b7e9-c0e197c71c8f",
"principalId": "<principal-object-id>",
"principalType": "<principal-type>"
}
}
Referens:Rolltilldelningar – Skapa
(Valfritt) Skicka en PUT-begäran för att skapa en rolltilldelning som är begränsad till ett index.
PUT https://management.azure.com/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service>/indexes/<index-name>/providers/Microsoft.Authorization/roleAssignments/<role-assignment-guid>?api-version=2022-04-01 HTTP/1.1
Authorization: Bearer <access-token>
Content-Type: application/json
{
"properties": {
"roleDefinitionId": "/subscriptions/<subscription>/providers/Microsoft.Authorization/roleDefinitions/1407120a-92aa-4202-b7e9-c0e197c71c8f",
"principalId": "<principal-object-id>",
"principalType": "<principal-type>"
}
}
Referens:Rolltilldelningar – Skapa
Testa rolltilldelningar
Använd en klient för att testa rolltilldelningar. Kom ihåg att rollerna är kumulativa. Du kan inte ta bort eller neka ärvda roller som är begränsade till prenumerations- eller resursgruppsnivå på resursnivå (söktjänst).
Innan du fortsätter konfigurerar du programmet för nyckellösa anslutningar och har rolltilldelningar på plats.
Gå till söktjänsten i Azure-portalen.
I den vänstra rutan väljer du Sökhanteringsindex> för att testa indexrelaterade behörigheter:
Search Service-deltagare kan skapa, ändra och ta bort sökobjekt men kan inte läsa in dokument eller köra frågor. Om du vill verifiera behörigheter skapar du ett sökindex.
Search Index Data Contributors kan ladda upp dokument. Det finns inget alternativ för att läsa in dokument i Azure-portalen utanför guiden Importera data, men du kan reset och köra en indexerare för att bekräfta behörigheter för dokumentinläsning.
Search Index Data Readers kan göra förfrågningar av index. 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 indexdefinitioner eller skapa index.
Den här metoden förutsätter Visual Studio Code med klienttillägget REST.
Öppna ett kommandogränssnitt för Azure CLI och logga in på din Azure-prenumeration.
az login
Hämta en åtkomsttoken för Azure AI-sökning dataplanet.
az account get-access-token --scope https://search.azure.com/.default --query accessToken --output tsv
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
Skicka en begäran som använder de variabler som du anger. För rollen Dataläsare för sökindex kan du skicka en fråga med valfri API-version som stöds.
POST https://{{baseUrl}}/indexes/{{index-name}}/docs/search?api-version=2026-04-01 HTTP/1.1
Content-type: application/json
Authorization: Bearer {{token}}
{
"queryType": "simple",
"search": "motel",
"filter": "",
"select": "HotelName,Description,Category,Tags",
"count": true
}
Referens:Sök dokument
En lyckad fråga returnerar sökresultat med matchande dokument. Om indexet är tomt eller inte har några matchningar value innehåller det en tom matris.
Installera de paket som krävs.
dotnet add package Azure.Search.Documents
dotnet add package Azure.Identity
Använd Azure. Identitet för .NET för tokenautentisering. Microsoft rekommenderar DefaultAzureCredential() för de flesta scenarier.
Här är ett exempel på en klientanslutning med .DefaultAzureCredential()
// Create a SearchIndexClient to send create/delete index commands
// Requires Search Service Contributor role
SearchIndexClient adminClient = new SearchIndexClient(serviceEndpoint, new DefaultAzureCredential());
// Create a SearchClient to load and query documents
// Requires Search Index Data Contributor (load) or Search Index Data Reader (query)
SearchClient srchclient = new SearchClient(serviceEndpoint, indexName, new DefaultAzureCredential());
Referens:SearchClient, SearchIndexClient, DefaultAzureCredential
Här är ett annat exempel på att använda autentiseringsuppgift med klienthemlighet.
var tokenCredential = new ClientSecretCredential(aadTenantId, aadClientId, aadSecret);
SearchClient srchclient = new SearchClient(serviceEndpoint, indexName, tokenCredential);
Här är ett exempel på hur du kör en fråga.
SearchResults<SearchDocument> response = srchclient.Search<SearchDocument>("motel");
foreach (SearchResult<SearchDocument> result in response.GetResults())
{
Console.WriteLine(result.Document["HotelName"]);
}
En lyckad fråga returnerar sökresultat. Om inga dokument matchar är resultatsamlingen tom.
Installera de paket som krävs.
pip install azure-search-documents azure-identity
Använd Azure. Identitet för Python för tokenautentisering.
Använd DefaultAzureCredential om Python-klienten är ett program som kör serversidan. Aktivera interaktiv autentisering om appen körs i en webbläsare.
Här följer ett exempel.
from azure.search.documents import SearchClient
from azure.identity import DefaultAzureCredential
credential = DefaultAzureCredential()
endpoint = "https://<mysearch>.search.windows.net"
index_name = "myindex"
client = SearchClient(endpoint=endpoint, index_name=index_name, credential=credential)
Referens:SearchClient, DefaultAzureCredential
Lägg till de nödvändiga beroendena i din pom.xml.
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-search-documents</artifactId>
<version>11.7.4</version>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
<version>1.15.0</version>
</dependency>
Använd Azure. Identitet för Java för tokenautentisering.
Använd DefaultAzureCredential för appar som körs på Azure.
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.
För närvarande stöder Azure-portalen inte rolltilldelningar på indexnivå. Använd Azure CLI, PowerShell eller REST API för att tilldela roller som är begränsade till ett enda index.
Logga in på din Azure-prenumeration.
az login
Skapa en rolltilldelning som är begränsad till ett enda index. Ange omfånget för tilldelningsobjekt och indexnivå.
az role assignment create \
--assignee <assignee> \
--role "Search Index Data Contributor" \
--scope "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service>/indexes/<index-name>"
Referens:az role assignment create
Importera den nödvändiga modulen och anslut till ditt Azure-konto.
Import-Module Az.Resources
Connect-AzAccount
Skapa en rolltilldelning som är begränsad till ett enda index. I det här exemplet används ett användarnamn för användarinloggning.
New-AzRoleAssignment -SignInName <email> `
-RoleDefinitionName "Search Index Data Contributor" `
-Scope "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service>/indexes/<index-name>"
Referens:New-AzRoleAssignment
Öppna ett kommandogränssnitt och logga in på din Azure-prenumeration.
az login
Hämta en åtkomsttoken för Azure Resource Manager.
az account get-access-token --scope https://management.azure.com/.default --query accessToken --output tsv
Skicka en PUT-begäran för att skapa en rolltilldelning som är begränsad till ett enda index. Ange principalType till User, Groupeller ServicePrincipal för att matcha tilldelningsobjektet.
PUT https://management.azure.com/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service>/indexes/<index-name>/providers/Microsoft.Authorization/roleAssignments/<role-assignment-guid>?api-version=2022-04-01 HTTP/1.1
Authorization: Bearer <access-token>
Content-Type: application/json
{
"properties": {
"roleDefinitionId": "/subscriptions/<subscription>/providers/Microsoft.Authorization/roleDefinitions/8ebe5a00-799e-43f5-93ac-243d3dce84a7",
"principalId": "<principal-object-id>",
"principalType": "<principal-type>"
}
}
Referens:Rolltilldelningar – Skapa
Omfångs- och indexeringsåtgärder per index
Rolltilldelningar per index gäller endast för direkta API-åtgärder, till exempel frågor eller dokumentuppladdningar från användare eller program. Indexerare begränsas inte av behörigheter per index eftersom de fungerar med autentiseringsuppgifter på tjänstnivå.
En användare med rollen Search Service-deltagare kan skapa indexerare som skriver till valfritt index i söktjänsten, även index där användaren inte har någon rolltilldelning per index.
För strikt dataisolering mellan index bör du överväga följande metoder:
- Använd separata söktjänster för team eller användare som behöver isolering på indexnivå.
- Tilldela endast söktjänstdeltagare till administratörer som hanterar indexerare.
- Använd åtkomstkontroll på dokumentnivå med säkerhetsfilter för att begränsa frågeresultat i ett delat index.
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.
I följande exempel klonas Search Index Data Reader och sedan kan du lista index efter namn. Normalt betraktas en lista över index i en söktjänst som en administrativ rättighet.
Logga in på Azure-portalen och gå till söktjänsten.
Välj Åtkomstkontroll (IAM) i den vänstra rutan.
På fliken Roller letar du reda på Sök indexdataläsare eller en annan roll, väljer ellipsen (...) och väljer sedan Klona.
På fliken Basics anger du ett namn för den anpassade rollen, till exempel "Sökindex Data Explorer" och väljer sedan Nästa.
På fliken Behörigheter väljer du Lägg till behörigheter.
I fönstret Lägg till behörigheter väljer du panelen Microsoft Search.
Med Åtgärder markerade överst anger du följande behörigheter:
- Under
Microsoft.Search/operations väljer du Läs: Lista alla tillgängliga åtgärder.
- Under
Microsoft.Search/searchServices/indexes väljer du Läs: Läs index.
Växla till Data actions längst upp, och under Microsoft.Search/searchServices/indexes/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": "List all indexes on the service and query them.",
"assignableScopes": [
"/subscriptions/<subscription>/resourceGroups/<resource-group>"
],
"permissions": [
{
"actions": [
"Microsoft.Search/operations/read",
"Microsoft.Search/searchServices/indexes/read"
],
"notActions": [],
"dataActions": [
"Microsoft.Search/searchServices/indexes/documents/read"
],
"notDataActions": []
}
]
}
}
Välj Lägg till för att stänga fönstret.
Välj Granska + skapa för att skapa rollen.
Nu kan du tilldela användare och grupper till rollen. Mer information om de här stegen finns i Skapa eller uppdatera Azure anpassade roller med hjälp av Azure-portalen.
I det Azure CLI exemplet visas JSON-syntaxen för att skapa en anpassad roll som är en klon av Search Index Data Reader, men med möjlighet att lista alla index efter namn. Stegvisa instruktioner för hur du skapar anpassade roller finns i Skapa eller uppdatera Azure anpassade roller med hjälp av Azure CLI.
Granska listan över atomiska behörigheter för att avgöra vilka du behöver. I det här exemplet behöver du följande behörigheter:
"Microsoft.Search/operations/read",
"Microsoft.Search/searchServices/indexes/read",
"Microsoft.Search/searchServices/indexes/documents/read"
Spara följande rolldefinition i en JSON-fil med namnet search-index-data-explorer.json. För Id anger du en ny GUID som du genererar.
{
"Name": "Search Index Data Explorer",
"Id": "<role-definition-guid>",
"IsCustom": true,
"Description": "List all indexes on the service and query them.",
"Actions": [
"Microsoft.Search/operations/read",
"Microsoft.Search/searchServices/indexes/read"
],
"NotActions": [],
"DataActions": [
"Microsoft.Search/searchServices/indexes/documents/read"
],
"NotDataActions": [],
"AssignableScopes": [
"/subscriptions/<subscription>/resourceGroups/<resource-group>"
]
}
Skapa den anpassade rollen genom att skicka JSON-filen till az role definition create.
az role definition create --role-definition @search-index-data-explorer.json
Referens:az role definition create
PowerShell-exemplet visar JSON-syntaxen för att skapa en anpassad roll som är en klon av Search Index Data Reader, men med möjlighet att lista alla index efter namn. Stegvisa instruktioner för hur du skapar anpassade roller finns i Skapa eller uppdatera Azure anpassade roller med hjälp av Azure PowerShell.
Granska listan över atomiska behörigheter för att avgöra vilka du behöver. I det här exemplet behöver du följande behörigheter:
"Microsoft.Search/operations/read",
"Microsoft.Search/searchServices/indexes/read",
"Microsoft.Search/searchServices/indexes/documents/read"
Spara följande rolldefinition i en JSON-fil med namnet search-index-data-explorer.json. För Id anger du en ny GUID som du genererar.
{
"Name": "Search Index Data Explorer",
"Id": "<role-definition-guid>",
"IsCustom": true,
"Description": "List all indexes on the service and query them.",
"Actions": [
"Microsoft.Search/operations/read",
"Microsoft.Search/searchServices/indexes/read"
],
"NotActions": [],
"DataActions": [
"Microsoft.Search/searchServices/indexes/documents/read"
],
"NotDataActions": [],
"AssignableScopes": [
"/subscriptions/<subscription>/resourceGroups/<resource-group>"
]
}
Skapa den anpassade rollen genom att skicka JSON-filen till New-AzRoleDefinition.
New-AzRoleDefinition -InputFile "search-index-data-explorer.json"
Referens:New-AzRoleDefinition
I REST API-exemplet visas JSON-syntaxen för att skapa en anpassad roll som är en klon av Search Index Data Reader, men med möjlighet att lista alla index efter namn. Stegvisa instruktioner för hur du skapar anpassade roller finns i Skapa eller uppdatera Azure anpassade roller med hjälp av REST-API:et.
Granska listan över atomiska behörigheter för att avgöra vilka du behöver. I det här exemplet behöver du följande behörigheter:
"Microsoft.Search/operations/read",
"Microsoft.Search/searchServices/indexes/read",
"Microsoft.Search/searchServices/indexes/documents/read"
Skapa den anpassade rollen genom att skicka följande begäran till rolldefinitionens slutpunkt.
PUT https://management.azure.com/subscriptions/<subscription>/providers/Microsoft.Authorization/roleDefinitions/<role-definition-guid>?api-version=2022-04-01 HTTP/1.1
Authorization: Bearer <access-token>
Content-Type: application/json
{
"properties": {
"roleName": "Search Index Data Explorer",
"description": "List all indexes on the service and query them.",
"type": "CustomRole",
"permissions": [
{
"actions": [
"Microsoft.Search/operations/read",
"Microsoft.Search/searchServices/indexes/read"
],
"notActions": [],
"dataActions": [
"Microsoft.Search/searchServices/indexes/documents/read"
],
"notDataActions": []
}
],
"assignableScopes": [
"/subscriptions/<subscription>/resourceGroups/<resource-group>"
]
}
}
Referens:Rolldefinitioner – Skapa eller uppdatera
Skapa en princip för villkorsstyrd åtkomst
Om du behöver framtvinga organisationsprinciper, till exempel multifaktorautentisering, använder du Villkorsstyrd åtkomst i Microsoft Entra.
Så här skapar du en princip för villkorlig åtkomst för Azure AI-sökning:
Logga in på Azure-portalen.
Sök efter Villkorsstyrd åtkomst i Microsoft Entra.
På sidan Översikt väljer du Skapa ny princip.
Under Molnappar eller åtgärder lägger du till Azure AI-sökning som en molnapp, beroende på hur du vill konfigurera din princip.
Uppdatera de återstående parametrarna för din policy. Ange till exempel vilka användare och grupper som principen gäller för.
Spara principen.
Viktigt!
Om söktjänsten har tilldelats en hanterad identitet visas den specifika söktjänsten som en molnapp. Men att välja den specifika söktjänsten framtvingar inte principen. Välj i stället den allmänna Azure AI-sökning molnappen för att tillämpa principer för villkorsstyrd åtkomst i söktjänsten.
Felsökning
När du utvecklar program som använder rollbaserad åtkomstkontroll för autentisering kan det uppstå några vanliga problem:
Standardkonfigurationen för en söktjänst är nyckelbaserad autentisering. Om du inte ändrar den här inställningen till Både eller Rollbaserad åtkomstkontroll nekas alla begäranden som använder rollbaserad autentisering automatiskt, oavsett underliggande behörigheter.
Om din begäran innehåller en API-nyckel tillsammans med rollbaserade autentiseringsuppgifter autentiseras tjänsten med hjälp av nyckeln. Ta bort API-nyckeln från dina begärandehuvuden för att använda rollbaserad autentisering.
Om auktoriseringstoken kommer från en hanterad identitet och du nyligen har tilldelat lämpliga behörigheter kan det ta flera timmar innan behörighetstilldelningarna börjar gälla.
Om frågor med behörigheter på dokumentnivå inte returnerar förväntade resultat använder du Search Index Data Contributor eller skapar en anpassad roll med utökade behörigheter (förhandsversion) för att undersöka.
Nästa steg
Den här artikeln beskriver hur du tilldelar roller för kontroll- och dataplansåtgärder på Azure AI-sökning. Omfattande instruktioner om hur du lägger till rollbaserad åtkomst till programkoden: