Azure AI Zoeken ondersteunt toegangsbeheer via Microsoft Entra ID. Op rollen gebaseerde toegang is optioneel, maar wordt aanbevolen. Het alternatief is verificatie op basis van sleutels. Dit is de standaardinstelling.
Als u meerdere rollen aan een beveiligingsprincipaal toewijst, worden machtigingen gecombineerd. Roltoewijzingen zijn van toepassing op alle hulpprogramma's en clientbibliotheken.
In dit artikel wordt uitgelegd hoe u ingebouwde rollen toewijst voor servicebeheer, ontwikkeling en alleen-lezen toegang voor query's en ophalen. Het biedt ook stappen voor het maken van aangepaste rollen en het testen van roltoewijzingen.
Vereisten
Een Azure AI Zoeken-service (elke regio en elke laag) met role-gebaseerde toegang ingeschakeld.
Machtiging voor het toewijzen van Azure rollen. Een van de volgende rollen werkt:
Bekijk de instructies voor roltoewijzing voor uw voorkeursclient:
Bepaal de waarde van de toegewezene die uw gewenste client vereist. Afhankelijk van het type client en toegewezen gebruiker kan deze waarde een user principal name, group object ID, service principal name, service principal application ID of Microsoft Entra object ID zijn.
Ingebouwde rollen
Rollen zijn een verzameling machtigingen die van invloed zijn op het besturingsvlak of het gegevensvlak:
Besturingsvlak: Bewerkingen voor het inrichten, configureren en beheren van services. Besturingsvlakbewerkingen omvatten het maken of verwijderen van zoekservices, het weergeven van API-sleutels en het beheren van netwerk- en verificatie-instellingen. Beschikbaar via de Azure Resource Manager REST API's, Search Management REST API's en equivalente Azure SDK clientbibliotheken.
Gegevensvlak: Bewerkingen tegen het eindpunt van de zoekservice. Gegevensvlakbewerkingen worden onderverdeeld in twee categorieën: objectbeheer en toegang tot inhoud. Beschikbaar via de Search Service REST API's en equivalente Azure SDK-clientbibliotheken.
Beschrijvingen van rollen
De volgende ingebouwde rollen verlenen machtigingen aan Azure AI Zoeken. Rollen in het besturingsvlak zijn altijd beschikbaar, terwijl toegang op basis van rollen moet worden ingeschakeld voor gegevensvlakrollen op uw zoekservice. U kunt ingebouwde rollen combineren voor bredere toegang of een aangepaste rol maken met de specifieke machtigingen die u nodig hebt.
| Rol |
Vliegtuig |
Beschrijving |
|
Eigenaar |
Beheersen |
- Volledige toegang tot het besturingsvlak, inclusief de mogelijkheid om rollen toe te wijzen en verificatie-instellingen te wijzigen.
- Abonnementsbeheerders hebben deze rol standaard.
- Kan API-sleutels beheren.
- Kan geen zoekobjecten maken, geen documenten laden, geen query-indexen uitvoeren of gegevens ophalen uit kennisbanken.
|
|
Inzender |
Beheersen |
- Hetzelfde niveau van toegang tot het besturingsvlak als eigenaar, minus de mogelijkheid om rollen toe te wijzen.
|
|
Lezer |
Beheersen |
- Alleen-lezen toegang tot het controlevlak.
- Kan metrische servicegegevens en objectdefinities weergeven.
- Kan API-sleutels niet weergeven of beheren, documenten laden, queryindexen uitvoeren of ophalen uit knowledge bases.
|
|
Inzender voor zoekservice |
Controle & Data |
- Volledige toegang tot de control plane. Toegang tot het gegevensvlak is beperkt tot objectbeheer.
- Kan indexen, indexeerfuncties, vaardigheidensets, kennisbanken en andere zoekobjecten maken.
- Kan beheer- en query-API-sleutels ophalen via besturingsvlakbewerkingen.
- Kan geen documenten laden, indexen opvragen of rechtstreeks ophalen uit knowledge bases via op rollen gebaseerde toegang.
- Zie
Microsoft.Search/searchServices/* voor de volledige lijst met machtigingen.
|
|
Inzender voor zoekindexgegevens |
Gegevens |
- Lees-schrijftoegang tot inhoud.
- Kan documenten laden, indexen opvragen en ophalen uit knowledge bases.
- Kan objectdefinities niet wijzigen of beheerderssleutels ophalen.
|
|
Zoekindexgegevenslezer |
Gegevens |
- Alleen-lezen inhoudstoegang.
- Kan query's uitvoeren op indexen en ophalen uit knowledge bases.
- Kan geen documenten laden, objectdefinities wijzigen of beheerderssleutels ophalen.
|
Belangrijk
- Eigenaar, Inzender en Inzender voor zoekservice kunnen beheerderssleutels ophalen, die volledige lees-/schrijftoegang tot het gegevensvlak bieden. Wijs deze rollen alleen toe aan vertrouwde gebruikers.
- Gegevensvlakrollen zijn standaard van toepassing op alle indexen in de zoekservice. Zie Toegang verlenen tot één index als u de Search Index Data Contributor of Search Index Data Reader wilt beperken tot één index.
Samenvatting van machtigingen
Gebruik de volgende tabel om snel te vinden welke rol de benodigde machtigingen biedt.
| Machtigingen |
Eigenaar/bijdrager |
Lezer |
Inzender voor zoekservice |
Inzender voor zoekindexgegevens |
Zoekindexgegevenslezer |
| Azure AI Zoeken-services maken en configureren |
✅ |
❌ |
✅ |
❌ |
❌ |
| Toegangsdienst in de Azure portal |
✅ |
✅ |
✅ |
❌ |
❌ |
| Service-eigenschappen, metrische gegevens en eindpunt weergeven |
✅ |
✅ |
✅ |
❌ |
❌ |
| Alle objecten in de service weergeven |
✅ |
✅ |
✅ |
❌ |
❌ |
| Toegangsquota en servicestatistieken |
✅ |
❌ |
✅ |
❌ |
❌ |
| Sleutels weergeven, kopiëren en opnieuw genereren |
✅ |
❌ |
✅ |
❌ |
❌ |
| Verificatieopties instellen |
✅ |
❌ |
✅ |
❌ |
❌ |
| Rollen, beleidsregels en definities weergeven |
✅ |
✅ |
✅ |
❌ |
❌ |
| Netwerkbeveiliging en privéverbindingen configureren |
✅ |
❌ |
✅ |
❌ |
❌ |
| Zoekobjecten maken, uitvoeren en beheren 1 |
❌ |
❌ |
✅ |
❌ |
❌ |
| Gegevens uploaden voor indexering 2 |
❌ |
❌ |
❌ |
✅ |
❌ |
| Een query op uitvoeren op een index |
❌ |
❌ |
❌ |
✅ |
✅ |
| Ophalen uit een knowledge base |
❌ |
❌ |
❌ |
✅ |
✅ |
| Machtigingsfilters overslaan met verhoogde leesrechten (preview) |
❌ |
❌ |
❌ |
✅ |
❌ |
1 Bevat indexen, indexeerfuncties, gegevensbronnen, vaardighedensets, aliassen, synoniemenkaarten, foutopsporingssessies, knowledge bases en kennisbronnen. Indexers ondersteunen ook start- en resetbewerkingen.
2 Een eigenaar of inzender kan de wizard Gegevens importeren uitvoeren om indexen te maken en te laden, ook al kunnen ze geen documenten uploaden in andere clients. Op dezelfde manier kunnen indexeerfuncties naar elke index in de zoekservice schrijven, ongeacht roltoewijzingen per index. In beide gevallen voert de zoekservice (niet de gebruiker) de gegevensvlakacties uit met behulp van de Microsoft.Search/searchServices/indexes/documents/* machtigingen.
Ingebouwde rollen toewijzen
In deze sectie wijst u rollen toe voor:
Rollen toewijzen voor servicebeheer
Met de volgende rollen kunt u een zoekservice maken, configureren en beheren. Deze rollen zijn hiërarchisch, dus selecteer er een op basis van het benodigde toegangsniveau.
| Rol |
Id |
|
Eigenaar |
8e3af657-a8ff-443c-a75c-2fe8c4bcb635 |
|
Inzender |
b24988ac-6180-42a0-ab88-20f7382dd24c |
|
Lezer |
acdd72a7-3385-48ef-bd42-f606fba81ae7 |
Ga naar uw zoekservice in de Azure portal.
Selecteer toegangsbeheer (IAM) in het linkerdeelvenster.
Selecteer +>Roltoewijzing toevoegen.
Selecteer een rol: Eigenaar, Inzender of Lezer.
Selecteer op het tabblad Lids de Microsoft Entra gebruikers- of groepsidentiteit. Als u machtigingen instelt voor een andere Azure-service, selecteert u een door het systeem toegewezen of door de gebruiker toegewezen beheerde identiteit.
Selecteer op het tabblad Beoordelen en toewijzen de optie Beoordelen en toewijzen om de rol toe te wijzen.
Meld u aan bij uw Azure-abonnement.
az login
Maak een roltoewijzing die is afgestemd op de zoekservice. Geef de toegewezen gebruiker en het bereik op.
az role assignment create \
--assignee <assignee> \
--role "Reader" \
--scope "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service>"
Naslaginformatie:az role assignment create
Importeer de vereiste module en maak verbinding met uw Azure-account.
Import-Module Az.Resources
Connect-AzAccount
Maak een roltoewijzing die is afgestemd op de zoekservice. In dit voorbeeld wordt een aanmeldingsnaam van een gebruiker gebruikt.
New-AzRoleAssignment -SignInName <email> `
-RoleDefinitionName "Reader" `
-Scope "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service>"
Referentie:New-AzRoleAssignment
Open een opdrachtshell en meld u aan bij uw Azure-abonnement.
az login
Een toegangstoken ophalen voor Azure Resource Manager.
az account get-access-token --scope https://management.azure.com/.default --query accessToken --output tsv
Verzend een PUT-aanvraag om een roltoewijzing te maken die is afgestemd op de zoekservice. Stel principalType in op User, Group of ServicePrincipal zodat deze overeenkomt met de toegewezene.
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>"
}
}
Referentie:Roltoewijzingen - Aanmaken
Rollen toewijzen voor ontwikkeling
Met de volgende rollen kunt u zoekobjecten maken, documenten laden, queryindexen uitvoeren en ophalen uit knowledge bases. Wijs alle drie de rollen toe om het volledige scala aan ontwikkelingstaken te behandelen.
Ga naar uw zoekservice in de Azure portal.
Selecteer toegangsbeheer (IAM) in het linkerdeelvenster.
Selecteer +>Roltoewijzing toevoegen.
Selecteer Inzender voor zoekservice.
Selecteer op het tabblad Lids de Microsoft Entra gebruikers- of groepsidentiteit. Als u machtigingen instelt voor een andere Azure-service, selecteert u een door het systeem toegewezen of door de gebruiker toegewezen beheerde identiteit.
Selecteer op het tabblad Beoordelen en toewijzen de optie Beoordelen en toewijzen om de rol toe te wijzen.
Herhaal deze stappen om Search Index Data Contributor en Search Index Data Reader toe te wijzen.
Meld u aan bij uw Azure-abonnement.
az login
Maak een roltoewijzing die is afgestemd op de zoekservice. Geef de toegewezen gebruiker en het bereik op.
az role assignment create \
--assignee <assignee> \
--role "Search Index Data Contributor" \
--scope "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service>"
Naslaginformatie:az role assignment create
(Optioneel) Maak een roltoewijzing die is afgestemd op een index. Geef de toegewezen gebruiker en het bereik op.
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>"
Naslaginformatie:az role assignment create
Importeer de vereiste module en maak verbinding met uw Azure-account.
Import-Module Az.Resources
Connect-AzAccount
Maak een roltoewijzing die is afgestemd op de zoekservice. In dit voorbeeld wordt een aanmeldingsnaam van een gebruiker gebruikt.
New-AzRoleAssignment -SignInName <email> `
-RoleDefinitionName "Search Index Data Contributor" `
-Scope "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service>"
Referentie:New-AzRoleAssignment
(Optioneel) Maak een roltoewijzing die is afgestemd op een index. In dit voorbeeld wordt een aanmeldingsnaam van een gebruiker gebruikt.
New-AzRoleAssignment -SignInName <email> `
-RoleDefinitionName "Search Index Data Contributor" `
-Scope "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service>/indexes/<index-name>"
Referentie:New-AzRoleAssignment
Open een opdrachtshell en meld u aan bij uw Azure-abonnement.
az login
Een toegangstoken ophalen voor Azure Resource Manager.
az account get-access-token --scope https://management.azure.com/.default --query accessToken --output tsv
Verzend een PUT-aanvraag om een roltoewijzing te maken die is afgestemd op de zoekservice. Stel principalType in op User, Group of ServicePrincipal zodat deze overeenkomt met de toegewezene.
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>"
}
}
Referentie:Roltoewijzingen - Aanmaken
(Optioneel) Verzend een PUT-aanvraag om een roltoewijzing te maken die is afgestemd op een 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>"
}
}
Referentie:Roltoewijzingen - Aanmaken
Rollen toewijzen voor alleen-lezentoegang
Gebruik de volgende rol voor apps en processen die alleen leestoegang nodig hebben tot indexen en knowledge bases. Ondersteunde bewerkingen zijn zoeken, opzoeken, automatisch aanvullen en suggesties voor indexen en ophalen voor knowledge bases.
Ga naar uw zoekservice in de Azure portal.
Selecteer toegangsbeheer (IAM) in het linkerdeelvenster.
Selecteer +>Roltoewijzing toevoegen.
Selecteer de rol Search Index Data Reader .
Selecteer op het tabblad Lids de Microsoft Entra gebruikers- of groepsidentiteit. Als u machtigingen instelt voor een andere Azure-service, selecteert u een door het systeem toegewezen of door de gebruiker toegewezen beheerde identiteit.
Selecteer op het tabblad Beoordelen en toewijzen de optie Beoordelen en toewijzen om de rol toe te wijzen.
Meld u aan bij uw Azure-abonnement.
az login
Maak een roltoewijzing die is afgestemd op de zoekservice. Geef de toegewezen gebruiker en het bereik op.
az role assignment create \
--assignee <assignee> \
--role "Search Index Data Reader" \
--scope "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service>"
Naslaginformatie:az role assignment create
(Optioneel) Maak een roltoewijzing die is afgestemd op een index. Geef de toegewezen gebruiker en het bereik op.
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>"
Naslaginformatie:az role assignment create
Importeer de vereiste module en maak verbinding met uw Azure-account.
Import-Module Az.Resources
Connect-AzAccount
Maak een roltoewijzing die is afgestemd op de zoekservice. In dit voorbeeld wordt een aanmeldingsnaam van een gebruiker gebruikt.
New-AzRoleAssignment -SignInName <email> `
-RoleDefinitionName "Search Index Data Reader" `
-Scope "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service>"
Referentie:New-AzRoleAssignment
(Optioneel) Maak een roltoewijzing die is afgestemd op een index. In dit voorbeeld wordt een aanmeldingsnaam van een gebruiker gebruikt.
New-AzRoleAssignment -SignInName <email> `
-RoleDefinitionName "Search Index Data Reader" `
-Scope "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service>/indexes/<index-name>"
Referentie:New-AzRoleAssignment
Open een opdrachtshell en meld u aan bij uw Azure-abonnement.
az login
Een toegangstoken ophalen voor Azure Resource Manager.
az account get-access-token --scope https://management.azure.com/.default --query accessToken --output tsv
Verzend een PUT-aanvraag om een roltoewijzing te maken die is afgestemd op de zoekservice. Stel principalType in op User, Group of ServicePrincipal zodat deze overeenkomt met de toegewezene.
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>"
}
}
Referentie:Roltoewijzingen - Aanmaken
(Optioneel) Verzend een PUT-aanvraag om een roltoewijzing te maken die is afgestemd op een 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>"
}
}
Referentie:Roltoewijzingen - Aanmaken
Roltoewijzingen testen
Gebruik een client om roltoewijzingen te testen. Houd er rekening mee dat rollen cumulatief zijn. U kunt geërfde rollen die zijn toegewezen op het niveau van het abonnement of de resourcegroep niet verwijderen of weigeren op het niveau van de resource (zoekservice).
Voordat u verdergaat, configureert u uw toepassing voor sleutelloze verbindingen en beschikt u over roltoewijzingen.
Ga naar uw zoekservice in de Azure portal.
Selecteer zoekbeheerindexen> in het linkerdeelvenster om indexgerelateerde machtigingen te testen:
Inzenders voor zoekservices kunnen zoekobjecten maken, wijzigen en verwijderen, maar kunnen geen documenten laden of query's uitvoeren. Als u machtigingen wilt controleren, maakt u een zoekindex.
Inzenders voor zoekindexgegevens kunnen documenten laden. Er is geen optie documenten laden in de Azure-portal buiten de Import data wizard, maar u kunt opnieuw instellen en een indexeerfunctie uitvoeren om machtigingen voor het laden van documenten te bevestigen.
Zoekindexgegevenslezers kunnen query's uitvoeren op indexen. Gebruik Search Explorer om machtigingen te verifiëren. U moet query's kunnen verzenden en resultaten kunnen weergeven, maar u kunt geen indexdefinities weergeven of indexen maken.
Bij deze benadering wordt ervan uitgegaan Visual Studio Code met de REST-clientextensie.
Open een opdrachtshell voor Azure CLI en meld u aan bij uw Azure-abonnement.
az login
Haal een toegangstoken op voor het Azure AI Zoeken gegevensvlak.
az account get-access-token --scope https://search.azure.com/.default --query accessToken --output tsv
Plak deze variabelen in een nieuw tekstbestand in Visual Studio Code.
@baseUrl = PASTE-YOUR-SEARCH-SERVICE-URL-HERE
@index-name = PASTE-YOUR-INDEX-NAME-HERE
@token = PASTE-YOUR-TOKEN-HERE
Verzend een aanvraag die gebruikmaakt van de variabelen die u opgeeft. Voor de rol Search Index Data Reader kunt u een query verzenden met behulp van elke ondersteunde API-versie.
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
}
Naslaginformatie:Documenten zoeken
Een geslaagde query retourneert zoekresultaten met overeenkomende documenten. Als de index leeg is of geen overeenkomsten heeft, value bevat een lege matrix.
Installeer de vereiste pakketten.
dotnet add package Azure.Search.Documents
dotnet add package Azure.Identity
Gebruik Azure. Identiteit voor .NET voor tokenverificatie. Microsoft raadt DefaultAzureCredential() aan voor de meeste scenario's.
Hier volgt een voorbeeld van een clientverbinding met behulp van 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());
Naslaginformatie:SearchClient, SearchIndexClient, DefaultAzureCredential
Hier is nog een voorbeeld van het gebruik van referentie voor clientgeheim.
var tokenCredential = new ClientSecretCredential(aadTenantId, aadClientId, aadSecret);
SearchClient srchclient = new SearchClient(serviceEndpoint, indexName, tokenCredential);
Hier volgt een voorbeeld van het uitvoeren van een query.
SearchResults<SearchDocument> response = srchclient.Search<SearchDocument>("motel");
foreach (SearchResult<SearchDocument> result in response.GetResults())
{
Console.WriteLine(result.Document["HotelName"]);
}
Een geslaagde query retourneert zoekresultaten. Als er geen documenten overeenkomen, is de resultatenverzameling leeg.
Installeer de vereiste pakketten.
pip install azure-search-documents azure-identity
Gebruik Azure. Identiteit voor Python voor tokenverificatie.
Gebruik DefaultAzureCredential als de Python-client een toepassing is die serverzijde uitvoert. Schakel interactieve verificatie in als de app wordt uitgevoerd in een browser.
Dit is een voorbeeld.
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)
Naslaginformatie:SearchClient, DefaultAzureCredential
Voeg de vereiste afhankelijkheden toe aan uw 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>
Gebruik Azure. Identiteit voor Java voor tokenverificatie.
Gebruik DefaultAzureCredential voor apps die worden uitgevoerd op Azure.
Toegang verlenen tot één index
In sommige scenario's wilt u de toegang van een toepassing tot één resource beperken, zoals een index.
Op dit moment biedt de Azure-portal geen ondersteuning voor roltoewijzingen op indexniveau. Gebruik de Azure CLI, PowerShell of de REST API om rollen toe te wijzen die aan één index zijn toegewezen.
Meld u aan bij uw Azure-abonnement.
az login
Maak een roltoewijzing die is afgestemd op één index. Geef de toegewezene en het bereik op indexniveau op.
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>"
Naslaginformatie:az role assignment create
Importeer de vereiste module en maak verbinding met uw Azure-account.
Import-Module Az.Resources
Connect-AzAccount
Maak een roltoewijzing die is afgestemd op één index. In dit voorbeeld wordt een aanmeldingsnaam van een gebruiker gebruikt.
New-AzRoleAssignment -SignInName <email> `
-RoleDefinitionName "Search Index Data Contributor" `
-Scope "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service>/indexes/<index-name>"
Referentie:New-AzRoleAssignment
Open een opdrachtshell en meld u aan bij uw Azure-abonnement.
az login
Een toegangstoken ophalen voor Azure Resource Manager.
az account get-access-token --scope https://management.azure.com/.default --query accessToken --output tsv
Verzend een PUT-aanvraag om een roltoewijzing te maken die is afgestemd op één index. Stel principalType in op User, Group of ServicePrincipal zodat deze overeenkomt met de toegewezene.
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>"
}
}
Referentie:Roltoewijzingen - Aanmaken
Per-indexscope en indexeerbewerkingen
Roltoewijzingen per index zijn alleen van toepassing op directe API-bewerkingen, zoals query's of documentuploads van gebruikers of toepassingen. Indexeerders worden niet beperkt door machtigingen per index omdat ze werken met service-referenties.
Een gebruiker met de rol Inzender voor zoekservice kan indexeerfuncties maken die naar een willekeurige index in de zoekservice schrijven, zelfs indexen waarbij die gebruiker geen roltoewijzing per index heeft.
Voor strikte gegevensisolatie tussen indexen kunt u de volgende benaderingen overwegen:
- Gebruik afzonderlijke zoekservices voor teams of gebruikers die isolatie op indexniveau vereisen.
- Wijs inzender voor de zoekservice alleen toe aan beheerders die indexeerfuncties beheren.
- Gebruik toegangsbeheer op documentniveau met beveiligingsfilters om queryresultaten binnen een gedeelde index te beperken.
Een aangepaste rol maken
Als ingebouwde rollen niet de juiste combinatie van machtigingen bieden, kunt u een aangepaste rol maken ter ondersteuning van de bewerkingen die u nodig hebt.
In de volgende voorbeelden kloont u de zoekindexgegevenslezer en voegt u vervolgens de mogelijkheid toe om indexen op naam weer te geven. Normaal gesproken wordt het weergeven van de indexen voor een zoekservice beschouwd als een beheerrecht.
Meld u aan bij de Azure-portal en navigeer naar uw zoekservice.
Selecteer toegangsbeheer (IAM) in het linkerdeelvenster.
Zoek op het tabblad RollenZoekindexgegevenslezer of een andere rol, selecteer het beletselteken (...) en selecteer Klonen.
Voer op het tabblad Basics een naam in voor de aangepaste rol, zoals Search Index Data Explorer en selecteer Next.
Selecteer Machtigingen toevoegen op het tabblad Machtigingen.
Selecteer in het deelvenster Machtigingen de tegel Microsoft Search.
Stel de volgende machtigingen in met Acties bovenaan geselecteerd:
- Onder
Microsoft.Search/operations, selecteer Lezen: alle beschikbare bewerkingen weergeven.
- Onder
Microsoft.Search/searchServices/indexes, selecteer Lezen : Lees index.
Ga naar Gegevensacties bovenaan en selecteer onder Microsoft.Search/searchServices/indexes/documentsLezen: Documenten lezen.
De JSON-definitie ziet er als volgt uit:
{
"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": []
}
]
}
}
Selecteer Toevoegen om het deelvenster te sluiten.
Selecteer Beoordelen en maken om de rol te maken.
U kunt nu gebruikers en groepen toewijzen aan de rol. Zie Azure aangepaste rollen maken of bijwerken met behulp van de Azure portal voor meer informatie over deze stappen.
In het Azure CLI voorbeeld ziet u de JSON-syntaxis voor het maken van een aangepaste rol die een kloon is van Search Index Data Reader, maar met de mogelijkheid om alle indexen op naam weer te geven. Zie Azure aangepaste rollen maken of bijwerken met behulp van Azure CLI voor stapsgewijze instructies voor het maken van aangepaste rollen.
Bekijk de lijst met atomische machtigingen om te bepalen welke u nodig hebt. Voor dit voorbeeld hebt u de volgende machtigingen nodig:
"Microsoft.Search/operations/read",
"Microsoft.Search/searchServices/indexes/read",
"Microsoft.Search/searchServices/indexes/documents/read"
Sla de volgende roldefinitie op in een JSON-bestand met de naam search-index-data-explorer.json. Geef voor Id een nieuwe GUID op die u zelf genereert.
{
"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>"
]
}
Maak de aangepaste rol door het JSON-bestand door te geven aan az role definition create.
az role definition create --role-definition @search-index-data-explorer.json
Naslaginformatie:az role definition create
In het PowerShell-voorbeeld ziet u de JSON-syntaxis voor het maken van een aangepaste rol die een kloon is van Search Index Data Reader, maar met de mogelijkheid om alle indexen op naam weer te geven. Zie Azure aangepaste rollen maken of bijwerken met behulp van Azure PowerShell voor stapsgewijze instructies voor het maken van aangepaste rollen.
Bekijk de lijst met atomische machtigingen om te bepalen welke u nodig hebt. Voor dit voorbeeld hebt u de volgende machtigingen nodig:
"Microsoft.Search/operations/read",
"Microsoft.Search/searchServices/indexes/read",
"Microsoft.Search/searchServices/indexes/documents/read"
Sla de volgende roldefinitie op in een JSON-bestand met de naam search-index-data-explorer.json. Geef voor Id een nieuwe GUID op die u zelf genereert.
{
"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>"
]
}
Maak de aangepaste rol door het JSON-bestand door te geven aan New-AzRoleDefinition.
New-AzRoleDefinition -InputFile "search-index-data-explorer.json"
Verwijzing:New-AzRoleDefinition
In het REST API-voorbeeld ziet u de JSON-syntaxis voor het maken van een aangepaste rol die een kloon is van Search Index Data Reader, maar met de mogelijkheid om alle indexen op naam weer te geven. Zie Azure aangepaste rollen maken of bijwerken met behulp van de REST API voor stapsgewijze instructies voor het maken van aangepaste rollen.
Bekijk de lijst met atomische machtigingen om te bepalen welke u nodig hebt. Voor dit voorbeeld hebt u de volgende machtigingen nodig:
"Microsoft.Search/operations/read",
"Microsoft.Search/searchServices/indexes/read",
"Microsoft.Search/searchServices/indexes/documents/read"
Maak de aangepaste rol door de volgende aanvraag naar het eindpunt van de roldefinitie te verzenden.
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>"
]
}
}
Verwijzing:Roldefinities - Maken of bijwerken
Beleid voor voorwaardelijke toegang maken
Als u organisatiebeleid wilt afdwingen, zoals meervoudige verificatie, gebruikt u Microsoft Entra Voorwaardelijke toegang.
Een beleid voor voorwaardelijke toegang maken voor Azure AI Zoeken:
Meld u aan bij de Azure-portal.
Zoek naar Microsoft Entra Voorwaardelijke toegang.
Selecteer op de pagina Overzichtde optie Nieuw beleid maken.
Voeg onder Cloud-apps of -actiesAzure AI Zoeken toe als cloud-app, afhankelijk van hoe u uw beleid wilt instellen.
Werk de resterende parameters van uw beleid bij. Geef bijvoorbeeld op op welke gebruikers en groepen het beleid van toepassing is.
Sla het beleid op.
Belangrijk
Als aan uw zoekservice een beheerde identiteit is toegewezen, wordt de specifieke zoekservice weergegeven als een cloud-app. Maar als u die specifieke zoekservice selecteert, wordt het beleid niet toegepast. Selecteer in plaats daarvan de algemene Azure AI Zoeken cloud-app om beleid voor voorwaardelijke toegang toe te passen op uw zoekservice.
Troubleshooting
Wanneer u toepassingen ontwikkelt die gebruikmaken van op rollen gebaseerd toegangsbeheer voor verificatie, kunnen er enkele veelvoorkomende problemen optreden:
De standaardconfiguratie voor een zoekservice is verificatie op basis van sleutels. Als u deze instelling niet wijzigt in Zowel of op rollen gebaseerd toegangsbeheer, worden alle aanvragen die gebruikmaken van verificatie op basis van rollen automatisch geweigerd, ongeacht de onderliggende machtigingen.
Als uw aanvraag een API-sleutel bevat naast referenties op basis van rollen, wordt de service geverifieerd met behulp van de sleutel. Verwijder de API-sleutel uit uw aanvraagheaders om verificatie op basis van rollen te gebruiken.
Als het autorisatietoken afkomstig is van een beheerde identiteit en u onlangs de juiste machtigingen hebt toegewezen, kan het enkele uren duren voordat de machtigingentoewijzingen van kracht worden.
Als query's met machtigingen op documentniveau geen verwachte resultaten retourneren, gebruikt u Inzender voor zoekindexgegevens of maakt u een aangepaste rol met verhoogde machtigingen (preview) om te onderzoeken.
Volgende stap
In dit artikel wordt uitgelegd hoe u rollen toewijst voor besturings- en gegevensvlakbewerkingen op Azure AI Zoeken. Voor uitgebreide instructies over het toevoegen van op rollen gebaseerde toegang tot uw toepassingscode: