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
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
Högerklicka på Programgrupper i AD FS-hantering och välj Lägg till programgrupp.
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.
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.
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 .
På skärmen Tillämpa åtkomstkontrollprincip väljer du Tillåt alla och klickar på Nästa.
På skärmen Konfigurera programbehörigheter kontrollerar du att openid är markerat och klickar på Nästa.
På skärmen Sammanfattning klickar du på Nästa.
På skärmen Slutför klickar du på Stäng.
I AD FS Management klickar du på Programgrupper och väljer NativeAppToWebApi-programgrupp . Högerklicka och välj Egenskaper.
På skärmen NativeAppToWebApi-egenskaper väljer du NativeAppToWebApi – Webb-API under Webb-API och klickar på Redigera...
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...
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.
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.
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
Ladda ned exemplet härifrån
Öppna exemplet med Visual Studio
Öppna filen App.config. Ändra följande:
ida:Authority – ange h
ttps://[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.
Ö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
Testa exemplet
Det här avsnittet visar hur du testar exemplet som konfigurerats ovan.
När kodändringarna har gjorts återskapar du lösningen
Högerklicka på lösningen i Visual Studio och välj Ange startprojekt...
På sidorna Egenskaper kontrollerar du att Åtgärden är inställd på Start för vart och ett av projekten
Klicka på den gröna pilen längst upp i Visual Studio.
På huvudskärmen för den inbyggda appen klickar du på Logga in.
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.
Du omdirigeras till AD FS-inloggningssidan igen. Gå vidare och logga in.
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.