Verifiëren bij een Azure-functie-app met behulp van 'Easy Auth' (Azure AI Zoeken)

Notitie

Azure AI Zoeken is beschikbaar via de Azure-portal, REST API's en Azure-SDK's. Het vormt ook een basis voor Foundry IQ, de beheerde kennislaag die bedrijfsinhoud transformeert in herbruikbare, machtigingsbewuste knowledge bases voor agents in de Microsoft Foundry-portal.

In dit artikel wordt uitgelegd hoe u een indexeerfunctieverbinding met een Azure Function-app instelt met behulp van de ingebouwde verificatiemogelijkheden van Azure App Service, ook wel 'Easy Auth' genoemd. Azure Function-apps zijn een uitstekende oplossing voor het hosten van aangepaste web-API's die een Azure AI Zoeken-service kan gebruiken om inhoud te verrijken die is opgenomen tijdens een uitvoering van een indexeerfunctie, of als u een aangepast insluitmodel gebruikt voor geïntegreerde vectorisatie, vectoriseert u inhoud in een zoekquery.

U kunt een door het systeem toegewezen of door de gebruiker toegewezen beheerde identiteit van de zoekservice gebruiken om te verifiëren bij de Azure Function-app. Voor deze aanpak moet u een Microsoft Entra ID-toepassingsregistratie instellen voor gebruik als verificatieprovider voor de Azure Function-app, zoals wordt uitgelegd in dit artikel.

Vereisten

de Microsoft Entra ID-toepassing configureren als de authenticatieprovider

Als u Microsoft Entra ID wilt gebruiken als verificatieprovider voor de Azure Function-app, moet er een toepassingsregistratie worden gemaakt. Er zijn twee opties: maak er automatisch een via de Azure Function-app zelf of gebruik een bestaande toepassing. Zie de App Service-documentatie voor meer informatie over deze stappen.

Zorg er, ongeacht de optie, voor dat de app-registratie is geconfigureerd volgens de volgende stappen om ervoor te zorgen dat deze compatibel is met Azure AI Zoeken.

Zorg ervoor dat de app-registratie een Application ID URI heeft geconfigureerd.

De app-registratie moet worden geconfigureerd met een toepassings-id-URI, die kan worden gebruikt als de tokendoelgroep met Azure Function-apps en Azure AI Zoeken. Configureer deze in de indeling api://<applicationId>. U kunt dit doen door naar de sectie Overzicht van de app-registratie te gaan en het veld URI voor de toepassings-id in te stellen.

Schermopname van een app-registratie die is geconfigureerd met de URI van de toepassings-id.

Ondersteunde accounttypen instellen voor verificatie

Ga naar de sectie Verificatie van de app-registratie en configureer de ondersteunde accounttypen , zodat alleen accounts in dezelfde organisatiemap als de app-registratie deze kunnen gebruiken voor verificatie.

Schermopname van een app-registratie met ondersteunde accounttypen geconfigureerd.

(Optioneel) Een clientgeheim configureren

App Service raadt het gebruik van een clientgeheim aan voor de verificatieprovidertoepassing. Verificatie werkt nog steeds zonder clientgeheim, zolang de gedelegeerde machtigingen zijn ingesteld. Als u een clientgeheim wilt instellen, gaat u naar de sectie Certificaten en geheimen van de app-registratie en voegt u een nieuw clientgeheim toe, zoals wordt uitgelegd in dit artikel.

Schermopname van een app-registratie met de optie voor het configureren van het clientgeheim.

Een bereik toevoegen om machtigingen te delegeren

Ga naar de sectie Een API beschikbaar maken en configureer de app-registratie om een bereik te hebben waarmee beheerders- en gebruikersmachtigingen worden gedelegeerd om ervoor te zorgen dat deze compatibel is met de verificatiestroom van de indexeerfunctie.

Schermopname van een app-registratie waarmee het machtigingsbereik wordt gedelegeerd.

Zodra het bereik voor gedelegeerde machtigingen is ingesteld, ziet u in de sectie API-machtigingen van de app-registratie dat de User.Read-API op Microsoft.Graph is ingesteld.

Schermopname van een app-registratie met gedelegeerde machtigingen.

Microsoft Entra ID-verificatieprovider configureren in de Azure Function-app

Wanneer de clienttoepassing is geregistreerd bij de vorige specificaties, kan Microsoft Entra ID-verificatie voor de Azure Function-app worden ingesteld door de App Service-documentatie te volgen. Navigeer naar de sectie Verificatie van de Azure Function-app om de verificatiegegevens in te stellen.

Zorg ervoor dat de volgende instellingen zijn geconfigureerd om ervoor te zorgen dat Azure AI Zoeken kan worden geverifieerd bij de Azure Function-app.

Verificatie-instellingen configureren

  • Zorg ervoor dat App Service-verificatie is ingeschakeld
  • Toegang tot de Azure Function-app beperken tot Verificatie vereisen
  • Voor niet-geverifieerde aanvragen geeft u de voorkeur aan HTTP 401: Niet geautoriseerd

In de volgende schermopname worden deze specifieke instellingen voor een Azure Function-voorbeeld-app gemarkeerd.

Schermopname van een Azure Function-app met geconfigureerde verificatie-instellingen.

Microsoft Entra ID-verificatieprovider toevoegen

  • Voeg Microsoft Entra-id toe als verificatieprovider voor de Azure Function-app.
  • Maak een nieuwe app-registratie of kies een eerder geconfigureerde app-registratie. Zorg ervoor dat deze is geconfigureerd volgens de richtlijnen in de vorige sectie van dit document.
  • Zorg ervoor dat in de sectie Toegestane tokendoelgroep de URI van de toepassings-id van de app-registratie is opgegeven. Deze moet de api://<applicationId> indeling hebben die overeenkomt met wat is geconfigureerd met de app-registratie die eerder is gemaakt.
  • Als u wilt, kunt u andere controles configureren om de toegang specifiek tot de indexeerfunctie te beperken.

Schermopname van een Azure Function-app met microsoft Entra ID-verificatieprovider.

Andere controles configureren

  • Zorg ervoor dat de object-id (principal) van de identiteit van de specifieke Azure AI-Search-service is opgegeven als de identiteitsvereiste, door de optie Aanvragen van specifieke identiteiten toestaan te controleren en de object-id (principal) in de identiteitssectie in te voeren.

Schermopname van de identiteitssectie voor een Azure AI-Search-service.

  • Selecteer in De vereiste clienttoepassing de optie Aanvragen toestaan vanuit een specifieke clienttoepassing. U moet de client-id voor de identiteit van de Azure AI-Search-service opzoeken. Kopieer hiervoor de object-id (principal) uit de vorige stap en zoek deze op in uw Microsoft Entra ID-tenant. Er moet een overeenkomende bedrijfstoepassing zijn waarvan de overzichtspagina een toepassings-id bevat. Dit is de GUID die moet worden opgegeven als de vereiste van de clienttoepassing.

Schermopname van de details van de enterprise-applicatie van de identiteit van een Azure AI Zoeken-service.

Notitie

Deze stap is de belangrijkste configuratie in de Azure Function-app en dit kan er ten onrechte toe leiden dat de indexeerfunctie geen toegang heeft tot de Azure Function-app. Zorg ervoor dat u de gegevens van de enterprise applicatie van de identiteit correct opzoekt en de toepassings-id en object-id (principal) op de juiste plaatsen opgeeft.

  • Kies voor de tenantvereiste een van de opties die overeenkomen met uw beveiligingspostuur. Zie de App Service-documentatie voor meer informatie.

Een verbinding met de Azure Function-app instellen

Afhankelijk van of de verbinding met de Azure Function-app moet worden gemaakt in een vaardigheid voor een aangepaste web-API of een aangepaste web-API-vectorizer, is de JSON-definitie iets anders. Zorg er in beide gevallen voor dat u de juiste URI opgeeft aan de Azure Function-app en stel de authResourceId waarde in op dezelfde waarde als de toegestane tokendoelgroep die is geconfigureerd voor de verificatieprovider.

Afhankelijk van of u verbinding wilt maken met behulp van een door het systeem toegewezen identiteit of door de gebruiker toegewezen identiteit, verschillen de vereiste eigenschappen enigszins.

Een door het systeem toegewezen identiteit gebruiken

Hier volgt een voorbeeld van het aanroepen van een functie met de naam test van de voorbeeld-Azure Functie-app, waarbij de door het systeem toegewezen identiteit van de zoekservice kan worden geverifieerd via 'Easy Auth'.

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

Een door de gebruiker toegewezen identiteit gebruiken

Hier volgt een voorbeeld van het aanroepen van dezelfde functie, waarbij de specifieke door de gebruiker toegewezen identiteit kan worden geverifieerd via 'Easy Auth'. U moet de resource-ID opgeven van de specifieke door de gebruiker toegewezen identiteit die wordt gebruikt in de eigenschap identity van de configuratie.

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

Notitie

Voordat u een door de gebruiker toegewezen identiteit opgeeft in een aangepaste web-API-vaardigheid of vectorizerdefinitie, wijst u de identiteit toe aan de Azure AI Zoeken-service.

Voer de indexeerfunctie/vectorizer uit om machtigingen te verifiëren

Voor aangepaste web-API-vaardigheden worden machtigingen gevalideerd tijdens de runtime van de indexeerfunctie. Voor vectorizer worden ze gevalideerd wanneer een vectorquery wordt uitgegeven met behulp van de Aangepaste web-API-vectorizer. Als u specifieke problemen met verificatie wilt uitsluiten, kunt u testen door de verificatieprovider uit te schakelen in de Azure Function-app en ervoor te zorgen dat aanroepen van indexeerfunctie/vectorizer slagen.

  • Als verificatieproblemen zich blijven voordoen, moet u ervoor zorgen dat de juiste identiteitsgegevens, namelijk toepassings-id, object-id (principal) voor de identiteit van de Azure AI-Search-service zijn opgegeven in de verificatieprovider van de Azure Function-app.