Erstellen und Ausführen von Code aus Workflows in Azure Logic Apps mithilfe von Azure Functions

Gilt für: Azure Logic Apps (Verbrauch + Standard)

Wenn Sie Code ausführen möchten, der einen bestimmten Auftrag in Ihrem Logik-App-Workflow ausführt, können Sie mithilfe von Azure Functions eine Funktion erstellen. Mit diesem Dienst können Sie Node.js-, C#- and F#-Funktionen erstellen, sodass Sie keine vollständige App oder Infrastruktur zur Ausführung von Code erstellen müssen. Azure Functions ermöglicht serverloses Computing in der Cloud und ist nützlich, um bestimmte Aufgaben auszuführen, etwa folgende:

  • Erweitern Sie das Verhalten Ihrer Logik-App um Funktionen in Node.js oder C#.
  • Führen Sie in Ihrem Logik-App-Workflow Berechnungen durch.
  • Wenden Sie in Ihren Logik-App-Workflows die erweiterte Formatierung oder Computefelder an.

In diesem Artikel wird gezeigt, wie Sie eine Azure-Funktion aus einem Logik-App-Workflow aufrufen. Informationen zum Ausführen von Codeausschnitten ohne Verwendung von Azure Functions finden Sie unter Hinzufügen und Ausführen von Inlinecode. Um einen Logik-App-Workflow aus einer Funktion aufzurufen und auszulösen, muss der Workflow mit einem Trigger beginnen, der einen aufrufbaren Endpunkt bereitstellt. So können Sie beispielsweise den Workflow mit einem der Trigger HTTP, Anforderung, Azure-Warteschlangen oder Event Grid beginnen. Senden Sie innerhalb Ihrer Funktion eine HTTP POST-Anforderung an die URL des Triggers, und schließen Sie die Nutzdaten ein, die dieser Workflow verarbeiten soll. Weitere Informationen finden Sie unter Aufrufen, Auslösen oder Schachteln von Logik-App-Workflows.

Einschränkungen

  • Sie können eine Funktion nur direkt aus einem Verbrauchs-Logik-App-Workflow erstellen, nicht aus einem Standard-Logik-App-Workflow. Sie können Funktionen jedoch auf andere Weise erstellen. Weitere Informationen finden Sie unter Erstellen von Funktionen aus Logik-App-Workflows heraus.

  • Nur Verbrauchs-Workflows unterstützen die Authentifizierung von Azure-Funktionsaufrufen mithilfe einer verwalteten Identität mit Microsoft Entra-Authentifizierung. Standard-Workflows werden derzeit nicht im Abschnitt zum Aktivieren der Authentifizierung für Funktionsaufrufe unterstützt.

  • Azure Logic Apps unterstützt nicht die Verwendung von Azure Functions mit aktivierten Bereitstellungsslots. Dieses Szenario funktioniert zwar manchmal, aber dieses Verhalten ist unvorhersehbar und kann zu Autorisierungsproblemen führen, wenn Ihr Workflow versucht, die Azure-Funktion aufzurufen.

Voraussetzungen

  • Azure-Konto und -Abonnement. Falls Sie kein Abonnement besitzen, können Sie sich für ein kostenloses Azure-Konto registrieren.

  • Eine Azure-Funktions-App-Ressource, bei der es sich um einen Container für eine Funktion handelt, den Sie mithilfe von Azure Functions zusammen mit der Funktion, die Sie verwenden möchten, erstellen können.

    Wenn noch keine Funktionen-App vorhanden ist, erstellen Sie zuerst Ihre Funktionen-App. Sie können dann Ihre Funktion entweder mithilfe von Azure Functions außerhalb Ihres Logik-App-Workflows im Azure-Portal oder aus Ihrem Logik-App-Workflow heraus im Designer erstellen.

  • Wenn Sie mit Logik-App-Ressourcen arbeiten, gelten die selben Anforderungen sowohl für Funktions-Apps als auch für Funktionen (vorhanden oder neu):

    • Ihre Funktions-App-Ressource und Logik-App-Ressource müssen dasselbe Azure-Abonnement verwenden.

    • Neue Funktions-Apps müssen entweder .NET oder JavaScript als Laufzeitstapel verwenden. Wenn Sie vorhandenen Funktions-Apps eine neue Funktion hinzufügen, haben Sie die Wahl zwischen C# und JavaScript.

    • Ihre Funktion verwendet die HTTP-Trigger-Vorlage.

      Die HTTP-Trigger-Vorlage kann Inhalte des Typs application/json von Ihrem Logik-App-Workflow akzeptieren. Wenn Sie Ihrem Workflow eine Funktion hinzufügen, zeigt der Designer benutzerdefinierte Funktionen an, die im Rahmen Ihres Azure-Abonnements aus dieser Vorlage erstellt wurden.

    • Ihre Funktion verwendet keine benutzerdefinierten Routen – es sei denn, dass Sie eine OpenAPI-Definition (Swagger-Datei) festgelegt haben.

    • Wenn Sie für Ihre Funktion eine OpenAPI-Definition festgelegt haben, erhalten Sie im Workflow-Designer eine umfangreichere Benutzeroberfläche für die Arbeit mit Funktionsparametern. Bevor Ihr Logik-App-Workflow Funktionen mit OpenAPI-Definitionen finden und darauf zugreifen kann, müssen Sie Ihre Funktions-App mit diesen späteren Schritten einrichten.

  • Um dem Beispiel in dieser Schrittanleitung zu folgen, benötigen Sie eine Verbrauchs-Logik-App-Ressource und einen Workflow, der im ersten Schritt mit einem Trigger beginnt. Obwohl Sie einen beliebigen Trigger für Ihr Szenario verwenden können, wird in diesem Beispiel der Office 365 Outlook-Trigger mit dem Namen When a new email arrives (Wenn eine neue E-Mail eintrifft) verwendet.

Suchen von Funktionen, die OpenAPI-Beschreibungen besitzen

Um eine umfassendere Benutzeroberfläche für die Arbeit mit Funktionsparametern im Workflow-Designer zu erhalten, generieren Sie eine OpenAPI-Definition oder Swagger-Datei für Ihre Funktion. Wenn Sie Ihre Funktionen-App so einrichten möchten, dass Ihre Logik-App Funktionen, die über Swagger-Beschreibungen verfügen, finden und nutzen kann, führen Sie die folgenden Schritte aus:

  1. Öffnen Sie im Azure-Portal Ihre Funktions-App. Stellen Sie sicher, dass die Funktions-App aktiv ausgeführt wird.

  2. Richten Sie Ressourcenfreigabe zwischen verschiedenen Ursprüngen (Cross-Origin Resource Sharing, CORS) für Ihre Funktions-App mit den folgenden Schritten ein, damit alle Ursprünge zulässig sind:

    1. Wählen Sie im Ressourcenmenü der Funktions-App unter API die Option CORS aus.

      Screenshot: Ressourcenmenü der Funktions-App im Azure-Portal mit ausgewählter Option „CORS“

    2. Fügen Sie unter CORS das Sternchen-Platzhalterzeichen ( * ) hinzu, aber entfernen Sie alle anderen Ursprünge in der Liste, und wählen Sie Speichern aus.

      Screenshot: Bereich „CORS“ im Azure-Portal, in dem unter „Zulässige Ursprünge“ das Platzhalterzeichen „*“ eingegeben ist

Zugreifen auf Eigenschaftswerte in HTTP-Anforderungen

Webhook-Funktionen können HTTP-Anforderungen als Eingaben akzeptieren und diese Anforderungen an andere Funktionen übergeben. Obwohl Azure Logic Apps beispielsweise über Funktionen zum Konvertieren von DateTime-Werten verfügt, wird in diesem einfachen Beispiel für eine JavaScript-Funktion Folgendes veranschaulicht: Zugreifen auf eine Eigenschaft in einem Anforderungsobjekt, das an die Funktion übergeben wird, und Durchführen von Vorgängen für diesen Eigenschaftswert. Für den Zugriff auf Eigenschaften in Objekten wird in diesem Beispiel der Operator Punkt (.) verwendet:

function convertToDateString(request, response){
   var data = request.body;
   response = {
      body: data.date.ToDateString();
   }
}

In dieser Funktion läuft Folgendes ab:

  1. Die Funktion erstellt die Variable data und weist das body-Objekt im request-Objekt dieser Variablen zu. In der Funktion wird der Operator „Punkt“ (.) eingesetzt, um auf das body-Objekt im request-Objekt zu verweisen:

    var data = request.body;
    
  2. Die Funktion kann nun über die Variable data auf die date-Eigenschaft zugreifen und diesen Eigenschaftswert aus dem DateTime-Typ in den DateString-Typ konvertieren, indem die Funktion ToDateString() aufgerufen wird. Die Funktion gibt auch das Ergebnis über die body-Eigenschaft in der Antwort der Funktion zurück:

    body: data.date.ToDateString();
    

Nachdem Sie nun Ihre Funktion in Azure erstellt haben, können Sie die Schritte zum Hinzufügen von Funktionen zu Logik-Apps ausführen.

Erstellen von Funktionen aus Logik-App-Workflows heraus (nur Verbrauchs-Workflows)

Sie können Funktionen direkt aus Ihrem Verbrauchs-Workflow heraus erstellen, indem Sie die integrierte Azure Functions-Aktion im Workflow-Designer verwenden. Sie können diese Methode jedoch nur für in JavaScript geschriebene Funktionen verwenden. Für andere Programmiersprachen können Sie Funktionen auf der Azure Functions-Benutzeroberfläche im Azure-Portal erstellen. Bevor Sie jedoch eine Funktion in Azure erstellen können, müssen Sie bereits über eine Funktions-App-Ressource verfügen, die ein Container für Ihre Funktionen ist. Erstellen Sie zuerst diese Funktionen-App, falls sie noch nicht vorhanden ist. Weitere Informationen finden Sie unter Erstellen Ihrer ersten Funktion im Azure-Portal.

Standard-Workflows unterstützen diese Option zum Erstellen einer Funktion aus einem Workflow heraus derzeit nicht. Sie können die Funktion jedoch auf folgende Weise erstellen und diese Funktion dann mithilfe des Azure Functions-Vorgangs mit dem Namen Aufrufen einer Azure-Funktion aus Ihrem Standard-Logik-App-Workflow aufrufen.

  1. Öffnen Sie im Azure-Portal Ihre Verbrauchslogik-App und deren Workflow im Workflow-Designer.

  2. Führen Sie im Designer die folgenden allgemeinen Schritte aus, um die Aktion Azure Functions namens Azure-Funktion auswählen hinzuzufügen.

  3. Wählen Sie aus der angezeigten Liste der Funktions-Apps Ihre Funktions-App aus. Nachdem die Liste mit den Aktionen geöffnet wurde, wählen Sie die Aktion namens Neue Funktion erstellen aus.

    Screenshot: Vorgangsauswahl mit „Neue Funktion erstellen“

  4. Definieren Sie im Editor für Funktionsdefinitionen Ihre Funktion:

    1. Geben Sie im Feld Funktionsname einen Namen für Ihre Funktion an.

    2. Fügen Sie im Feld Code der Funktionsvorlage Ihren Code hinzu. Binden Sie auch die Antwort und Nutzlast ein, die für Ihre Logik-App zurückgegeben werden soll, nachdem die Ausführung Ihrer Funktion abgeschlossen ist. Wenn Sie fertig sind, wählen Sie Erstellen aus, z. B.:

    Screenshot: Editor für die Funktionserstellung mit Vorlagenfunktionsdefinition

    Im Code der Vorlage bezieht sich das context-Objekt auf die Nachricht, die Ihr Workflow in einem späteren Schritt über die Eigenschaft Anforderungstext sendet. Verwenden Sie für den Zugriff auf die Eigenschaften des context-Objekts aus Ihrer Funktion heraus die folgende Syntax:

    context.body.<property-name>

    Um beispielsweise auf die content-Eigenschaft im context-Objekt zu verweisen, verwenden Sie die folgende Syntax:

    context.body.content

    Der Vorlagencode enthält auch eine input-Variable, in der der Wert aus dem Parameter data gespeichert wird, damit Ihre Funktion Vorgänge an diesem Wert durchführen kann. Innerhalb der JavaScript-Funktionen ist die data-Variable außerdem eine Kurzform für context.body.

    Hinweis

    Die body-Eigenschaft gilt hier für das context-Objekt und ist mit dem Body-Token aus der Ausgabe einer Aktion nicht identisch, das Sie möglicherweise ebenfalls an Ihre Funktion übergeben.

  5. Geben Sie im Feld Anforderungstext die Eingabe für Ihre Funktion ein, die als JSON-Objekt (JavaScript Object Notation) formatiert werden muss.

    Diese Eingabe ist das Kontextobjekt oder die Nachricht, das bzw. die von Ihrer Logik-App an Ihre Funktion gesendet wird. Wenn Sie in das Feld Anforderungstext klicken, wird die Liste mit dem dynamischen Inhalt angezeigt, und Sie können Token für Ausgaben aus vorherigen Schritten auswählen. In diesem Beispiel wird angegeben, dass die Kontextnutzlast die Eigenschaft content enthält, die den Wert des Tokens Von aus dem E-Mail-Trigger aufweist.

    Screenshot: Funktion und Eigenschaft „Anforderungstext“ mit Beispiel für die Nutzlast des Kontextobjekts

    Hier wird das Kontextobjekt nicht in eine Zeichenfolge umgewandelt, sodass der Inhalt des Objekts der JSON-Nutzlast direkt hinzugefügt wird. Wenn das Kontextobjekt aber kein JSON-Token ist, das eine Zeichenfolge, ein JSON-Objekt oder ein JSON-Array übergibt, wird eine Fehlermeldung angezeigt. Wurde in diesem Beispiel also stattdessen das Token Empfangszeit verwendet, können Sie das Kontextobjekt in eine Zeichenfolge umwandeln, indem Sie doppelte Anführungszeichen hinzufügen, beispielsweise:

    Screenshot: Eigenschaft „Anforderungstext“, die ein Objekt in eine Zeichenfolge umwandelt

  6. Um weitere Details wie die zu verwendende Methode, Anforderungskopfzeilen, Abfrageparameter oder Authentifizierung anzugeben, öffnen Sie die Liste Neuen Parameter hinzufügen, und wählen Sie die gewünschten Optionen aus. Bei der Authentifizierung unterscheiden sich die Optionen je nach der von Ihnen ausgewählten Funktion. Weitere Informationen finden Sie unter Aktivieren der Authentifizierung für Funktionen.

Hinzufügen vorhandener Funktionen zu Logik-App-Workflows (Verbrauchs- und Standard-Workflows)

Zum Aufrufen vorhandener Funktionen aus Ihrem Logik-App-Workflow können Sie Funktionen wie alle anderen Aktionen im Designer hinzufügen.

  1. Öffnen Sie im Azure-Portal Ihren Verbrauchs-Logik-App-Workflow im Designer.

  2. Führen Sie im Designer die folgenden allgemeinen Schritte aus, um die Aktion Azure Functions namens Azure-Funktion auswählen hinzuzufügen.

  3. Wählen Sie in der Liste mit den Funktionen-Apps Ihre Funktionen-App aus. Wählen Sie Ihre Funktion aus, wenn die Liste mit den Funktionen angezeigt wird.

    Screenshot: „Verbrauch“ mit ausgewählter Funktions-App und Funktion

    Für Funktionen, die über API-Definitionen (Swagger-Beschreibungen) verfügen und so eingerichtet sind, dass Ihre Logik-App diese Funktionen finden und darauf zugreifen kann, können Sie Swagger-Aktionen auswählen.

    Screenshot: „Verbrauch“ mit ausgewählter Funktions-App und ausgewählter Funktion unter „Swagger-Aktionen“

  4. Geben Sie im Feld Anforderungstext die Eingabe für Ihre Funktion ein, die als JSON-Objekt (JavaScript Object Notation) formatiert werden muss.

    Diese Eingabe ist das Kontextobjekt oder die Nachricht, das bzw. die von Ihrer Logik-App an Ihre Funktion gesendet wird. Wenn Sie in das Feld Anforderungstext klicken, wird die Liste mit dem dynamischen Inhalt angezeigt, und Sie können Token für Ausgaben aus vorherigen Schritten auswählen. In diesem Beispiel wird angegeben, dass die Kontextnutzlast die Eigenschaft content enthält, die den Wert des Tokens Von aus dem E-Mail-Trigger aufweist.

    Screenshot: „Verbrauch“ mit der Funktion mit Beispiel vom Typ „Anforderungstext“: Nutzlast des Kontextobjekts

    Hier wird das Kontextobjekt nicht in eine Zeichenfolge umgewandelt, sodass der Inhalt des Objekts der JSON-Nutzlast direkt hinzugefügt wird. Wenn das Kontextobjekt aber kein JSON-Token ist, das eine Zeichenfolge, ein JSON-Objekt oder ein JSON-Array übergibt, wird eine Fehlermeldung angezeigt. Wurde in diesem Beispiel stattdessen das Token Empfangszeit verwendet, können Sie das Kontextobjekt in eine Zeichenfolge umwandeln, indem Sie doppelte Anführungszeichen hinzufügen:

    Screenshot: „Verbrauch“ mit der Funktion mit Beispiel vom Typ „Anforderungstext“, das ein Objekt in eine Zeichenfolge umwandelt

  5. Um weitere Details wie die zu verwendende Methode, Anforderungskopfzeilen, Abfrageparameter oder Authentifizierung anzugeben, öffnen Sie die Liste Neuen Parameter hinzufügen, und wählen Sie die gewünschten Optionen aus. Bei der Authentifizierung unterscheiden sich die Optionen je nach der von Ihnen ausgewählten Funktion. Weitere Informationen finden Sie unter Aktivieren der Authentifizierung für Funktionen.

Aktivieren der Authentifizierung für Funktionsaufrufe (nur Verbrauchs-Workflows)

Ihr Verbrauchs-Workflow kann Funktionsaufrufe und den Zugriff auf Ressourcen authentifizieren, die durch Microsoft Entra ID geschützt sind, indem eine verwaltete Identität (früher als verwaltete Dienstidentität oder MSI [Managed Service Identity] bezeichnet) verwendet wird. Diese verwaltete Identität kann den Zugriff authentifizieren, ohne dass eine Anmeldung erfolgen und Anmeldeinformationen oder Geheimnisse bereitgestellt werden müssen. Azure verwaltet diese Identität für Sie und dient als Hilfe beim Schützen Ihrer Anmeldeinformationen, da Sie keine Geheimnisse angeben oder eine Rotation dafür durchführen müssen. Sie können die systemseitig zugewiesene Identität oder eine manuell erstellte, benutzerseitig zugewiesene Identität auf Ressourcenebene der Logik-App einrichten. Die Funktion, die von Ihrem Workflow aufgerufen wird, kann dieselbe Identität für die Authentifizierung verwenden.

Hinweis

Derzeit unterstützen nur Verbrauchs-Workflows die Authentifizierung für Azure-Funktionsaufrufe mithilfe einer verwalteten Identität und Microsoft Entra-Authentifizierung. Standard-Workflows enthalten diese Unterstützung derzeit nicht, wenn sie den Azure Functions-Connector verwenden.

Weitere Informationen finden Sie in der folgenden Dokumentation:

Um Ihre Funktions-App und Funktion so einzurichten, dass sie die verwaltete Identität Ihrer Verbrauchs-Logik-App verwenden können, führen Sie diese allgemeinen Schritte aus:

  1. Aktivieren und Einrichten der verwalteten Identität Ihrer Logik-App.

  2. Einrichten Ihrer Funktion für anonyme Authentifizierung.

  3. Suchen der erforderlichen Werte zum Einrichten der Microsoft Entra-Authentifizierung

  4. Erstellen einer App-Registrierung für Ihre Funktions-App.

Einrichten Ihrer Funktion für anonyme Authentifizierung (nur Verbrauchs-Workflows)

Damit Ihre Funktion die verwaltete Identität Ihrer Verbrauchs-Logik-App verwendet, müssen Sie die Authentifizierungsebene Ihrer Funktion auf „Anonym“ festlegen. Andernfalls löst Ihr Workflow einen BadRequest-Fehler aus.

  1. Suchen Sie im Azure-Portal nach Ihrer Funktions-App, und wählen Sie sie aus.

    In den folgenden Schritten wird eine Beispielfunktions-App namens FabrikamFunctionApp verwendet.

  2. Wählen Sie im Ressourcenmenü der Funktions-App unter Entwicklungstools die Option Erweiterte Tools>Los (Go) aus.

    Screenshot: Funktions-App-Menü mit ausgewählten Optionen „Erweiterte Tools“ und „Los“

  3. Nachdem die Seite Kudu-Dienste geöffnet wurde, wählen Sie auf der Titelleiste der Kudu-Website im Menü Debugging-Konsole die Option CMD aus.

    Screenshot: Seite der Kudu-Dienste mit geöffnetem Menü „Debugging-Konsole“ und ausgewählter Option „CMD“

  4. Wählen Sie auf der angezeigten nächsten Seite Website>wwwroot>Ihre Funktion aus der Ordnerliste aus.

    In den folgenden Schritten wird eine Beispielfunktion namens FabrikamAzureFunction verwendet.

    Screenshot: Ordnerliste mit Auswahl von „Website“ > „wwwroot“ > „Ihre Funktion“

  5. Öffnen Sie die Datei function.json zur Bearbeitung.

    Screenshot: Datei „function.json“ mit ausgewähltem Bearbeitungsbefehl

  6. Überprüfen Sie im bindings-Objekt (Bindungen), ob die authLevel-Eigenschaft vorhanden ist. Wenn die Eigenschaft vorhanden ist, legen Sie den Eigenschaftswert auf anonymous (anonym) fest. Fügen Sie die Eigenschaft andernfalls hinzu und legen Sie den Wert fest.

    Screenshot: bindings-Objekt mit auf „anonymous“ festgelegter Eigenschaft „authLevel“

  7. Wenn Sie fertig sind, speichern Sie Ihre Einstellungen. Sie können nun mit folgendem Artikel fortfahren:

Suchen der erforderlichen Werte zum Einrichten der Microsoft Entra-Authentifizierung (nur Verbrauchs-Workflows)

Bevor Sie Ihre Funktions-App für die Verwendung der Microsoft Entra-Authentifizierung einrichten können, müssen Sie die folgenden Werte suchen und speichern, indem Sie die Schritte in diesem Abschnitt ausführen.

  1. Ermitteln der Objekt- oder Client-ID für die verwaltete Identität Ihrer Logik-App
  2. Suchen der Mandanten-ID für Ihr Microsoft Entra ID

Ermitteln der Objekt- oder Client-ID für die verwaltete Identität Ihrer Logik-App

  1. Nachdem die verwaltete Identität für Ihre Verbrauchs-Logik-App aktiviert wurde, wählen Sie zunächst im Menü der Logik-App unter Einstellungen die Option Identität und dann entweder Systemseitig zugewiesen oder Benutzerseitig zugewiesen aus.

    • Vom System zugewiesen

      Kopieren Sie für die systemseitig zugewiesene Identität die Objekt-ID (Prinzipal) der Identität, z. B.:

      Screenshot: Bereich „Identität“ der verbrauchsbasierten Logik-App mit ausgewählter Registerkarte „Systemseitig zugewiesen“

    • Vom Benutzer zugewiesen

      1. Wählen Sie für die benutzerseitig zugewiesene Identität die Identität aus, um die Client-ID zu suchen, z. B.:

        Screenshot: Bereich „Identität“ der verbrauchsbasierten Logik-App mit ausgewählter Registerkarte „Benutzerseitig zugewiesen“

      2. Im Bereich Übersicht der verwalteten Identität kopieren Sie die Client-ID der Identität, z. B.:

        Screenshot des Bereichs „Übersicht“ der benutzerseitig zugewiesenen Identität mit ausgewählter Client-ID.

Suchen der Mandanten-ID für Ihr Microsoft Entra ID

Um Ihre Microsoft Entra-Mandanten-ID zu suchen, führen Sie entweder den PowerShell-Befehl Get-AzureAccount aus, oder Sie führen im Azure-Portal die folgenden Schritte aus:

  1. Öffnen Sie im Azure-Portal Ihren Microsoft Entra-Mandanten. In diesen Schritten wird Fabrikam als Beispielmandant verwendet.

  2. Wählen Sie im Menü des Microsoft Entra-Mandanten unter Verwalten die Option Eigenschaften aus.

  3. Kopieren und speichern Sie Ihre Mandanten-ID zur späteren Verwendung, z. B.:

    Screenshot Ihres Microsoft Entra ID-Bereichs „Eigenschaften“ mit ausgewählter Schaltfläche zum Kopieren der Mandanten-ID.

Erstellen einer App-Registrierung für Ihre Funktions-App (nur Verbrauchs-Workflows)

Nachdem Sie die Objekt- oder Client-ID für die verwaltete Identität Ihrer verbrauchsbasierten Logik-App und die Mandanten-ID für Ihre Microsoft Entra ID-Instanz gefunden haben, können Sie Ihre Funktions-App so einrichten, dass sie die Microsoft Entra-Authentifizierung verwendet, indem Sie eine App-Registrierung erstellen.

  1. Öffnen Sie im Azure-Portal Ihre Funktions-App.

  2. Wählen Sie im Menü der Funktions-App unter Einstellungen die Option Authentifizierung und dann Identitätsanbieter hinzufügen aus.

    Screenshot: Funktions-App-Menü mit Bereich „Authentifizierung“ und ausgewählter Option „Identitätsanbieter hinzufügen“

  3. Wählen Sie im Bereich Identitätsanbieter hinzufügen unter Grundlagen in der Liste Identitätsanbieter die Option Microsoft aus.

  4. Wählen Sie unter App-Registrierung für App-Registrierungstyp die Option Details einer vorhandenen App-Registrierung bereitstellen aus, und geben Sie die zuvor gespeicherten Werte ein.

    Eigenschaft Erforderlich Wert BESCHREIBUNG
    Anwendungs-ID (Client) Ja <object-or-client-ID> Der eindeutige Bezeichner, der für diese App-Registrierung verwendet werden soll. Verwenden Sie für dieses Szenario die Objekt-ID Ihrer verwalteten Identität (vom System zugewiesen) oder die Client-ID (vom Benutzer zugewiesen).
    Geheimer Clientschlüssel Optional, aber empfohlen <client-secret> Der Geheimniswert, den die App verwendet, um ihre Identität beim Anfordern eines Tokens nachzuweisen. Der geheime Clientschlüssel wird in der Konfiguration Ihrer App als slot-sticky (slotfixiert) Anwendungseinstellung namens MICROSOFT_PROVIDER_AUTHENTICATION_SECRET erstellt und gespeichert. Um das Geheimnis stattdessen in Azure Key Vault zu verwalten, können Sie diese Einstellung später so aktualisieren, dass Key Vault-Verweise verwendet werden.

    – Wenn Sie einen geheimen Clientschlüsselwert bereitstellen, verwenden Anmeldevorgänge den Hybridflow und geben sowohl Zugriffs- als auch Aktualisierungstoken zurück.

    – Wenn Sie keinen geheimen Clientschlüssel bereitstellen, verwenden Anmeldevorgänge den OAuth 2.0-Flow für implizite Genehmigung, der nur ein ID-Token zurückgibt.

    Diese Token werden vom Anbieter gesendet und im EasyAuth-Tokenspeicher gespeichert.
    Aussteller-URL Nein <authentication-endpoint-URL>/<Azure-AD-tenant-ID>/v2.0 Diese URL leitet Benutzerinnen und Benutzer an den richtigen Microsoft Entra-Mandanten um und lädt die entsprechenden Metadaten herunter, um die entsprechenden Tokensignaturschlüssel und den Anspruchswert des Tokenausstellers zu ermitteln. Für Apps, die Azure AD v1 verwenden, lassen Sie /v2.0 in der URL aus.

    Verwenden Sie für dieses Szenario die folgende URL: https://sts.windows.net/<Azure-AD-tenant-ID>
    Zulässige Tokenzielgruppen Nein <application-ID-URI> Der Anwendungs-ID-URI (Ressourcen-ID) für die Funktions-App. Bei einer Cloud- oder Server-App, für die Sie Authentifizierungstoken von einer Web-App zulassen möchten, fügen Sie den Anwendungs-ID-URI der Web-App hinzu. Die konfigurierte Client-ID wird immer implizit als zulässige Zielgruppe angesehen.

    In diesem Szenario ist der Wert https://management.azure.com. Später können Sie denselben URI in der Audience-Eigenschaft (Zielgruppe) verwenden, wenn Sie Ihre Funktionsaktion in Ihrem Workflow für die Verwendung der verwalteten Identität einrichten.

    Wichtig: Der Anwendungs-ID-URI (Ressourcen-ID) muss genau dem Wert entsprechen, den Microsoft Entra ID erwartet, einschließlich aller erforderlichen nachgestellten Schrägstriche.

    An dieser Stelle sieht Ihre Version in etwa wie in diesem Beispiel aus:

    Screenshot: App-Registrierung für Ihre Logik-App und Identitätsanbieter für Ihre Funktions-App

    Wenn Sie Ihre Funktions-App zum ersten Mal mit einem Identitätsanbieter einrichten, wird auch der Abschnitt mit den App Service-Authentifizierungseinstellungen angezeigt. Diese Optionen bestimmen, wie Ihre Funktions-App auf nicht authentifizierte Anforderungen reagiert. Die Standardauswahl leitet alle Anforderungen zur Anmeldung bei dem neuen Identitätsanbieter um. Sie können dieses Verhalten jetzt anpassen oder diese Einstellungen später über die Hauptseite der Authentifizierung anpassen, indem Sie neben den Authentifizierungs-Einstellungendie Option Bearbeiten auswählen. Weitere Informationen zu diesen Optionen finden Sie unter Authentifizierungsflow – Authentifizierung und Autorisierung in Azure App Service und Azure Functions.

    Andernfalls können Sie mit dem nächsten Schritt fortfahren.

  5. Um die Erstellung der App-Registrierung fertig zu stellen, klicken Sie auf Hinzufügen.

    Wenn Sie fertig sind, werden auf der Seite Authentifizierung nun der Identitätsanbieter und die App-ID (Client-ID) für die App-Registrierung aufgeführt. Ihre Funktions-App kann diese App-Registrierung jetzt für die Authentifizierung verwenden.

  6. Kopieren Sie die App-ID (Client-ID) für Ihre Funktion, die später in Ihrem Workflow in der Audience-Eigenschaft (Zielgruppe) verwendet werden soll.

  7. Kehren Sie zum Designer zurück, und führen Sie die Schritte zum Authentifizieren des Zugriffs mit der verwalteten Identität mithilfe der integrierten Azure Functions-Aktion aus.

Nächste Schritte