In diesem Tutorial erfahren Sie, wie Sie eine ASP.NET-Web-API einrichten und in Azure-Web-Apps hosten, die Azure Active Directory-Authentifizierung aktivieren und die ASP.NET-Web-API dann bei Microsoft Flow registrieren. Nachdem Sie die API registriert haben, können Sie eine Verbindung damit herstellen und sie über den Flow aufrufen.

Voraussetzungen

Erstellen einer ASP.NET-Web-API und Bereitstellen der API in Azure

  1. Klicken Sie in Visual Studio auf Datei > Neues Projekt, um eine neue C#-ASP.NET-Webanwendung zu erstellen.

    Neue Web-App

  2. Wählen Sie die Vorlage Web-API aus. Lassen Sie In der Cloud hosten aktiviert. Klicken Sie auf Authentifizierung ändern.

    Neue Web-Projektvorlage

  3. Wählen Sie Keine Authentifizierung aus, und klicken Sie dann auf OK.

    Keine Authentifizierung

  4. Klicken Sie im Dialogfeld Neues ASP.NET-Projekt auf OK. Das Dialogfeld „Microsoft Azure-Web-App konfigurieren“ wird angezeigt.

    Microsoft Azure-Web-App konfigurieren ]

    Wählen Sie Ihr Azure-Konto aus, geben Sie einen Namen unter Web-App-Name ein (oder übernehmen Sie die Standardeinstellung), und wählen Sie Ihr Azure-Abonnement aus. Wählen Sie einen App Service-Plan aus, oder erstellen Sie einen Plan (dies ist eine Sammlung von Web-Apps in Ihrem Abonnement). Wählen Sie eine Ressourcengruppe aus, oder erstellen Sie sie (dies ist eine Gruppierung von Azure-Ressourcen in Ihrem Abonnement). Wählen Sie die Region aus, in der die Web-App bereitgestellt werden soll. Wenn dies für Ihre Web-API erforderlich ist, wählen Sie einen Azure-Datenbankserver aus, oder erstellen Sie ihn. Klicken Sie abschließend auf OK.

  5. Erstellen Sie Ihre Web-API.

    Hinweis:

    Wenn Sie den Code für die Web-API noch nicht verfasst haben, können Sie das Tutorial Erste Schritte mit ASP.NET Web-API 2 (C#) zur Unterstützung heranziehen.

  6. Um die Web-API mit PowerApps zu verbinden, benötigen wir eine Swagger-Datei, in der die Vorgänge beschrieben werden. Sie könnten eine eigene OpenAPI-Datei im Online-Editor schreiben, in diesem Tutorial arbeiten Sie allerdings mit dem Open-Source-Tool Swashbuckle. Installieren Sie das Swashbuckle-Nuget-Paket in Ihrem Visual Studio-Projekt, indem Sie auf Tools > NuGet-Paket-Manager > Paket-Manager-Konsole klicken und dann in der Paket-Manager-Konsole den Befehl Install-Package Swashbuckle eingeben.

    Install-Package Swashbuckle

    Tipp:

    Wenn Sie Ihre Web-API-Anwendung nach der Installation von Swashbuckle ausführen, wird eine OpenAPI-Datei unter der URL http://<your root URL>/swagger/docs/v1 generiert. Außerdem ist eine generierte Benutzeroberfläche unter http://<your root URL>/swagger verfügbar.

  7. Wenn Ihre Web-API bereit ist, veröffentlichen Sie sie in Azure. Klicken Sie zum Veröffentlichen aus Visual Studio mit der rechten Maustaste auf das Webprojekt im Projektmappen-Explorer, klicken Sie auf Veröffentlichen..., und befolgen Sie dann die Anweisungen im Dialogfeld „Veröffentlichen“.

  8. Rufen Sie die OpenAPI-JSON-Datei ab, indem Sie zu https://<azure-webapp-url>/swagger/docs/v1 navigieren. Speichern Sie den Inhalt als JSON-Datei. Abhängig von Ihrem Browser müssen Sie den Text kopieren und in eine leere Textdatei einfügen.

    Wichtig:

    Ein OpenAPI-Dokument mit doppelten Vorgangs-IDs ist ungültig. Wenn Sie die C#-Beispielvorlage verwenden, wird die Vorgangs-ID Values_Get zweimal wiederholt. Sie können dies beheben, indem Sie eine Instanz in Value_Get ändern und die Veröffentlichung wiederholen.

    Sie können auch eine OpenAPI-Beispieldatei aus diesem Tutorial herunterladen. Achten Sie darauf, dass Sie vor der Verwendung die Kommentare entfernen (beginnend mit //).

Einrichten der Azure Active Directory-Authentifizierung

Sie erstellen nun zwei AAD-Anwendungen (Azure Active Directory) in Azure. Ein Beispiel hierzu finden Sie im Tutorial zu Azure Resource Manager.

Wichtig:

Beide Apps müssen sich im gleichen Verzeichnis befinden.

Erste AAD-Anwendung: Sichern der Web-API

Mit der ersten AAD-Anwendung wird die Web-API gesichert. Geben Sie als Namen webAPI ein. Führen Sie die Schritte im oben genannten Tutorial aus (nur den Abschnitt „Aktivieren der Authentifizierung in Azure Active Directory“). Verwenden Sie dabei die folgenden Werte:

  • Anmelde-URL: https://login.windows.net
  • Antwort-URL: https://<your-root-url>/.auth/login/aad/callback
  • Es wird kein Clientschlüssel benötigt.
  • Es ist nicht erforderlich, Berechtigungen zu delegieren.
  • Wichtig! Notieren Sie die Anwendungs-ID. Sie werden sie später benötigen.

Zweite AAD-Anwendung: Sichern des benutzerdefinierten Connectors und des delegierten Zugriffs

Die zweite AAD-Anwendung dient zum Sichern der benutzerdefinierten Connector-Registrierung und zum Abrufen von delegiertem Zugriff auf die Web-API, die durch die erste Anwendung geschützt wird. Geben Sie als Namen hierfür webAPI-customAPI an.

  • Anmelde-URL: https://login.windows.net
  • Antwort-URL: https://msmanaged-na.consent.azure-apim.net/redirect
  • Fügen Sie Berechtigungen für den delegierten Zugriff auf die Web-API hinzu.
  • Sie benötigen später auch die Anwendungs-ID dieser Anwendung, notieren Sie sie daher.
  • Generieren Sie einen Clientschlüssel, und speichern Sie ihn an einem sicheren Ort. Dieser Schlüssel wird später benötigt.

Hinzufügen der Authentifizierung zur Azure-Web-App

  1. Melden Sie sich beim Azure-Portal an, und suchen Sie die Web-App, die Sie im ersten Abschnitt bereitgestellt haben.
  2. Klicken Sie auf Einstellungen, und wählen Sie dann Authentifizierung/Autorisierung aus.
  3. Aktivieren Sie App Service-Authentifizierung, und wählen Sie dann Azure Active Directory aus. Wählen Sie auf dem nächsten Blatt Express aus.
  4. Klicken Sie auf Vorhandene AD-App auswählen, und wählen Sie die AAD-Anwendung webAPI aus, die Sie zuvor erstellt haben.

Sie sollten jetzt AAD zum Authentifizieren Ihrer Webanwendung verwenden können.

Hinzufügen des benutzerdefinierten Connectors zu Microsoft Flow

  1. Ändern Sie die OpenAPI-Datei, um das securityDefintions-Objekt und die für die Web-App verwendete AAD-Authentifizierung hinzuzufügen. Der Teil Ihrer OpenAPI-Datei mit der host-Eigenschaft sollte wie folgt aussehen:
// File header should be above here...

"host": "<your-root-url>",
"schemes": [
    "https"         //Make sure this is https!
],
"securityDefinitions": {
    "AAD": {
        "type": "oauth2",
        "flow": "accessCode",
        "authorizationUrl": "https://login.windows.net/common/oauth2/authorize",
        "tokenUrl" : "https://login.windows.net/common/oauth2/token",
        "scopes": {}
    }
},

// The rest of the OpenAPI follows...
  1. Navigieren Sie zu Microsoft Flow, und fügen Sie einen benutzerdefinierten Connector hinzu, wie unter Registrieren und Verwenden von benutzerdefinierten Connectors in Microsoft Flow beschrieben.

  2. Nachdem Sie die OpenAPI-Datei hochgeladen haben, erkennt der Assistent automatisch, dass Sie die AAD-Authentifizierung für Ihre Web-API verwenden.

  3. Konfigurieren Sie die AAD-Authentifizierung für den benutzerdefinierten Connector.

    • Client-ID: Client-ID von „webAPI-CustomAPI“
    • Geheimer Schlüssel: Clientschlüssel von „webAPI-CustomAPI“
    • Anmelde-URL: https://login.windows.net
    • ResourceUri: Client-ID von „webAPI“
  4. Klicken Sie auf Erstellen, um eine Verbindung mit dem benutzerdefinierten Connector herzustellen.

Weitere Schritte

Lesen Sie den Tutorialartikel zu benutzerdefinierten Connectors in Azure Resource Manager.