Dela via


Scenario: Intern app som anropar webb-API

Lär dig hur du skapar en inbyggd app som loggar in användare som autentiseras av AD FS 2019 och hämtar token med hjälp av MSAL-biblioteket för att anropa webb-API:er.

Innan du läser den här artikeln bör du känna till AD FS-begreppen och auktoriseringskodens beviljandeflöde

Översikt

Översikt

I det här flödet lägger du till autentisering i din interna app (offentlig klient), som därför kan logga in användare och anropa ett webb-API. För att anropa ett webb-API från en inbyggd app som loggar in användare kan du använda MSAL:s metod AcquireTokenInteractive för att hämta token. För att aktivera den här interaktionen använder MSAL en webbläsare.

För att bättre förstå hur du konfigurerar en intern app i AD FS för att hämta åtkomsttoken interaktivt ska vi använda ett exempel som är tillgängligt här och gå igenom stegen för appregistrering och kodkonfiguration.

Förutsättningar

  • GitHub-klientverktyg
  • AD FS 2019 eller senare konfigurerat och körs
  • Visual Studio 2013 eller senare

Appregistrering i AD FS

Det här avsnittet visar hur du registrerar den inbyggda appen som en offentlig klient och webb-API som en förlitande part (RP) i AD FS

  1. Högerklicka på Programgrupper i AD FS-hantering och välj Lägg till programgrupp.

  2. I guiden Programgrupp anger du NativeAppToWebApi för namn och under Client-Server program väljer du det interna programmet som har åtkomst till en webb-API-mall. Klicka på Nästa.

    Skärmbild av välkomstsidan i guiden Lägg till programgrupp som visar det inbyggda programmet med åtkomst till en webb-API-mall markerad.

  3. Kopiera värdet för klientidentifierare . Det används senare som värde för ClientId i programmets App.config-fil . Ange följande för omdirigerings-URI:https://ToDoListClient. Klicka på Lägg till. Klicka på Nästa.

    Skärmbild av den inhemska applikationssidan i guiden Lägg till programgrupp som visar omdirigerings-URI.

  4. På skärmen Konfigurera webb-API anger du identifieraren:https://localhost:44321/. Klicka på Lägg till. Klicka på Nästa. Det här värdet används senare i programmets App.config - och Web.config-filer .

    Skärmbild av sidan Konfigurera webb-API i guiden Lägg till programgrupp som visar rätt identifierare.

  5. På skärmen Tillämpa åtkomstkontrollprincip väljer du Tillåt alla och klickar på Nästa.

    Skärmbild av sidan Välj åtkomstkontrollprincip i guiden Lägg till programgrupp som visar alternativet Tillåt alla markerat.

  6. På skärmen Konfigurera programbehörigheter kontrollerar du att openid är markerat och klickar på Nästa.

    Skärmbild av sidan Konfigurera programbehörigheter i guiden Lägg till programgrupp som visar öppet ID är valt.

  7. På skärmen Sammanfattning klickar du på Nästa.

  8. På skärmen Slutför klickar du på Stäng.

  9. I AD FS Management klickar du på Programgrupper och väljer NativeAppToWebApi-programgrupp . Högerklicka och välj Egenskaper.

    Skärmbild av dialogrutan A D F S Management som visar gruppen NativeAppToWebApi markerad och alternativet Egenskaper i listrutan.

  10. På skärmen NativeAppToWebApi-egenskaper väljer du NativeAppToWebApi – Webb-API under Webb-API och klickar på Redigera...

    Skärmbild av dialogrutan NativeAppToWebApi-egenskaper som visar nativeAppToWebApi – Web A P I-programmet markerat.

  11. På skärmen NativeAppToWebApi – Egenskaper för webb-API väljer du fliken Regler för utfärdandetransformering och klickar på Lägg till regel...

    Skärmbild av dialogrutan NativeAppToWebApi - Egenskaper för Web A P I som visar fliken Regler för utfärdandetransformering.

  12. I guiden Lägg till transformera anspråksregel väljer du Transformera ett inkommande anspråk från listrutan Anspråksregel: och klickar på Nästa.

    Skärmbild av sidan Välj regelmall i guiden Lägg till regel för transformeringsanspråk som visar alternativet Transformera ett inkommande anspråk valt.

  13. Ange NameID i fältet Anspråksregelnamn: . Välj Namn för Inkommande anspråkstyp:, Namn-ID för Utgående anspråkstyp: och Vanligt namn för utgående namn-ID-format:. klicka på Slutför.

    Skärmbild av sidan Konfigurera regel i guiden Lägg till regel för transformeringsanspråk som visar konfigurationen som beskrivs ovan.

  14. Klicka på OK på skärmen NativeAppToWebApi – Egenskaper för webb-API och sedan på skärmen Egenskaper för NativeAppToWebApi.

Kodkonfiguration

Det här avsnittet visar hur du konfigurerar en intern app för inloggningsanvändare och hämtar token för att anropa webb-API:et

  1. Ladda ned exemplet härifrån

  2. Öppna exemplet med Visual Studio

  3. Öppna filen App.config. Ändra följande:

    • ida:Authority – ange https://[your AD FS hostname]/adfs

    • ida:ClientId – ange värdet för klientidentifierare från #3 i avsnittet Appregistrering i AD FS ovan.

    • ida:RedirectUri – ange omdirigerings-URI-värdet från #3 i avsnittet Appregistrering i AD FS ovan.

    • todo:TodoListResourceId – ange identifierarvärdet från #4 i avsnittet Appregistrering i AD FS ovan

    • ida: todo:TodoListBaseAddress – ange identifierarvärdet från #4 i avsnittet Appregistrering i AD FS ovan.

      Skärmbild av appkonfigurationsfilen som visar de ändrade värdena.

  4. Öppna filen Web.config. Ändra följande:

    • ida:Audience – ange identifierarvärdet från #4 i avsnittet Appregistrering i AD FS ovan

    • ida: AdfsMetadataEndpoint – ange https://[your AD FS hostname]/federationmetadata/2007-06/federationmetadata.xml

      Skärmbild av webbkonfigurationsfilen som visar de ändrade värdena.

Testa exemplet

Det här avsnittet visar hur du testar exemplet som konfigurerats ovan.

  1. När kodändringarna har gjorts återskapar du lösningen

  2. Högerklicka på lösningen i Visual Studio och välj Ange startprojekt...

    Skärmbild av listan som visas när du högerklickar på lösningen med alternativet Konfigurera startprojekt markerat.

  3. På sidorna Egenskaper kontrollerar du att Åtgärden är inställd på Start för vart och ett av projekten

    Skärmbild av dialogrutan Lösningsegenskapssidor som visar alternativet Flera startprojekt valt och alla projektåtgärder inställda på Start.

  4. Klicka på den gröna pilen längst upp i Visual Studio.

    Skärmbild av Visual Studio-användargränssnittet med startalternativet framhävt.

  5. På huvudskärmen för den inbyggda appen klickar du på Logga in.

    Skärmbild av dialogrutan Att göra-lista klient.

Om du inte ser den inbyggda appskärmen söker du efter och tar bort *msalcache.bin filer från mappen där projektlagringsplatsen sparas i systemet.

  1. Du omdirigeras till AD FS-inloggningssidan igen. Gå vidare och logga in.

    Skärmbild av inloggningssidan.

  2. När du har loggat in anger du texten Skapa inbyggd app till webb-API i objektet Skapa en att göra. Klicka på Lägg till objekt. Detta anropar Att göra-listtjänsten (webb-API) och lägger till objektet i cacheminnet.

    Skärmbild av dialogrutan för Att göra-lista-klienten med det nya objektet som visas i avsnittet Att göra-objekt.

Nästa steg

AD FS OpenID Connect/OAuth-flöden och programscenarier