Freigeben über


Herstellen einer Verbindung mit Azure KI-Suche mithilfe von Rollen

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. Sie können Rollen mit jedem unterstützten Ansatz zuweisen.

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.

Tipp

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:

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
  1. Wechseln Sie zum Suchdienst im Azure-Portal.

  2. Wählen Sie im linken Bereich Access control (IAM) aus.

  3. Wählen Sie +Hinzufügen>Rollenzuweisung hinzufügen aus.

    Screenshot der Seite

  4. Wählen Sie eine Rolle aus: Besitzer, Mitwirkender oder Leser.

  5. 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.

  6. Wählen Sie auf der Registerkarte Überprüfen und zuweisen die Option Überprüfen und zuweisen aus, um die Rolle zuzuweisen.

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.

Rolle id
Mitwirkender von Suchdienst 7ca78c08-252a-4471-8644-bb5ff32d4ba0
Mitwirkender an Suchindexdaten 8ebe5a00-799e-43f5-93ac-243d3dce84a7
Suchindexdatenleser 1407120a-92aa-4202-b7e9-c0e197c71c8f
  1. Wechseln Sie zum Suchdienst im Azure-Portal.

  2. Wählen Sie im linken Bereich Access control (IAM) aus.

  3. Wählen Sie +Hinzufügen>Rollenzuweisung hinzufügen aus.

    Screenshot der Seite

  4. Wählen Sie "Suchdienstmitwirkender" aus.

  5. 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.

  6. Wählen Sie auf der Registerkarte Überprüfen und zuweisen die Option Überprüfen und zuweisen aus, um die Rolle zuzuweisen.

  7. Wiederholen Sie diese Schritte, um den Suchindexdatenmitwirkenden und den Suchindexdatenleser zuzuweisen.

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.

Rolle id
Suchindexdatenleser 1407120a-92aa-4202-b7e9-c0e197c71c8f
  1. Wechseln Sie zum Suchdienst im Azure-Portal.

  2. Wählen Sie im linken Bereich Access control (IAM) aus.

  3. Wählen Sie +Hinzufügen>Rollenzuweisung hinzufügen aus.

    Screenshot der Seite „Zugriffssteuerung (IAM)“ für das Zuweisen von schreibgeschützten Datenzugriffsrollen.

  4. Wählen Sie die Rolle "Suchindexdatenleser" aus .

  5. 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.

  6. Wählen Sie auf der Registerkarte Überprüfen und zuweisen die Option Überprüfen und zuweisen aus, um die Rolle zuzuweisen.

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.

  1. Wechseln Sie zum Suchdienst im Azure-Portal.

  2. 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.

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.

Das Azure Portal unterstützt derzeit keine Rollenzuweisungen auf dieser Granularitätsebene, Sie können jedoch Rollen mithilfe von PowerShell oder dem Azure CLI zuweisen.

Verwenden Sie in PowerShell New-AzRoleAssignment, indem Sie den Azure Benutzer- oder Gruppennamen und den Umfang der Zuordnung angeben.

  1. Laden Sie die Module Azure und AzureAD, und stellen Sie eine Verbindung mit Ihrem Azure Konto her:

    Import-Module -Name Az
    Import-Module -Name AzureAD
    Connect-AzAccount
    
  2. Fügen Sie eine Rollenzuweisung hinzu, die für einen einzelnen Index gilt:

    New-AzRoleAssignment -ObjectId <objectId> `
        -RoleDefinitionName "Search Index Data Contributor" `
        -Scope  "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service>/indexes/<index-name>"
    

    Referenz:New-AzRoleAssignment

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.

  1. Melden Sie sich beim portal Azure an, und navigieren Sie zu Ihrem Suchdienst.

  2. Wählen Sie im linken Bereich Access control (IAM) aus.

  3. Suchen Sie auf der Registerkarte Rollen den Suchindexdatenleser oder eine andere Rolle, wählen Sie die Auslassungspunkte (...), und wählen Sie dann Klonen aus.

  4. 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.

  5. Wählen Sie auf der Registerkarte "Berechtigungen " die Option "Berechtigungen hinzufügen" aus.

  6. Wählen Sie im Bereich Berechtigungen die Kachel Microsoft Search aus.

  7. 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.
  8. 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": "",
         "assignableScopes": [
             "/subscriptions/0000000000000000000000000000000/resourceGroups/free-search-svc/providers/Microsoft.Search/searchServices/demo-search-svc"
         ],
         "permissions": [
             {
                 "actions": [
                     "Microsoft.Search/operations/read",
                     "Microsoft.Search/searchServices/indexes/read"
                 ],
                 "notActions": [],
                 "dataActions": [
                     "Microsoft.Search/searchServices/indexes/documents/read"
                 ],
                 "notDataActions": []
             }
         ]
       }
     }
    
  9. Wählen Sie "Hinzufügen" aus, um den Bereich zu schließen.

  10. 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.

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:

  1. Melden Sie sich beim portal Azure an.

  2. Suchen Sie nach Microsoft Entra Conditional Access.

  3. Wählen Sie auf der Seite "Übersicht" die Option "Neue Richtlinie erstellen" aus.

  4. Fügen Sie unter Cloud-Apps oder -AktionenAzure KI-Suche als Cloud-App hinzu, je nachdem, wie Sie Ihre Richtlinie einrichten möchten.

  5. Aktualisieren Sie die verbleibenden Parameter Ihrer Richtlinie. Geben Sie beispielsweise an, für welche Benutzer und Gruppen die Richtlinie gilt.

  6. 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: