Använd en blobindexerare eller kunskapskälla för att mata in RBAC-omfångsmetadata (förhandsversion)

Observera

Azure AI-sökning är tillgängligt via Azure-portalen, REST-API:er och Azure-SDK:er. Den ligger också till grund för Foundry IQ, det hanterade kunskapsskiktet som omvandlar företagsinnehåll till återanvändbara, behörighetsmedvetna kunskapsbaser för agenter i Microsoft Foundry-portalen.

Important

Funktioner, funktioner eller egenskaper som har markerats (förhandsversion) omfattas inte av ett serviceavtal, rekommenderas inte för produktionsarbetsbelastningar och kan ändras eller begränsas innan de blir allmänt tillgängliga. Villkoren för Azure AI-sökning förhandsgranskning gäller för alla förhandsgranskningsfunktioner, oavsett om de är fristående eller en del av en allmänt tillgänglig funktion.

Azure Storage möjliggör rollbaserad åtkomst till containrar i Blob Storage, där roller som Storage Blob Data Reader eller Storage Blob Data Contributor avgöra om någon har åtkomst till innehåll. Azure AI-sökning stöder inmatning av användarbehörigheter (förhandsversion) tillsammans med dokumentinmatning så att du kan använda dessa behörigheter för att styra åtkomsten till sökresultat. Om en användare saknar behörighet för en specifik katalog eller fil i Azure Storage har användaren inte åtkomst till motsvarande dokument i Azure AI-sökning resultat, även om du personligen har en Search Index Data Reader tilldelning på indexet.

  • 2025-05-01-preview och senare kan metadata för RBAC-omfång importeras med blobindexeraren.
  • 2025-11-01-preview och ger senare motsvarande stöd för Blob-kunskapskällor i Azure Storage.

RBAC-omfånget anges på containernivå och flödar till alla blobar (dokument) via arv av behörigheter. RBAC-omfång samlas in under indexering som behörighetsmetadata. Du kan använda push-API:er för att ladda upp och indexera innehåll och behörighetsmetadata manuellt (se Indexeringsbehörigheter med push-REST-API:et), eller så kan du använda en indexerare eller kunskapskälla för att automatisera datainmatning. Den här artikeln fokuserar på indexeringsautomatisering.

Vid frågetillfället inkluderas anroparens identitet i begärandehuvudet via parametern x-ms-query-source-authorization . Identiteten måste matcha behörighetsmetadata för dokument om användaren ska kunna se sökresultaten.

Den här artikeln fokuserar på metoder för indexeringsautomatisering som bygger på den här grunden:

Förutsättningar

  • Microsoft Entra ID autentisering och auktorisering. Tjänster och appar måste finnas i samma klientorganisation. Användare kan finnas i olika tenanter så länge alla tenanter är Microsoft Entra ID. Rolltilldelningar används för varje autentiserad anslutning.

  • Azure AI-sökning, vilken region som helst, men du måste ha en fakturerbar nivå (grundläggande och högre) för stöd för hanterad identitet. Söktjänsten måste konfigureras för rollbaserad åtkomst och den måste ha en hanterad identitet (antingen system eller användare).

  • Azure Storage, Standardprestanda (generell användning v2), på nivåerna frekvent, lågfrekvent och kall åtkomst, med RBAC-skyddade containrar eller blobar.

  • Du bör förstå hur indexerare och kunskapskällor fungerar och hur du skapar ett index. Den här artikeln förklarar konfigurationsinställningarna för datakällan och indexeraren, men innehåller inga steg för att skapa indexet. Mer information om index som utformats för behörighetsfilter finns i Skapa ett index med behörighetsfilterfält.

Limitations

Konfigurera Blob Storage

Kontrollera att blobcontainern använder rollbaserad åtkomst.

  1. Logga in på Azure-portalen och leta reda på ditt lagringskonto.

  2. Expandera containrar och välj den container som innehåller de blobar som du vill indexeras.

  3. Välj Access Control (IAM) för att kontrollera rolltilldelningar. Användare och grupper med Storage Blob Data Reader eller Storage Blob Data Contributor har åtkomst till att söka i dokument i indexet när containern har indexerats.

Tillstånd

För körning av indexerare måste din söktjänstidentitet ha behörigheten Storage Blob Data Reader. Mer information finns i Anslut till Azure Storage med hjälp av en hanterad identitet.

Kom ihåg att söktjänsten måste ha:

Tillstånd

För indexeringskörning måste klienten som utfärdar API-anropet ha Search Service Contributor behörighet att skapa objekt, Search Index Data Contributor behörighet att utföra dataimport och Search Index Data Reader för att fråga ett index se Anslut till Azure AI-sökning med hjälp av roller.

Konfigurera en kunskapskälla

Om du använder en kunskapskälla används definitioner i kunskapskällan för att generera en fullständig indexeringspipeline (indexerare, datakälla och index). RBAC-omfång identifieras och inkluderas automatiskt i det genererade indexet. Du behöver inte ändra något av de genererade objekten om du vill ha behörighetsarv i ditt indexerade innehåll.

Viktiga punkter om konfigurationen som gör att det fungerar för det här scenariot:

  • isADLSGen2 är inställt på false, vilket innebär att datakällan är Azure Blob Storage.
  • ingestionPermissionOptions anger 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}}"
            }
        }
    }
}

Referens:Skapa eller uppdatera kunskapskälla (REST API)

Konfigurera indexerarbaserad indexering

Om du använder en indexerare konfigurerar du den, datakällan och indexet för att hämta behörighetsmetadata från blobar.

Skapa datakällan

  • Datakällans typ måste vara azureblob.

  • Datakällans parsningsläge måste vara standard.

  • Datakällan måste ha indexerPermissionOptions med rbacScope.

JSON-exempel med systemhanterad identitet och 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-schemaexempel med en användarhanterad identitet i reťazec pripojenia:

{
    "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}"
    }
}

Skapa behörighetsfält i indexet

I Azure AI-sökning kontrollerar du att ditt index innehåller fältdefinitioner för behörighetsmetadata. Behörighetsmetadata kan indexeras när indexerPermissionOptions anges i datakällans definition.

Rekommenderade schemaattribut för RBAC-omfång

  • RBAC-omfångsfält med rbacScope behörighetsfiltervärde.
  • Egenskap permissionFilterOption för att aktivera filtrering vid frågetillfället.
  • Använda strängfält för behörighetsmetadata
  • Ställ in filterable på sant för alla fält.

Observera att det retrievable är falskt. Du kan ange det till 'true' under utvecklingen för att verifiera att behörigheter finns, men kom ihåg att ändra tillbaka till 'false' innan du distribuerar till en produktionsmiljö, så att säkerhetsobjektidentiteter inte visas i resultaten.

JSON-schemaexempel:

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

Konfigurera indexeraren

Fältmappningar i en indexerare anger datasökvägen till fält i ett index. Mål- och målfält som varierar beroende på namn eller datatyp kräver en explicit fältmappning. Följande metadatafält i Azure Blob Storage kan behöva fältmappningar om du varierar fältnamnet:

  • metadata_rbac_scope (Edm.String) – containerns RBAC-omfång.

Ange fieldMappings i indexeraren att dirigera behörighetsmetadata till målfält under indexering.

JSON-schemaexempel:

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

Kör indexeraren

När indexeraren, datakällan och indexet har konfigurerats kör du indexeraren för att ställa in processen i rörelse. Om det uppstår problem med konfiguration eller behörigheter visas dessa problem i det här steget.

Som standard körs en indexerare så fort du publicerar den till en söktjänst, men om indexerarens konfiguration innehåller disabled värdet true publiceras indexeraren i inaktiverat tillstånd så att du kan köra indexeraren manuellt.

Vi rekommenderar kör indexeraren från Azure-portalen så att du kan övervaka status och meddelanden.

Om det inte finns några fel fylls indexet nu i och du kan gå vidare med frågor och testning.

Borttagningsspårning

För att effektivt hantera borttagning av blobar kontrollerar du att du har aktiverat borttagningsspårning innan indexeraren körs för första gången. Med den här funktionen kan systemet identifiera borttagna blobar från källan och ta bort motsvarande innehåll från indexet.

Se även