Azure KI-Suche unterstützt role-basierte Zugriffssteuerung über Microsoft Entra ID. Rollenbasierter Zugriff ist optional, wird jedoch empfohlen. Die Alternative ist die Standardeinstellung, die schlüsselbasierte Authentifizierung.
Wenn Sie einem Sicherheitsprinzipal mehrere Rollen zuweisen, werden Berechtigungen kombiniert. Rollenzuweisungen gelten für alle Tools und Clientbibliotheken.
In diesem Artikel wird erläutert, wie Sie integrierte Rollen für die Dienstverwaltung, Entwicklung und schreibgeschützten Abfrage- und Abrufzugriff zuweisen. Außerdem werden Schritte zum Erstellen benutzerdefinierter Rollen und Testen von Rollenzuweisungen bereitgestellt.
Voraussetzungen
Ein Azure KI-Suche-Dienst (beliebige Region und jede Stufe) mit aktiviertem rollenbasierten Zugriff.
Berechtigung zum Zuweisen von Azure-Rollen. Eine der folgenden Rollen funktioniert:
Überprüfen Sie die Rollenzuweisungsanweisungen für Ihren bevorzugten Client:
Identifizieren Sie den zugewiesenen Wert, der von Ihrem bevorzugten Client benötigt wird. Je nach Client- und Assignee-Typ kann dieser Wert ein Benutzerprinzipalname, gruppenobjekt-ID, Dienstprinzipalname, Dienstprinzipalanwendungs-ID oder Microsoft Entra Objekt-ID sein.
Festgelegte Rollen
Rollen sind eine Sammlung von Berechtigungen, die sich auf die Steuerebene oder datenebene auswirken:
Steuerebene: Vorgänge für die Dienstbereitstellung, -konfiguration und -verwaltung. Zu den Steuerungsebenenvorgängen gehören das Erstellen oder Löschen von Suchdiensten, das Auflisten von API-Schlüsseln und das Verwalten von Netzwerk- und Authentifizierungseinstellungen. Verfügbar über die REST-APIs Azure Resource Manager, Search Management REST APIs und entsprechende Azure SDK Clientbibliotheken.
Datenebene: Vorgänge gegen den Suchdienstendpunkt. Vorgänge auf Datenebenen sind in zwei Kategorien unterteilt: Objektverwaltung und Inhaltszugriff. Verfügbar über die REST-APIs Search Service und entsprechende Azure SDK Clientbibliotheken.
Rollenbeschreibungen
Die folgenden integrierten Rollen gewähren Berechtigungen für Azure KI-Suche. Steuerebenenrollen sind immer verfügbar, während Datenebenenrollen rollenbasierten Zugriff erfordern, damit sie für Ihren Suchdienst aktiviert werden können. Sie können integrierte Rollen für umfassenderen Zugriff kombinieren oder eine benutzerdefinierte Rolle mit den spezifischen Berechtigungen erstellen , die Sie benötigen.
| Rolle |
Flugzeug |
BESCHREIBUNG |
|
Besitzer |
Steuerung |
- Voller Zugriff auf die Steuerungsebene, einschließlich der Möglichkeit, Rollen zuzuweisen und Authentifizierungseinstellungen zu ändern.
- Abonnementadministratoren verfügen standardmäßig über diese Rolle.
- Kann API-Schlüssel verwalten.
- Suchobjekte können nicht erstellt, Dokumente, Abfrageindizes geladen oder aus Wissensdatenbanken abgerufen werden.
|
|
Mitwirkender |
Steuerung |
- Dieselbe Zugriffsebene auf Steuerungsebene wie ein Besitzer, ohne die Fähigkeit zum Zuweisen von Rollen.
|
|
Leser |
Steuerung |
- Schreibgeschützter Zugriff auf die Steuerebene.
- Kann Dienstmetriken und Objektdefinitionen anzeigen.
- Api-Schlüssel können nicht angezeigt oder verwaltet werden, Dokumente, Abfrageindizes laden oder aus Wissensdatenbanken abrufen.
|
|
Mitwirkender von Suchdienst |
Daten steuern |
- Vollständiger Zugriff auf Steuerebene. Der Zugriff auf die Datenebene ist auf die Objektverwaltung beschränkt.
- Kann Indizes, Indexer, Fähigkeiten, Wissensdatenbanken und andere Suchobjekte erstellen.
- Dokumente, Abfrageindizes oder Wissensdatenbanken können nicht geladen oder abgerufen werden.
- Die vollständige Berechtigungsliste finden Sie unter
Microsoft.Search/searchServices/*.
|
|
Mitwirkender an Suchindexdaten |
Daten |
- Lese-/Schreibzugriff auf Inhalte.
- Kann Dokumente, Abfrageindizes laden und aus Wissensdatenbanken abrufen.
- Objektdefinitionen können nicht geändert oder Administratorschlüssel abgerufen werden.
|
|
Suchindexdatenleser |
Daten |
- Schreibgeschützter Inhaltszugriff.
- Kann Indizes abfragen und aus Wissensdatenbanken abrufen.
- Dokumente können nicht geladen, Objektdefinitionen geändert oder Administratorschlüssel abgerufen werden.
|
Wichtig
- Besitzer, Mitwirkender und Suchdienstmitwirkender können Administratorschlüssel abrufen, die vollständigen Lese-/Schreibzugriff auf die Datenebene bieten. Gewähren Sie diesen Rollen nur vertrauenswürdigen Benutzern.
- Standardmäßig gelten Rollen der Datenebene für alle Indizes im Suchdienst. Um den Zugriff von Suchindexdatenmitwirkendern oder Suchindexdatenlesern auf einen einzelnen Index zu beschränken, siehe Gewähren des Zugriffs auf einen einzelnen Index.
Zusammenfassung der Berechtigungen
Verwenden Sie die folgende Tabelle, um schnell zu finden, welche Rolle die benötigten Berechtigungen bereitstellt.
| Berechtigungen |
Besitzer/Mitwirkender |
Leser |
Mitwirkender von Suchdienst |
Mitwirkender an Suchindexdaten |
Suchindexdatenleser |
| Erstellen und Konfigurieren von Azure KI-Suche-Diensten |
✅ |
❌ |
✅ |
❌ |
❌ |
| Zugriffsdienst im Azure-Portal |
✅ |
✅ |
✅ |
❌ |
❌ |
| Anzeigen von Diensteigenschaften, Metriken und Endpunkten |
✅ |
✅ |
✅ |
❌ |
❌ |
| Alle Objekte im Dienst auflisten |
✅ |
✅ |
✅ |
❌ |
❌ |
| Auf Kontingente und Dienststatistiken zugreifen |
✅ |
❌ |
✅ |
❌ |
❌ |
| Anzeigen, Kopieren und Regenerieren von Schlüsseln |
✅ |
❌ |
✅ |
❌ |
❌ |
| Authentifizierungsoptionen festlegen |
✅ |
❌ |
✅ |
❌ |
❌ |
| Anzeigen von Rollen, Richtlinien und Definitionen |
✅ |
✅ |
✅ |
❌ |
❌ |
| Konfigurieren von Netzwerksicherheit und privaten Verbindungen |
✅ |
❌ |
✅ |
❌ |
❌ |
| Erstellen, Ausführen und Verwalten von Suchobjekten 1 |
❌ |
❌ |
✅ |
❌ |
❌ |
| Hochladen von Daten für die Indizierung 2 |
❌ |
❌ |
❌ |
✅ |
❌ |
| Abfragen von Indizes |
❌ |
❌ |
❌ |
✅ |
✅ |
| Abrufen aus einer Wissensbasis |
❌ |
❌ |
❌ |
✅ |
✅ |
| Umgehung von Berechtigungsfiltern durch erhöhte Leserechte |
❌ |
❌ |
❌ |
✅ |
❌ |
1 Umfasst Indizes, Indexer, Datenquellen, Skillsets, Aliase, Synonymzuordnungen, Debugsitzungen, Knowledge Bases und Wissensquellen. Indexer unterstützen auch Ausführungs- und Rücksetzvorgänge.
2 Ein Besitzer oder Mitwirkender kann den Assistenten zum Importieren von Daten ausführen, um Indizes zu erstellen und zu laden, obwohl sie keine Dokumente in anderen Clients hochladen können. Ebenso können Indexer unabhängig von den Rollenzuweisungen pro Index in einen beliebigen Index für den Suchdienst schreiben. In beiden Fällen führt der Suchdienst (nicht der Benutzer) die Datenebenenaktionen mithilfe seiner Microsoft.Search/searchServices/indexes/documents/* Berechtigungen aus.
Zuweisen integrierter Rollen
In diesem Abschnitt weisen Sie Rollen zu:
Zuweisen von Rollen für die Dienstverwaltung
Mit den folgenden Rollen können Sie einen Suchdienst erstellen, konfigurieren und verwalten. Diese Rollen sind hierarchisch. Wählen Sie daher eine basierend auf der benötigten Zugriffsebene aus.
| Rolle |
id |
|
Besitzer |
8e3af657-a8ff-443c-a75c-2fe8c4bcb635 |
|
Mitwirkender |
b24988ac-6180-42a0-ab88-20f7382dd24c |
|
Leser |
acdd72a7-3385-48ef-bd42-f606fba81ae7 |
Wechseln Sie zum Suchdienst im Azure-Portal.
Wählen Sie im linken Bereich Access control (IAM) aus.
Wählen Sie +Hinzufügen>Rollenzuweisung hinzufügen aus.
Wählen Sie eine Rolle aus: Besitzer, Mitwirkender oder Leser.
Wählen Sie auf der Registerkarte Members die Microsoft Entra Benutzer- oder Gruppenidentität aus. Wenn Sie Berechtigungen für einen anderen Azure Dienst einrichten, wählen Sie eine vom System zugewiesene oder vom Benutzer zugewiesene verwaltete Identität aus.
Wählen Sie auf der Registerkarte Überprüfen und zuweisen die Option Überprüfen und zuweisen aus, um die Rolle zuzuweisen.
Melden Sie sich bei Ihrem Azure-Abonnement an.
az login
Erstellen Sie eine Rollenzuweisung mit Geltungsbereich für den Suchdienst. Geben Sie den Zuständigen und den Umfang an.
az role assignment create \
--assignee <assignee> \
--role "Reader" \
--scope "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service>"
Referenz:az role assignment create
Importieren Sie das erforderliche Modul, und stellen Sie eine Verbindung mit Ihrem Azure Konto her.
Import-Module Az.Resources
Connect-AzAccount
Erstellen Sie eine Rollenzuweisung mit Geltungsbereich für den Suchdienst. In diesem Beispiel wird ein Benutzeranmeldungsname verwendet.
New-AzRoleAssignment -SignInName <email> `
-RoleDefinitionName "Reader" `
-Scope "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service>"
Referenz:New-AzRoleAssignment
Öffnen Sie eine Befehlsshell, und melden Sie sich bei Ihrem Azure-Abonnement an.
az login
Rufen Sie ein Zugriffstoken für Azure Resource Manager ab.
az account get-access-token --scope https://management.azure.com/.default --query accessToken --output tsv
Senden Sie eine PUT-Anforderung, um eine Rollenzuweisung mit Geltungsbereich für den Suchdienst zu erstellen. Legen Sie principalType auf User, Group oder ServicePrincipal fest, damit es dem Zugewiesenen entspricht.
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>"
}
}
Referenz:Rollenzuweisungen – Erstellen
Zuweisen von Rollen für die Entwicklung
Mit den folgenden Rollen können Sie Suchobjekte erstellen, Dokumente laden, Abfrageindizes laden und von Wissensdatenbanken abrufen. Weisen Sie alle drei Rollen zu, um die gesamte Palette von Entwicklungsaufgaben abzudecken.
Wechseln Sie zum Suchdienst im Azure-Portal.
Wählen Sie im linken Bereich Access control (IAM) aus.
Wählen Sie +Hinzufügen>Rollenzuweisung hinzufügen aus.
Wählen Sie "Suchdienstmitwirkender" aus.
Wählen Sie auf der Registerkarte Members die Microsoft Entra Benutzer- oder Gruppenidentität aus. Wenn Sie Berechtigungen für einen anderen Azure Dienst einrichten, wählen Sie eine vom System zugewiesene oder vom Benutzer zugewiesene verwaltete Identität aus.
Wählen Sie auf der Registerkarte Überprüfen und zuweisen die Option Überprüfen und zuweisen aus, um die Rolle zuzuweisen.
Wiederholen Sie diese Schritte, um den Suchindexdatenmitwirkenden und den Suchindexdatenleser zuzuweisen.
Melden Sie sich bei Ihrem Azure-Abonnement an.
az login
Erstellen Sie eine Rollenzuweisung mit Geltungsbereich für den Suchdienst. Geben Sie den Zuständigen und den Umfang an.
az role assignment create \
--assignee <assignee> \
--role "Search Index Data Contributor" \
--scope "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service>"
Referenz:az role assignment create
(Optional) Erstellen Sie eine Rollenzuweisung mit Geltungsbereich für einen Index. Geben Sie den Zuständigen und den Umfang an.
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>"
Referenz:az role assignment create
Importieren Sie das erforderliche Modul, und stellen Sie eine Verbindung mit Ihrem Azure Konto her.
Import-Module Az.Resources
Connect-AzAccount
Erstellen Sie eine Rollenzuweisung mit Geltungsbereich für den Suchdienst. In diesem Beispiel wird ein Benutzeranmeldungsname verwendet.
New-AzRoleAssignment -SignInName <email> `
-RoleDefinitionName "Search Index Data Contributor" `
-Scope "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service>"
Referenz:New-AzRoleAssignment
(Optional) Erstellen Sie eine Rollenzuweisung mit Geltungsbereich für einen Index. In diesem Beispiel wird ein Benutzeranmeldungsname verwendet.
New-AzRoleAssignment -SignInName <email> `
-RoleDefinitionName "Search Index Data Contributor" `
-Scope "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service>/indexes/<index-name>"
Referenz:New-AzRoleAssignment
Öffnen Sie eine Befehlsshell, und melden Sie sich bei Ihrem Azure-Abonnement an.
az login
Rufen Sie ein Zugriffstoken für Azure Resource Manager ab.
az account get-access-token --scope https://management.azure.com/.default --query accessToken --output tsv
Senden Sie eine PUT-Anforderung, um eine Rollenzuweisung mit Geltungsbereich für den Suchdienst zu erstellen. Legen Sie principalType auf User, Group oder ServicePrincipal fest, damit es dem Zugewiesenen entspricht.
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>"
}
}
Referenz:Rollenzuweisungen – Erstellen
(Optional) Senden Sie eine PUT-Anfrage, um eine Rollenzuweisung zu erstellen, die auf einen Index beschränkt ist.
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>"
}
}
Referenz:Rollenzuweisungen – Erstellen
Zuweisen von Rollen für schreibgeschützten Zugriff
Verwenden Sie die folgende Rolle für Apps und Prozesse, die nur Lesezugriff auf Indizes und Wissensdatenbanken benötigen. Zu den unterstützten Vorgängen gehören Suche, Suche, AutoVervollständigen und Vorschläge für Indizes und Abrufen von Wissensdatenbanken.
Wechseln Sie zum Suchdienst im Azure-Portal.
Wählen Sie im linken Bereich Access control (IAM) aus.
Wählen Sie +Hinzufügen>Rollenzuweisung hinzufügen aus.
Wählen Sie die Rolle "Suchindexdatenleser" aus .
Wählen Sie auf der Registerkarte Members die Microsoft Entra Benutzer- oder Gruppenidentität aus. Wenn Sie Berechtigungen für einen anderen Azure Dienst einrichten, wählen Sie eine vom System zugewiesene oder vom Benutzer zugewiesene verwaltete Identität aus.
Wählen Sie auf der Registerkarte Überprüfen und zuweisen die Option Überprüfen und zuweisen aus, um die Rolle zuzuweisen.
Melden Sie sich bei Ihrem Azure-Abonnement an.
az login
Erstellen Sie eine Rollenzuweisung mit Geltungsbereich für den Suchdienst. Geben Sie den Zuständigen und den Umfang an.
az role assignment create \
--assignee <assignee> \
--role "Search Index Data Reader" \
--scope "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service>"
Referenz:az role assignment create
(Optional) Erstellen Sie eine Rollenzuweisung mit Geltungsbereich für einen Index. Geben Sie den Zuständigen und den Umfang an.
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>"
Referenz:az role assignment create
Importieren Sie das erforderliche Modul, und stellen Sie eine Verbindung mit Ihrem Azure Konto her.
Import-Module Az.Resources
Connect-AzAccount
Erstellen Sie eine Rollenzuweisung mit Geltungsbereich für den Suchdienst. In diesem Beispiel wird ein Benutzeranmeldungsname verwendet.
New-AzRoleAssignment -SignInName <email> `
-RoleDefinitionName "Search Index Data Reader" `
-Scope "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service>"
Referenz:New-AzRoleAssignment
(Optional) Erstellen Sie eine Rollenzuweisung mit Geltungsbereich für einen Index. In diesem Beispiel wird ein Benutzeranmeldungsname verwendet.
New-AzRoleAssignment -SignInName <email> `
-RoleDefinitionName "Search Index Data Reader" `
-Scope "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service>/indexes/<index-name>"
Referenz:New-AzRoleAssignment
Öffnen Sie eine Befehlsshell, und melden Sie sich bei Ihrem Azure-Abonnement an.
az login
Rufen Sie ein Zugriffstoken für Azure Resource Manager ab.
az account get-access-token --scope https://management.azure.com/.default --query accessToken --output tsv
Senden Sie eine PUT-Anforderung, um eine Rollenzuweisung mit Geltungsbereich für den Suchdienst zu erstellen. Legen Sie principalType auf User, Group oder ServicePrincipal fest, damit es dem Zugewiesenen entspricht.
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>"
}
}
Referenz:Rollenzuweisungen – Erstellen
(Optional) Senden Sie eine PUT-Anfrage, um eine Rollenzuweisung zu erstellen, die auf einen Index beschränkt ist.
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>"
}
}
Referenz:Rollenzuweisungen – Erstellen
Testen von Rollenzuweisungen
Verwenden Sie einen Client, um Rollenzuweisungen zu testen. Denken Sie daran, dass Rollen kumulativ sind. Auf Ressourcenebene (Suchdienstebene) können geerbte Rollen, die auf Abonnement- oder Ressourcengruppenebene beschränkt sind, nicht gelöscht oder verweigert werden.
Bevor Sie fortfahren, konfigurieren Sie Ihre Anwendung für schlüssellose Verbindungen und verfügen über Rollenzuweisungen.
Wechseln Sie zum Suchdienst im Azure-Portal.
Wählen Sie im linken Bereich "Suchverwaltungsindizes>" aus, um indexbezogene Berechtigungen zu testen:
Suchdienstmitwirkende können Suchobjekte erstellen, ändern und löschen, aber keine Dokumente laden oder Abfragen ausführen. Um Berechtigungen zu überprüfen, erstellen Sie einen Suchindex.
Suchindexdatenmitwirkende können Dokumente laden. Es gibt keine Option zum Laden von Dokumenten im Azure-Portal außerhalb des Import-Daten-Assistenten, sie können jedoch reset ausführen und einen Indexer ausführen, um die Berechtigungen zum Laden von Dokumenten zu bestätigen.
Suchindexdatenleser können Indizes abfragen. Verwenden Sie zum Überprüfen von Berechtigungen den Suchexplorer. Sie sollten Abfragen senden und Ergebnisse anzeigen können, aber Sie sollten nicht in der Lage sein, Indexdefinitionen anzuzeigen oder Indizes zu erstellen.
Bei diesem Ansatz wird davon ausgegangen, dass Visual Studio Code mit der REST Client-Erweiterung genutzt wird.
Öffnen Sie eine Befehlsshell für Azure CLI, und melden Sie sich bei Ihrem Azure-Abonnement an.
az login
Abrufen eines Zugriffstokens für die Azure KI-Suche-Datenebene.
az account get-access-token --scope https://search.azure.com/.default --query accessToken --output tsv
Fügen Sie diese Variablen in eine neue Textdatei in Visual Studio Code ein.
@baseUrl = PASTE-YOUR-SEARCH-SERVICE-URL-HERE
@index-name = PASTE-YOUR-INDEX-NAME-HERE
@token = PASTE-YOUR-TOKEN-HERE
Senden Sie eine Anforderung, die die von Ihnen angegebenen Variablen verwendet. Für die Rolle "Indexdatenleser suchen" können Sie eine Abfrage mit jeder unterstützten API-Version senden.
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
}
Reference:Search Documents
Eine erfolgreiche Abfrage gibt Suchergebnisse mit übereinstimmenden Dokumenten zurück. Wenn der Index leer ist oder keine Übereinstimmungen aufweist, value enthält es ein leeres Array.
Installieren Sie die erforderlichen Pakete.
dotnet add package Azure.Search.Documents
dotnet add package Azure.Identity
Verwenden Sie Azure. Identität für .NET für die Tokenauthentifizierung. Microsoft empfiehlt DefaultAzureCredential() für die meisten Szenarien.
Hier ist ein Beispiel für eine Clientverbindung mit 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());
Reference:SearchClient, SearchIndexClient, DefaultAzureCredential
Hier ist ein weiteres Beispiel für die Verwendung von geheimen Clientschlüsselanmeldeinformationen.
var tokenCredential = new ClientSecretCredential(aadTenantId, aadClientId, aadSecret);
SearchClient srchclient = new SearchClient(serviceEndpoint, indexName, tokenCredential);
Hier ist ein Beispiel für das Ausführen einer Abfrage.
SearchResults<SearchDocument> response = srchclient.Search<SearchDocument>("motel");
foreach (SearchResult<SearchDocument> result in response.GetResults())
{
Console.WriteLine(result.Document["HotelName"]);
}
Eine erfolgreiche Abfrage gibt Suchergebnisse zurück. Wenn keine Dokumente übereinstimmen, ist die Ergebnisauflistung leer.
Installieren Sie die erforderlichen Pakete.
pip install azure-search-documents azure-identity
Verwenden Sie Azure. Identität für Python für die Tokenauthentifizierung.
Verwenden Sie DefaultAzureCredential wenn der Python-Client eine Anwendung ist, die serverseitig ausgeführt wird. Aktivieren Sie die interaktive Authentifizierung, wenn die App in einem Browser ausgeführt wird.
Hier finden Sie ein Beispiel dafür.
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)
Reference:SearchClient, DefaultAzureCredential
Fügen Sie die erforderlichen Abhängigkeiten zu Ihrer 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>
Verwenden Sie Azure. Identität für Java für die Tokenauthentifizierung.
Verwenden Sie DefaultAzureCredential für Apps, die auf Azure ausgeführt werden.
Gewähren des Zugriffs auf einen einzelnen Index
In einigen Szenarien könnte es sinnvoll sein, den Zugriff einer Anwendung auf eine einzelne Ressource zu beschränken, z. B. einen Index.
Derzeit unterstützt das Azure-Portal keine Rollenzuweisungen auf Indexebene. Verwenden Sie die Azure CLI, PowerShell oder die REST-API, um einem einzelnen Index Rollen zuzuweisen.
Melden Sie sich bei Ihrem Azure-Abonnement an.
az login
Erstellen Sie eine Rollenzuweisung mit Gültigkeit für einen einzelnen Index. Geben Sie den Zuständigen und den Geltungsbereich auf Indexebene an.
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>"
Referenz:az role assignment create
Importieren Sie das erforderliche Modul, und stellen Sie eine Verbindung mit Ihrem Azure Konto her.
Import-Module Az.Resources
Connect-AzAccount
Erstellen Sie eine Rollenzuweisung mit Gültigkeit für einen einzelnen Index. In diesem Beispiel wird ein Benutzeranmeldungsname verwendet.
New-AzRoleAssignment -SignInName <email> `
-RoleDefinitionName "Search Index Data Contributor" `
-Scope "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service>/indexes/<index-name>"
Referenz:New-AzRoleAssignment
Öffnen Sie eine Befehlsshell, und melden Sie sich bei Ihrem Azure-Abonnement an.
az login
Rufen Sie ein Zugriffstoken für Azure Resource Manager ab.
az account get-access-token --scope https://management.azure.com/.default --query accessToken --output tsv
Senden Sie eine PUT-Anfrage, um eine Rollenzuweisung zu erstellen, die auf einen einzelnen Index beschränkt ist. Legen Sie principalType auf User, Group oder ServicePrincipal fest, damit es dem Zugewiesenen entspricht.
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>"
}
}
Referenz:Rollenzuweisungen – Erstellen
Pro-Indizierungsbereich und Indexierungsvorgänge
Rollenzuweisungen pro Index gelten nur für direkte API-Vorgänge, z. B. Abfragen oder Dokumentuploads von Benutzern oder Anwendungen. Indexer sind nicht durch Indexberechtigungen eingeschränkt, da sie mit Anmeldeinformationen auf Dienstebene arbeiten.
Ein Benutzer mit der Rolle "Mitwirkender des Suchdiensts " kann Indexer erstellen, die in einen beliebigen Index des Suchdiensts schreiben, auch Indizes, bei denen dieser Benutzer keine Rollenzuweisung pro Index hat.
Berücksichtigen Sie bei strikter Datenisolation zwischen Indizes die folgenden Ansätze:
- Verwenden Sie separate Suchdienste für Teams oder Benutzer, die eine Isolation auf Indexebene erfordern.
- Weisen Sie den Suchdienstmitwirkenden nur Administratoren zu, die Indexer verwalten.
- Verwenden Sie die Zugriffssteuerung auf Dokumentebene mit Sicherheitsfiltern, um Abfrageergebnisse innerhalb eines freigegebenen Indexes einzuschränken.
Erstellen einer benutzerdefinierten Rolle
Wenn integrierte Rollen nicht die richtige Kombination von Berechtigungen bereitstellen, können Sie eine benutzerdefinierte Rolle erstellen, um die erforderlichen Vorgänge zu unterstützen.
In den folgenden Beispielen werden der Suchindexdatenleser geklont und dann die Möglichkeit hinzugefügt, Indizes nach Namen aufzulisten. Normalerweise wird das Auflisten der Indizes für einen Suchdienst als administratives Recht angesehen.
Melden Sie sich beim portal Azure an, und navigieren Sie zu Ihrem Suchdienst.
Wählen Sie im linken Bereich Access control (IAM) aus.
Suchen Sie auf der Registerkarte Rollen den Suchindexdatenleser oder eine andere Rolle, wählen Sie die Auslassungspunkte (...), und wählen Sie dann Klonen aus.
Geben Sie auf der Registerkarte Basics einen Namen für die benutzerdefinierte Rolle ein, z. B. "Suchindex Data Explorer", und wählen Sie dann Next aus.
Wählen Sie auf der Registerkarte "Berechtigungen " die Option "Berechtigungen hinzufügen" aus.
Wählen Sie im Bereich Berechtigungen die Kachel Microsoft Search aus.
Legen Sie bei oben ausgewählten Aktionen die folgenden Berechtigungen fest:
- Wählen Sie unter
Microsoft.Search/operationsRead : Alle verfügbaren Vorgänge auflisten aus.
- Wählen Sie unter
Microsoft.Search/searchServices/indexes die Option Read : Read Index aus.
Wechseln Sie oben zu Datenaktionen und wählen Sie unter Microsoft.Search/searchServices/indexes/documentsRead : Read Documents aus.
Die JSON-Definition sieht wie im folgenden Beispiel aus:
{
"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": []
}
]
}
}
Wählen Sie "Hinzufügen" aus, um den Bereich zu schließen.
Wählen Sie Überprüfen + erstellen aus, um die Rolle zu erstellen.
Sie können der Rolle jetzt Benutzer und Gruppen zuweisen. Weitere Informationen zu diesen Schritten finden Sie unter Create or update Azure custom roles using the Azure portal.
Das Azure CLI Beispiel zeigt die JSON-Syntax zum Erstellen einer benutzerdefinierten Rolle, die ein Klon des Suchindexdatenlesers ist, aber mit der Möglichkeit, alle Indizes anhand des Namens auflisten zu können. Schrittweise Anleitungen zur benutzerdefinierten Rollenerstellung finden Sie unter Erstellen oder Aktualisieren von Azure benutzerdefinierten Rollen mithilfe von Azure CLI.
Überprüfen Sie die Liste der atomischen Berechtigungen, um zu bestimmen, welche Berechtigungen Sie benötigen. Für dieses Beispiel benötigen Sie die folgenden Berechtigungen:
"Microsoft.Search/operations/read",
"Microsoft.Search/searchServices/indexes/read",
"Microsoft.Search/searchServices/indexes/documents/read"
Speichern Sie die folgende Rollendefinition in einer JSON-Datei mit dem Namen search-index-data-explorer.json. Geben Sie für Id eine neue GUID an, die Sie erstellen.
{
"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>"
]
}
Erstellen Sie die benutzerdefinierte Rolle, indem Sie die JSON-Datei an az role definition create.
az role definition create --role-definition @search-index-data-explorer.json
Referenz:az role definition create
Das PowerShell-Beispiel zeigt die JSON-Syntax zum Erstellen einer benutzerdefinierten Rolle, die ein Klon des Suchindexdatenlesers ist, aber mit der Möglichkeit, alle Indizes nach Namen auflisten zu können. Schrittweise Anleitungen zur erstellung benutzerdefinierter Rollen finden Sie unter Erstellen oder Aktualisieren von Azure benutzerdefinierten Rollen mithilfe von Azure PowerShell.
Überprüfen Sie die Liste der atomischen Berechtigungen, um zu bestimmen, welche Berechtigungen Sie benötigen. Für dieses Beispiel benötigen Sie die folgenden Berechtigungen:
"Microsoft.Search/operations/read",
"Microsoft.Search/searchServices/indexes/read",
"Microsoft.Search/searchServices/indexes/documents/read"
Speichern Sie die folgende Rollendefinition in einer JSON-Datei mit dem Namen search-index-data-explorer.json. Geben Sie für Id eine neue GUID an, die Sie erstellen.
{
"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>"
]
}
Erstellen Sie die benutzerdefinierte Rolle, indem Sie die JSON-Datei an New-AzRoleDefinition.
New-AzRoleDefinition -InputFile "search-index-data-explorer.json"
Reference:New-AzRoleDefinition
Das REST-API-Beispiel zeigt die JSON-Syntax zum Erstellen einer benutzerdefinierten Rolle, die ein Klon des Suchindexdatenlesers ist, aber mit der Möglichkeit, alle Indizes nach Namen auflisten zu können. Schrittweise Anleitungen zur benutzerdefinierten Rollenerstellung finden Sie unter Erstellen oder Aktualisieren von Azure benutzerdefinierten Rollen mithilfe der REST-API.
Überprüfen Sie die Liste der atomischen Berechtigungen, um zu bestimmen, welche Berechtigungen Sie benötigen. Für dieses Beispiel benötigen Sie die folgenden Berechtigungen:
"Microsoft.Search/operations/read",
"Microsoft.Search/searchServices/indexes/read",
"Microsoft.Search/searchServices/indexes/documents/read"
Erstellen Sie die benutzerdefinierte Rolle, indem Sie die folgende Anforderung an den Rollendefinitionsendpunkt senden.
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>"
]
}
}
Referenz:Rollendefinitionen – Erstellen oder Aktualisieren
Richtlinie für bedingten Zugriff erstellen
Wenn Sie Organisationsrichtlinien wie die mehrstufige Authentifizierung erzwingen müssen, verwenden Sie Microsoft Entra Conditional Access.
So erstellen Sie eine Richtlinie für bedingten Zugriff für Azure KI-Suche:
Melden Sie sich beim portal Azure an.
Suchen Sie nach Microsoft Entra Conditional Access.
Wählen Sie auf der Seite "Übersicht" die Option "Neue Richtlinie erstellen" aus.
Fügen Sie unter Cloud-Apps oder -AktionenAzure KI-Suche als Cloud-App hinzu, je nachdem, wie Sie Ihre Richtlinie einrichten möchten.
Aktualisieren Sie die verbleibenden Parameter Ihrer Richtlinie. Geben Sie beispielsweise an, für welche Benutzer und Gruppen die Richtlinie gilt.
Speichern Sie die Richtlinie.
Wichtig
Wenn Ihrem Suchdienst eine verwaltete Identität zugewiesen ist, wird der spezifische Suchdienst als Cloud-App angezeigt. Wenn Sie jedoch diesen bestimmten Suchdienst auswählen, wird die Richtlinie nicht erzwungen. Wählen Sie stattdessen die allgemeine Azure KI-Suche Cloud-App aus, um Richtlinien für bedingten Zugriff auf Ihren Suchdienst anzuwenden.
Problembehandlung
Wenn Sie Anwendungen entwickeln, die die rollenbasierte Zugriffssteuerung für die Authentifizierung verwenden, treten möglicherweise einige häufige Probleme auf:
Die Standardkonfiguration für einen Suchdienst ist die schlüsselbasierte Authentifizierung. Wenn Sie diese Einstellung nicht in " Sowohl" als auch in " Rollenbasierte Zugriffssteuerung" ändern, werden alle Anforderungen, die die rollenbasierte Authentifizierung verwenden, unabhängig von den zugrunde liegenden Berechtigungen automatisch verweigert.
Wenn Ihre Anforderung einen API-Schlüssel zusammen mit rollenbasierten Anmeldeinformationen enthält, authentifiziert sich der Dienst mithilfe des Schlüssels. Entfernen Sie den API-Schlüssel aus Ihren Anforderungsheadern, um die rollenbasierte Authentifizierung zu verwenden.
Wenn das Autorisierungstoken von einer verwalteten Identität stammt und Sie kürzlich die entsprechenden Berechtigungen zugewiesen haben, kann es mehrere Stunden dauern , bis die Berechtigungszuweisungen wirksam werden.
Wenn Abfragen mit Berechtigungen auf Dokumentebene keine erwarteten Ergebnisse zurückgeben, verwenden Sie den Mitwirkenden der Suchindexdaten, oder erstellen Sie eine benutzerdefinierte Rolle mit erhöhten Berechtigungen , um zu untersuchen.
Nächster Schritt
In diesem Artikel wird erläutert, wie Rollen für Steuerungs- und Datenebenenvorgänge für Azure KI-Suche zugewiesen werden. Ausführliche Anweisungen zum Hinzufügen des rollenbasierten Zugriffs auf Ihren Anwendungscode: