Autentisera till en Azure-funktionsapp med hjälp av "Easy Auth" (Azure AI-sökning)

Kommentar

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.

Den här artikeln beskriver hur du konfigurerar en indexerareanslutning till en Azure-funktionsapp med hjälp av de inbyggda autentiseringsfunktionerna i Azure App Service, även kallat "Enkel autentisering". Azure Function-appar är en bra lösning för att vara värd för anpassade webb-API:er som en Azure AI-sökning-tjänst kan använda för att berika innehåll som matas in under en indexeringskörning eller, om du använder en anpassad inbäddningsmodell för integrerad vektorisering, vektorisera innehåll i en sökfråga.

Du kan använda en systemtilldelad eller användartilldelad hanterad identitet för söktjänsten för att autentisera mot Azure-funktionsappen. Den här metoden kräver att du konfigurerar en Microsoft Entra ID-programregistrering som ska användas som autentiseringsprovider för Azure-funktionsappen, vilket beskrivs i den här artikeln.

Förutsättningar

Konfigurera Microsoft Entra-ID-programmet som autentiseringsprovider

Om du vill använda Microsoft Entra-ID som autentiseringsprovider till Azure-funktionsappen måste en programregistrering skapas. Det finns två alternativ: skapa ett automatiskt via själva Azure-funktionsappen eller använd ett befintligt program. Mer information om de här stegen finns i App Service-dokumentationen.

Oavsett alternativ kontrollerar du att appregistreringen har konfigurerats enligt följande steg för att säkerställa att den är kompatibel med Azure AI-sökning.

Kontrollera att appregistreringen har program-ID-URI konfigurerad

Appregistreringen ska konfigureras med en program-ID-URI som kan användas som tokenmålgrupp med Azure Function-appar och Azure AI-sökning. Konfigurera den i formatet api://<applicationId>. Detta kan göras genom att gå till avsnittet Översikt i appregistreringen och ange fältet Program-ID URI .

Skärmbild av en appregistrering som konfigurerats med program-ID-URI.

Ange kontotyper som stöds för autentisering

Gå till avsnittet Autentisering i appregistreringen och konfigurera de kontotyper som stöds så att endast konton i samma organisationskatalog som appregistreringen kan använda den för autentisering.

Skärmbild av en appregistrering med konfigurerade stödda kontotyper.

(Valfritt) Konfigurera en klienthemlighet

App Service rekommenderar att du använder en klienthemlighet för autentiseringsproviderprogrammet. Autentiseringen fungerar fortfarande utan klienthemlighet, så länge de delegerade behörigheterna har konfigurerats. Om du vill konfigurera en klienthemlighet går du till avsnittet Certifikat och hemligheter i appregistreringen och lägger till en ny klienthemlighet enligt beskrivningen i den här artikeln.

Skärmbild av en appregistrering med alternativet att konfigurera klienthemlighet.

Lägga till ett omfång för att delegera behörigheter

Gå till avsnittet Exponera ett API och konfigurera appregistreringen så att den har ett omfång som delegerar administratörs- och användarbehörigheter till det för att säkerställa att det är kompatibelt med indexerarens autentiseringsflöde.

Skärmbild av en appregistrering som delegerar behörighetsomfång.

När det delegerade behörighetsomfånget har konfigurerats bör du i avsnittet API-behörigheter i appregistreringen märka att API:et User.Read på Microsoft.Graph har angetts.

Skärmbild av en appregistrering med delegerade behörigheter.

Konfigurera Microsoft Entra ID-autentiseringsprovider i Azure-funktionsappen

Med klientprogrammet registrerat med de tidigare specifikationerna kan Microsoft Entra ID-autentisering för Azure-funktionsappen konfigureras genom att följa App Service-dokumentationen. Gå till avsnittet Autentisering i Azure-funktionsappen för att konfigurera autentiseringsinformationen.

Kontrollera att följande inställningar är konfigurerade för att säkerställa att Azure AI-sökning kan autentiseras till Azure-funktionsappen.

Konfigurera autentiseringsinställningar

  • Kontrollera att App Service-autentisering är aktiverat
  • Begränsa åtkomsten till Azure-funktionsappen till Kräv autentisering
  • För oautentiserade begäranden föredrar du HTTP 401: Obehörig

Följande skärmbild visar de här specifika inställningarna för en Azure-exempelfunktionsapp.

Skärmbild av en Azure-funktionsapp som har konfigurerat autentiseringsinställningar.

Lägga till Microsoft Entra ID-autentiseringsprovider

  • Lägg till Microsoft Entra-ID som autentiseringsprovider för Azure-funktionsappen.
  • Skapa antingen en ny appregistrering eller välj en tidigare konfigurerad appregistrering. Kontrollera att den har konfigurerats enligt riktlinjerna i föregående avsnitt i det här dokumentet.
  • Se till att program-ID-URI:n för appregistreringen har angetts i avsnittet Tillåtna tokenmålgrupper. Det bör vara i formatet api://<applicationId> och matcha det som konfigurerades med appregistreringen som skapades tidigare.
  • Om du vill kan du konfigurera andra kontroller för att begränsa åtkomsten specifikt till indexeraren.

Skärmbild av en Azure-funktionsapp med Microsoft Entra ID-autentiseringsprovider.

Konfigurera andra kontroller

  • Kontrollera att objekt-ID:t (huvudnamn) för den specifika Azure AI-tjänsten Search identitet anges som identitetskrav genom att kontrollera alternativet Tillåt begäranden från specifika identiteter och ange objekt-ID (huvudnamn) i identitetsavsnittet.

Skärmbild av identitetsavsnittet för Azure AI-sökning-tjänsten.

  • I Krav för klientprogram väljer du alternativet Tillåt begäranden från ett specifikt klientprogram. Du måste leta upp klient-ID:t för Azure AI-sökning-tjänstens sökidentitet. Det gör du genom att kopiera över objekt-ID:t från föregående steg och leta upp det i din Microsoft Entra-ID-tenant. Det bör finnas ett matchande företagsprogram vars översiktssida visar ett program-ID, vilket är det GUID som måste anges som krav för klientprogrammet.

Skärmbild av informationen om företagsprogrammet för en Azure AI-sökning-tjänsts identitet.

Kommentar

Det här steget är den viktigaste konfigurationen i Azure-funktionsappen och om du gör det felaktigt kan det leda till att indexeraren inte får åtkomst till Azure-funktionsappen. Se till att du utför sökningen av identitetens företagsprograminformation korrekt och ange program-ID och objekt-ID på rätt platser.

  • För hyresgästkrav väljer du något av de alternativ som överensstämmer med din säkerhetshållning. Mer information finns i App Service-dokumentationen.

Konfigurera en anslutning till Azure-funktionsappen

JSON-definitionen skiljer sig något beroende på om anslutningen till Azure-funktionsappen behöver göras i en anpassad webb-API-färdighet eller en anpassad webb-API-vektoriserare. I båda fallen kontrollerar du att du anger rätt URI för Azure-funktionsappen och anger authResourceId till samma värde som den tillåtna tokenpubliken som konfigurerats för autentiseringsprovidern.

Beroende på om du väljer att ansluta med en systemtilldelad identitet eller användartilldelad identitet skiljer sig de obligatoriska egenskaperna något åt.

Använda en systemtilldelad identitet

Här är ett exempel för att anropa en funktion med namnet test för exempelappen Azure Funktion, där söktjänstens systemtilldelade identitet tillåts autentisera via "Enkel autentisering".

"uri": "https://contoso-function-app.azurewebsites.net/api/test?",
"authResourceId": "api://00000000-0000-0000-0000-000000000000"

Använda en användartilldelad identitet

Här är ett exempel för att anropa till samma funktion, där den specifika användartilldelade identiteten tillåts autentisera via "Enkel autentisering". Du måste ange resurs-ID:t för den exakta användartilldelade identiteten som ska användas i konfigurationens identity-egenskap.

"uri": "https://contoso-function-app.azurewebsites.net/api/test?",
"authResourceId": "api://00000000-0000-0000-0000-000000000000",
"identity" : { 
        "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity",
        "userAssignedIdentity": "/subscriptions/[subscription-id]/resourcegroups/[rg-name]/providers/Microsoft.ManagedIdentity/userAssignedIdentities/[my-user-managed-identity-name]" 
    }

Kommentar

Innan du anger en användartilldelad identitet i en anpassad webb-API-färdighet eller vektoriserardefinition tilldelar du identiteten till Azure AI-sökning-tjänsten.

Kör indexeraren/vektoriseraren för att verifiera behörigheter

För anpassade webb-API-kunskaper verifieras behörigheter under indexerarens körningstid. För vektoriserare verifieras de när en vektorfråga utfärdas med hjälp av Custom Web API-vektoriseraren. Om du vill utesluta specifika problem med autentisering kan du testa genom att inaktivera autentiseringsprovidern i Azure Function-appen och se till att anrop från indexeraren/vektoriseraren lyckas.

  • Om autentiseringsproblem kvarstår kontrollerar du att rätt identitetsinformation – nämligen program-ID, objekt-ID (principal-ID) för Azure AI-sökning-tjänstens identitet anges i Azure Function-appens autentiseringsleverantör.