I den här kursen lär du dig hur du skapar ett ASP.NET Web API, placerar den i Azure Web Apps, aktiverar Azure Active Directory-autentisering och sedan registrerar ditt ASP.NET Web API i PowerApps.

Förutsättningar

Skapa ett ASP.NET Web API och distribuera det till Azure

  1. I Visual Studio klickar du på filen > Nytt projekt att skapa en ny C# ASP.NET-webbapp.

    Ny webbapp

  2. Välj Web API-mallen. Avmarkera inte kryssrutan Värd i molnet. Klicka på Ändra autentisering.

    Ny mall för webb-projekt

  3. Välj Ingen autentisering och klicka sedan på OK.

    Ingen autentisering

  4. Klicka på OK i dialogrutan Nytt ASP-NET-projekt. Dialogrutan konfigurera Microsoft Azure Web App visas.

    Konfigurera Microsoft Azure Web App ]

    Välj ditt Azure-konto, ange ett Web App-namn (eller lämna standardvärdet) och välj din Azure-prenumeration. Välj eller skapa en App Service-plan (en samling webbappar som ingår i din prenumeration). Välj eller skapa en resursgrupp (en gruppering av Azure-resurser i din prenumeration). Välj den region där webbappen ska distribueras. Välj eller skapa en Azure Database-server om det behövs för webb-API. Klicka slutligen på OK.

  5. Skapa din webb-API.

    Note:

    Kom igång med ASP.NET Web API med våra officiella självstudier.

  6. För att ansluta våra Web API till PowerApps, behöver vi en Swagger-fil som beskriver driften. Du kan skriva en egen Swagger med hjälp av onlineredigeraren, men i den här kursen ska du använda ett verktyg med öppen källkod som heter Swashbuckle. Installera paketet Swashbuckle Nuget i Visual Studio-projektet genom att klicka på Verktyg > NuGet Package Manager > Package Manager-konsolen. Skriv sedan kommandot i Package Manager-konsolenInstall-Package Swashbuckle.

    Installationspaket Swashbuckle

    Tip:

    När du kör programmet Web API när du har installerat Swashbuckle skapas nu en Swagger-fil på webbadressen http://<your root URL>/swagger/docs/v1. Ett genererat användargränssnitt finns även på http://<your root URL>/swagger.

  7. När din Web API är klar kan du publicera den på Azure. Om du vill publicera från Visual Studio, högerklickar du på webbprojekt i Solution Explorer. Klicka sedan på Publicera... och följ sedan instruktionerna i dialogrutan Publicera.

  8. Hämta swagger JSON genom att navigera till https://<azure-webapp-url>/swagger/docs/v1. Spara innehållet som en JSON-fil. Beroende på din webbläsare kan du behöva kopiera och klistra in den i en tom textfil.

    Important:

    Ett Swagger-dokument med duplicerade åtgärds-ID är ogiltigt. Om du använder exempelmallen för C# upprepas åtgärds ID Values_Get två gånger. Du kan åtgärda detta genom att ändra en instans till Value_Get och publicera om.

    Du kan också hämta en exempel-Swagger från den här handboken. Ta bort kommentarer (från och med //) innan du använder den.

Ställ in Azure Active Directory-autentisering

Du kommer nu att skapa vissa program med Azure Active Directory (AAD) i Azure. Ett exempel på hur du gör detta finns i handboken för Azure Resource Manager. Du behöver två AAD-program för den här handboken.

Important:

Båda apparna måste vara i samma katalog.

Första AAD-programmet: skydda Web API

Det första AAD-programmet används för att skydda Web API. Du kan kalla det webAPI. Följ stegen i ovanstående länk (bara avsnittet *Aktivera autentisering i Azure Active Directory) med följande värden:

  • Inloggnings-URL:https://login.windows.net
  • Svars-URL:https://<your-root-url>/.auth/login/aad/callback
  • Det finns inget behov av en klientnyckel.
  • Det finns inget behov av att delegera behörigheter.
  • Viktigt! Observera program-ID. Du kommer att behöva det senare.

Det andra AAD-programmet: Skydda anpassade API och delegerad åtkomst

Det andra AAD-programmet används för att skydda anpassad API-registrering och få delegerad åtkomst till webb-API som skyddas av det första programmet. Namnge denna webAPI-customAPI .

  • Inloggnings-URL: https://login.windows.net
  • Svars-URL: https://msmanaged-na.consent.azure-apim.net/redirect
  • Lägga till behörigheter för begränsad åtkomst till Web API.
  • Du behöver programmet-ID för det här programmet senare så det är klokt att anteckna det.
  • Skapa en nyckel för klienten och förvara den på en säker plats. Vi behöver den här nyckeln senare.

Lägga till autentisering i Azure Web App

  1. Logga in på Azure-portalen och hitta ditt webbprogram som du distribuerade i det första avsnittet.
  2. Klicka på Inställningar och välj sedan Autentisering/auktorisering.
  3. Aktivera App Service-autentisering och välj sedan Azure Active Directory. Välj Express på nästa blad.
  4. Klicka på Välj befintlig AD App och välj det AAD-program för webAPI som du skapade tidigare.

Du bör nu kunna använda AAD för att autentisera din webbapp.

Lägga till anpassade API i PowerApps

  1. Ändra din Swagger att lägga till objektet securityDefintions och AAD-autentisering som används för webbprogrammet. Delen av din Swagger med egenskapen värd bör se ut så här:
// File header should be above here...

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

// The rest of the Swagger follows...
  1. Bläddra till PowerApps och Lägg till en anpassad API som beskrivs i Vad är anpassade API:er.

  2. När du har överfört din Swagger upptäcker guiden automatiskt att du använder AAD-autentisering för Web API.

  3. Konfigurera AAD-autentisering för din anpassade API.

    • Client ID: Klient-ID för webAPI-CustomAPI
    • Secret: Klient-nyckel för webAPI-CustomAPI
    • Inloggnings-URL: https://login.windows.net
    • ResourceUri: Klient-ID för webAPI
  4. Klicka på Skapa och skapa en anslutning till din anpassade API.

Nästa steg

Gå igenom handboken för Azure Resource Manager om anpassade API.

Mer detaljerad information om hur du skapar en app finns Skapa en app från data.

Mer detaljerad information om hur du använder ett flöde i en app finns i Starta ett flöde i en app.

Du kan ställa frågor eller kommentarer om anpassade API:er om du går med i vår community.