Authentifizieren bei einer Azure-Funktions-App mithilfe von "Easy Auth" (Azure KI-Suche)

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.

In diesem Artikel wird erläutert, wie Sie eine Indexerverbindung mit einer Azure Function-App mithilfe der integrierten Authentifizierungsfunktionen von Azure App Service einrichten, auch bekannt als "Easy Auth". Azure Function-Apps sind eine großartige Lösung zum Hosten von benutzerdefinierten Web-APIs, mit denen ein Azure KI-Suche-Dienst Inhalte anreichern kann, die während einer Indexerausführung aufgenommen werden, oder wenn Sie ein benutzerdefiniertes Einbettungsmodell für integrierte Vektorisierung verwenden, vektorisieren Sie Inhalte in einer Suchabfrage.

Sie können eine vom System zugewiesene oder vom Benutzer zugewiesene verwaltete Identität des Suchdiensts verwenden, um sich bei der Azure Function-App zu authentifizieren. Für diesen Ansatz ist die Einrichtung einer Microsoft Entra ID-Anwendungsregistrierung erforderlich, die als Authentifizierungsanbieter für die Azure Function-App verwendet wird, die in diesem Artikel erläutert wird.

Voraussetzungen

Konfigurieren der Microsoft Entra ID-Anwendung als Authentifizierungsanbieter

Um Microsoft Entra ID als Authentifizierungsanbieter für eine Azure-Funktions-App zu verwenden, muss eine Anwendungsregistrierung erstellt werden. Es gibt zwei Optionen: Erstellen Sie eine automatisch über die Azure Function-App selbst oder verwenden Sie eine vorhandene Anwendung. Weitere Informationen zu diesen Schritten finden Sie in der App Service-Dokumentation.

Stellen Sie unabhängig von der Option sicher, dass die App-Registrierung gemäß den folgenden Schritten konfiguriert ist, um sicherzustellen, dass sie mit Azure KI-Suche kompatibel ist.

Vergewissern Sie sich, dass für die App-Registrierung ein Anwendungs-ID-URI konfiguriert wurde.

Die App-Registrierung sollte mit einem Anwendungs-ID-URI konfiguriert werden, der als Tokenzielgruppe mit Azure-Funktions-Apps und Azure KI-Suche verwendet werden kann. Konfigurieren Sie ihn im Format api://<applicationId>. Dazu navigieren Sie zum Abschnitt Übersicht der App-Registrierung und legen das Feld Anwendungs-ID-URI fest.

Screenshot einer App-Registrierung mit konfiguriertem Anwendungs-ID-URI

Festlegen unterstützter Kontotypen für die Authentifizierung

Wechseln Sie zum Abschnitt " Authentifizierung" der App-Registrierung , und konfigurieren Sie die unterstützten Kontotypen , sodass nur Konten im selben Organisationsverzeichnis wie die App-Registrierung sie für die Authentifizierung verwenden können.

Screenshot einer App-Registrierung mit konfigurierten unterstützten Kontotypen

(Optional:) Konfigurieren eines geheimen Clientschlüssels

Der App-Dienst empfiehlt die Verwendung eines geheimen Clientschlüssels für die Authentifizierungsanbieteranwendung. Die Authentifizierung funktioniert aber auch ohne geheimen Clientschlüssel, sofern delegierte Berechtigungen eingerichtet sind. Um einen geheimen Clientschlüssel einzurichten, navigieren Sie zum Abschnitt Zertifikate und Geheimnisse der App-Registrierung und fügen einen neuen geheimen Clientschlüssel hinzu, wie in diesem Artikel erläutert.

Screenshot einer App-Registrierung mit der Option zum Konfigurieren eines geheimen Clientschlüssels

Hinzufügen eines Geltungsbereichs zum Delegieren von Berechtigungen

Navigieren Sie zum Abschnitt Eine API verfügbar machen, und konfigurieren Sie die App-Registrierung so, dass ihr Geltungsbereich Administrator- und Benutzerberechtigungen an sie delegiert. Damit stellen Sie sicher, dass sie mit dem Authentifizierungsflow des Indexers kompatibel ist.

Screenshot des Geltungsbereichs einer App-Registrierung zum Delegieren von Berechtigungen

Nachdem der Geltungsbereich der delegierten Berechtigungen eingerichtet wurde, sollte im Abschnitt API-Berechtigungen der App-Registrierung die User.Read-API auf „Microsoft.Graph“ festgelegt sein.

Screenshot einer App-Registrierung mit delegierten Berechtigungen

Konfigurieren des Microsoft Entra ID-Authentifizierungsanbieters in der Azure-Funktions-App

Nachdem die Clientanwendung mit den vorherigen Spezifikationen registriert wurde, kann die Microsoft Entra ID-Authentifizierung für die Azure Function-App mithilfe der App-Dienstdokumentation eingerichtet werden. Navigieren Sie zum Abschnitt Authentifizierung der Azure-Funktions-App, um die Authentifizierungsdetails einzurichten.

Vergewissern Sie sich, dass die folgenden Einstellungen konfiguriert sind, um sicherzustellen, dass Azure KI-Suche erfolgreich bei der Azure-Funktions-App authentifiziert werden kann.

Konfigurieren der Authentifizierungseinstellungen

  • Stellen Sie sicher, dass App Service-Authentifizierung auf Aktiviert festgelegt ist.
  • Einschränken des Zugriffs auf die Azure-Funktions-App mit Authentifizierung erforderlich
  • Wählen Sie für nicht authentifizierte Anforderungen den Fehler HTTP 401: Nicht autorisiert aus.

Der folgende Screenshot zeigt diese spezifischen Einstellungen für eine Azure-Funktions-Beispiel-App.

Screenshot einer Azure-Funktions-App mit konfigurierten Authentifizierungseinstellungen

Hinzufügen des Microsoft Entra ID-Authentifizierungsanbieters

  • Fügen Sie Microsoft Entra ID als Authentifizierungsanbieter für die Azure-Funktions-App hinzu.
  • Erstellen Sie entweder eine neue App-Registrierung, oder wählen Sie eine zuvor konfigurierte App-Registrierung aus. Vergewissern Sie sich, dass sie gemäß den Richtlinien im vorherigen Abschnitt dieses Dokuments konfiguriert wurde.
  • Vergewissern Sie sich, dass im Abschnitt Zugelassene Tokenzielgruppen der Anwendungs-ID-URI der App-Registrierung angegeben ist. Er sollte das Format api://<applicationId> aufweisen und mit der zuvor erstellten App-Registrierung übereinstimmen.
  • Wenn Sie möchten, können Sie andere Prüfungen so konfigurieren, dass der Zugriff speziell auf den Indexer beschränkt wird.

Screenshot einer Azure-Funktions-App mit dem Microsoft Entra ID-Authentifizierungsanbieter

Konfigurieren anderer Prüfungen

  • Stellen Sie sicher, dass als Objekt-ID (Prinzipal-ID) der Identität des jeweiligen Azure KI-Suche-Diensts Identitätsanforderung angegeben ist, indem Sie die Option Anforderungen von bestimmten Identitäten zulassen überprüfen und die Objekt-ID (Prinzipal-ID) im Identitätsabschnitt eingeben.

Screenshot des Identitätsabschnitts für einen Azure KI-Suche-Dienst

  • Wählen Sie in der Clientanwendungsanforderung die Option " Anforderungen von einer bestimmten Clientanwendung zulassen" aus. Sie müssen die Client-ID zur Identität des Azure KI-Suche-Diensts nachschlagen. Kopieren Sie dazu die Objekt-ID (Prinzipal-ID) aus dem vorherigen Schritt, und suchen Sie in Ihrem Microsoft Entra ID-Mandanten danach. Es sollte eine übereinstimmende Unternehmensanwendung vorhanden sein, auf deren Übersichtsseite eine Anwendungs-ID aufgeführt wird. Dabei handelt es sich um die GUID, die als Clientanwendungsanforderung angegeben werden muss.

Screenshot der Details einer Unternehmensanwendung der Identität eines Azure KI-Suche-Diensts

Hinweis

Dieser Schritt ist der wichtigste Konfigurationsschritt für die Azure-Funktions-App. Eine falsche Vorgehensweise kann dazu führen, dass der Indexer nicht auf die Azure-Funktions-App zugreifen kann. Achten Sie darauf, die Unternehmensanwendungsdetails der Identität korrekt nachzuschlagen und die Anwendungs-ID und die Objekt-ID (Prinzipal-ID) an den richtigen Stellen anzugeben.

  • Wählen Sie unter Mandantenanforderung eine der Optionen aus, die Ihrem Sicherheitsstatus entspricht. Weitere Informationen finden Sie in der App Service-Dokumentation.

Einrichten einer Verbindung mit der Azure Function-App

Je nachdem, ob die Verbindung mit der Azure-Funktions-App in einem benutzerdefinierten Web-API-Skill oder einem benutzerdefinierten Web-API-Vektorisierer hergestellt werden muss, unterscheidet sich die JSON-Definition geringfügig. Stellen Sie in beiden Fällen sicher, dass Sie den richtigen URI für die Azure-Funktions-App angeben und authResourceId auf denselben Wert festlegen, der unter Zugelassene Tokenzielgruppen für den Authentifizierungsanbieter konfiguriert wurde.

Je nachdem, ob Sie eine Verbindung mit einer vom System zugewiesenen Identität oder einer vom Benutzer zugewiesenen Identität herstellen möchten, unterscheiden sich die erforderlichen Eigenschaften geringfügig.

Eine systemseitig zugewiesene Identität verwenden

Hier ist ein Beispiel zum Aufrufen einer Funktion namens test in der Azure Functions-Beispiel-App, bei der sich die systemseitig zugewiesene Identität des Suchdiensts über „Easy Auth“ authentifizieren darf.

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

Verwenden einer benutzerseitig zugewiesenen Identität

Hier ist ein Beispiel für den Aufruf in dieselbe Funktion, bei dem die bestimmte vom Benutzer zugewiesene Identität über "Easy Auth" authentifiziert werden darf. Sie müssen die Ressourcen-ID der genauen vom Benutzer zugewiesenen Identität angeben, die in der identity Eigenschaft der Konfiguration verwendet werden soll.

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

Hinweis

Bevor Sie eine vom Benutzer zugewiesene Identität in einer benutzerdefinierten Web-API-Qualifikations- oder Vectorizerdefinition angeben, weisen Sie die Identität dem Azure KI-Suche Dienst zu.

Ausführen des Indexers/Vektorisierers zum Überprüfen der Berechtigungen

Bei benutzerdefinierten Web-API-Skills werden die Berechtigungen zur Indexerlaufzeit überprüft. Bei Vektorizern werden sie überprüft, wenn eine Vektorabfrage mit dem benutzerdefinierten Web-API-Vektorizer ausgegeben wird. Um Probleme mit der Authentifizierung auszuschließen, können Sie testweise den Authentifizierungsanbieter in der Azure-Funktions-App deaktivieren und dann überprüfen, ob Aufrufe von Indexer/Vektorisierer erfolgreich ausgeführt werden.

  • Wenn weiterhin Authentifizierungsprobleme bestehen, vergewissern Sie sich, dass im Authentifizierungsanbieter der Azure-Funktions-App die richtigen Identitätsinformationen (Anwendungs-ID, Objekt-ID (Prinzipal-ID)) für die Identität des Azure KI-Suche-Diensts angegeben wurden.