Verwenden Sie einen Blobindexer oder eine Wissensquelle, um Metadaten zu RBAC-Bereichen zu erfassen (Vorschau)

Hinweis

Azure KI-Suche ist über das Azure Portal, REST-APIs und Azure SDKs verfügbar. Es unterstützt auch Foundry IQ, die verwaltete Wissensschicht, die Unternehmensinhalte in wiederverwendbare, berechtigungsfähige Wissensbasen für Agenten im Microsoft Foundry-Portal transformiert.

Important

Features, Funktionen oder Eigenschaften, die als (Vorschau) gekennzeichnet sind, werden von keiner Dienstebenenvereinbarung (SLA) abgedeckt, werden für Produktionsworkloads nicht empfohlen und können geändert oder eingeschränkt werden, bevor sie allgemein verfügbar sind. Die Azure KI-Suche Vorschaubedingungen gelten für alle Vorschaufunktionen, unabhängig davon, ob sie eigenständig oder Teil eines allgemein verfügbaren Features ist.

Azure Storage ermöglicht rollenbasierten Zugriff auf Container im Blobspeicher, in denen Rollen wie Storage Blob Data Reader oder Storage Blob Data Contributor bestimmen, ob jemand Zugriff auf Inhalte hat. Azure KI-Suche unterstützt die Erfassung von Benutzerberechtigungen (Vorschau) zusammen mit der Dokumentaufnahme, sodass Sie diese Berechtigungen verwenden können, um den Zugriff auf Suchergebnisse zu steuern. Wenn ein Benutzer über keine Berechtigungen für ein bestimmtes Verzeichnis oder eine datei in Azure Storage verfügt, hat dieser Benutzer keinen Zugriff auf die entsprechenden Dokumente in Azure KI-Suche Ergebnissen, selbst wenn Sie persönlich über einen Search Index Data Reader Zuordnung für den Index verfügen.

  • 2025-05-01-preview und höher können RBAC-Bereichsmetadaten mithilfe des Blob-Indexers aufgenommen werden.
  • 2025-11-01-preview und spätere Versionen bieten entsprechende Unterstützung für Blob-Wissensquellen in Azure Storage.

Der RBAC-Bereich wird auf Containerebene festgelegt und über die Berechtigungsvererbung an alle Blobs (Dokumente) weitergeleitet. RBAC-Bereich wird während der Indizierung als Berechtigungsmetadaten erfasst. Sie können die Push-APIs verwenden, um Inhalte und Berechtigungsmetadaten manuell hochzuladen und indizieren (siehe Indizierungsberechtigungen mithilfe der Push-REST-API), oder Sie können einen Indexer oder eine Wissensquelle verwenden, um die Datenaufnahme zu automatisieren. Dieser Artikel konzentriert sich auf die Indizierungsautomatisierung.

Zur Abfragezeit ist die Identität des Aufrufers über den x-ms-query-source-authorization Parameter im Anforderungsheader enthalten. Die Identität muss den Berechtigungsmetadaten für Dokumente entsprechen, wenn der Benutzer die Suchergebnisse sehen soll.

Dieser Artikel konzentriert sich auf die Indizierungsautomatisierungsansätze, die auf dieser Grundlage basieren:

Voraussetzungen

  • Microsoft Entra ID Authentifizierung und Autorisierung. Dienste und Apps müssen sich im selben Mandanten befinden. Benutzende können sich in verschiedenen Mandanten befinden, solange es sich bei allen um Microsoft Entra ID-Mandanten handelt. Rollenzuweisungen werden für jede authentifizierte Verbindung verwendet.

  • Azure KI-Suche, jede Region, aber Sie müssen über eine kostenpflichtige Stufe (Basic und höher) für die Unterstützung verwalteter Identitäten verfügen. Der Suchdienst muss für den rollenbasierten Zugriff konfiguriert sein und muss über eine verwaltete Identität (entweder System oder Benutzer) verfügen.

  • Azure Storage, Standardleistung (Allzweck v2), auf Hot-, Cool- und Cold-Zugriffsebenen, mit RBAC-gesicherten Containern oder Blobs.

  • Sie sollten verstehen, wie Indexer und Wissensquellen funktionieren und wie Sie einen Index erstellen. In diesem Artikel werden die Konfigurationseinstellungen für die Datenquelle und den Indexer erläutert, jedoch keine Schritte zum Erstellen des Indexes bereitgestellt. Weitere Informationen zu Indizes, die für Berechtigungsfilter entwickelt wurden, finden Sie unter Erstellen eines Indexes mit Berechtigungsfilterfeldern.

Einschränkungen

Konfigurieren von Blob Storage

Überprüfen Sie, ob Ihr BLOB-Container rollenbasierten Zugriff verwendet.

  1. Melden Sie sich beim Azure-Portal an, und suchen Sie Ihr Speicherkonto.

  2. Erweitern Sie Container , und wählen Sie den Container mit den Blobs aus, die Sie indizieren möchten.

  3. Wählen Sie Access Control (IAM) aus, um Rollenzuweisungen zu überprüfen. Benutzer und Gruppen mit Storage Blob Data Reader oder Storage Blob Data Contributor haben Zugriff auf Suchdokumente im Index, nachdem der Container indiziert wurde.

Autorisierung

Für die Indizierungsausführung muss Ihre Suchdienstidentität über die Berechtigung " Storage Blob Data Reader " verfügen. Weitere Informationen finden Sie unter Connect to Azure Storage using a managed identity.

Erinnern Sie sich daran, dass der Suchdienst Folgendes haben muss:

Autorisierung

Für die Indizierungsausführung muss der Client, der den API-Aufruf ausgibt, über Search Service Contributor Berechtigung zum Erstellen von Objekten verfügen, Search Index Data Contributor Berechtigung zum Importieren von Daten und Search Index Data Reader zum Abfragen eines Indexes finden Sie unter Verbinden Azure KI-Suche mithilfe von Rollen.

Konfigurieren einer Wissensquelle

Wenn Sie eine Wissensquelle verwenden, werden Definitionen in der Wissensquelle verwendet, um eine vollständige Indizierungspipeline (Indexer, Datenquelle und Index) zu generieren. Der RBAC-Bereich wird erkannt und automatisch im generierten Index enthalten. Es ist nicht erforderlich, eines der generierten Objekte zu ändern, wenn Sie die Berechtigungsvererbung in Ihrem indizierten Inhalt wünschen.

Wichtige Punkte zu der Konfiguration, die für dieses Szenario geeignet ist:

  • isADLSGen2 ist auf "false" festgelegt, was bedeutet, dass die Datenquelle Azure Blob Storage ist.
  • ingestionPermissionOptions gibt an rbacScope.
# Create / Update Azure Blob Knowledge Source
###
PUT {{url}}/knowledgesources/azure-blob-ks?api-version=2026-08-01-preview
api-key: {{key}}
Content-Type: application/json
 
{
    "name": "azure-blob-ks",
    "kind": "azureBlob",
    "description": "A sample azure blob knowledge source",
    "azureBlobParameters": {
        "connectionString": "{{blob-connection-string}}",
        "containerName": "blobcontainer",
        "folderPath": null,
        "isADLSGen2": false,
        "ingestionParameters": {
            "identity": null,
            "embeddingModel": {
                "kind": "azureOpenAI",
                "azureOpenAIParameters": {
                    "deploymentId": "text-embedding-3-large",
                    "modelName": "text-embedding-3-large",
                    "resourceUri": "{{aoai-endpoint}}",
                    "apiKey": "{{aoai-key}}"
                }
            },
            "chatCompletionModel": null,
            "disableImageVerbalization": true,
            "ingestionSchedule": null,
            "ingestionPermissionOptions": ["rbacScope"],
            "contentExtractionMode": "minimal",
            "aiServices": {
                "uri": "{{ai-endpoint}}",
                "apiKey": "{{ai-key}}"
            }
        }
    }
}

Reference:Create or Update Knowledge Source (REST API)

Indexbasierte Indizierung konfigurieren

Wenn Sie einen Indexer verwenden, konfigurieren Sie ihn, die Datenquelle und den Index, um Berechtigungsmetadaten aus Blobs abzurufen.

Erstellen der Datenquelle

  • Der Datenquellentyp muss sein azureblob.

  • Der Datenquellenanalysemodus muss die Standardeinstellung sein.

  • Die Datenquelle muss indexerPermissionOptions mit rbacScope.

JSON-Beispiel mit vom System verwalteter Identität und indexerPermissionOptions:

{
    "name" : "my-blob-datasource",
    "type": "azureblob",
    "indexerPermissionOptions": ["rbacScope"],
    "credentials": {
    "connectionString": "ResourceId=/subscriptions/<your subscription ID>/resourceGroups/<your resource group name>/providers/Microsoft.Storage/storageAccounts/<your storage account name>/;"
    },
    "container": {
        "name": "<your-container-name>",
        "query": "<optional-query-used-for-selecting-specific-blobs>"
    }
}

JSON-Schemabeispiel mit einer vom Benutzer verwalteten Identität im Verbindungszeichenfolge:

{
    "name" : "my-blob-datasource",
    "type": "azureblob",
    "indexerPermissionOptions": ["rbacScope"],
    "credentials": {
    "connectionString": "ResourceId=/subscriptions/<your subscription ID>/resourceGroups/<your resource group name>/providers/Microsoft.Storage/storageAccounts/<your storage account name>/;"
    },
    "container": {
        "name": "<your-container-name>",
        "query": "<optional-query-used-for-selecting-specific-blobs>"
    },
    "identity": {
        "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity",
        "userAssignedIdentity": "/subscriptions/{subscription-ID}/resourceGroups/{resource-group-name}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{user-assigned-managed-identity-name}"
    }
}

Erstellen von Berechtigungsfeldern im Index

Stellen Sie in Azure KI-Suche sicher, dass Ihr Index Felddefinitionen für die Berechtigungsmetadaten enthält. Berechtigungsmetadaten können indiziert werden, wenn indexerPermissionOptions in der Datenquellendefinition angegeben ist.

Empfohlene Schemaattribute RBAC-Bereich:

  • RBAC-Bereichsfeld mit rbacScope permissionFilter-Wert.
  • Eigenschaft permissionFilterOption zum Aktivieren der Filterung zur Abfragezeit.
  • Verwenden von Zeichenfolgenfeldern für Berechtigungsmetadaten
  • Setzen Sie filterable auf 'true' für alle Felder.

Beachten Sie, dass retrievable "false" lautet. Sie können ihn während der Entwicklung auf „true” festlegen, um zu überprüfen, ob Berechtigungen vorhanden sind, aber denken Sie daran, vor der Bereitstellung in einer Produktionsumgebung auf „false” zurückgesetzt zu werden, damit Sicherheitsprinzipalidentitäten in Ergebnissen nicht sichtbar sind.

JSON-Schemabeispiel:

{
  ...
  "fields": [
    ...
    { 
        "name": "RbacScope", 
        "type": "Edm.String", 
        "permissionFilter": "rbacScope", 
        "filterable": true, 
        "retrievable": false 
    }
  ],
  "permissionFilterOption": "enabled"
}

Konfigurieren des Indexers

Feldzuweisungen in einem Indexer definieren den Datenpfad zu Feldern in einem Index. Ziel- und Zielfelder, die je nach Name oder Datentyp variieren, erfordern eine explizite Feldzuordnung. Die folgenden Metadatenfelder in Azure Blob Storage benötigen möglicherweise Feldzuordnungen, wenn Sie den Feldnamen variieren:

  • metadata_rbac_scope (Edm.String) – der RBAC-Bereich des Containers.

Geben Sie fieldMappings im Indexer an, um die Berechtigungsmetadaten während der Indizierung an Zielfelder weiterzuleiten.

JSON-Schemabeispiel:

{
  ...
  "fieldMappings": [
    { "sourceFieldName": "metadata_rbac_scope", "targetFieldName": "RbacScope" }
  ]
}

Ausführen des Indexers

Nachdem Sie den Indexer, die Datenquelle und den Index konfiguriert haben, führen Sie den Indexer aus, um den Prozess in Gang zu setzen. Wenn ein Problem mit der Konfiguration oder berechtigungen vorliegt, werden diese Probleme in diesem Schritt angezeigt.

Standardmäßig wird ein Indexer ausgeführt, sobald Sie ihn in einem Suchdienst bereitstellen, aber wenn die Indexerkonfiguration auf "true" festgelegt ist disabled , wird der Indexer in einem deaktivierten Zustand gepostet, sodass Sie den Indexer manuell ausführen können.

Wir empfehlen Ausführung des Indexers aus dem Azure Portal, sodass Sie Status und Nachrichten überwachen können.

Wenn keine Fehler auftreten, wird der Index jetzt ausgefüllt, und Sie können mit Abfragen und Tests fortfahren.

Nachverfolgung von Löschungen

Um blob-Löschung effektiv zu verwalten, stellen Sie sicher, dass Sie die Löschnachverfolgung aktiviert haben, bevor der Indexer zum ersten Mal ausgeführt wird. Mit diesem Feature kann das System gelöschte Blobs aus Ihrer Quelle erkennen und den entsprechenden Inhalt aus dem Index löschen.

Siehe auch