Quickstart: Een ASP.NET web-API aanroepen die wordt beveiligd door het Microsoft Identity Platform
In de volgende quickstart wordt een codevoorbeeld gebruikt dat laat zien hoe u een ASP.NET web-API beveiligt door de toegang tot de bijbehorende resources te beperken tot alleen geautoriseerde accounts. Het voorbeeld ondersteunt autorisatie van persoonlijke Microsoft-accounts en -accounts in elke Microsoft Entra-organisatie.
In het artikel wordt ook een WPF-app (Windows Presentation Foundation) gebruikt om te laten zien hoe u een toegangstoken aanvraagt voor toegang tot een web-API.
Vereisten
- Een Azure-account met een actief abonnement. Gratis een account maken
- Visual Studio 2022. U kunt Visual Studio gratis downloaden.
Het voorbeeld klonen of downloaden
Het codevoorbeeld kan op twee manieren worden verkregen:
Kloon het vanaf uw shell of opdrachtregel:
git clone https://github.com/AzureADQuickStarts/AppModelv2-NativeClient-DotNet.git
Tip
Om fouten te voorkomen die worden veroorzaakt door padlengtebeperkingen in Windows, raden we u aan het archief te extraheren of de opslagplaats te klonen in een map dicht bij de hoofdmap van uw station.
De web-API registreren (TodoListService)
Tip
Stappen in dit artikel kunnen enigszins variëren op basis van de portal waaruit u begint.
Registreer uw web-API in App-registraties in Azure Portal.
Meld u aan bij het Microsoft Entra-beheercentrum als ten minste een cloudtoepassing Beheer istrator.
Als u toegang hebt tot meerdere tenants, gebruikt u het pictogram Instellingen in het bovenste menu om over te schakelen naar de tenant waarin u de toepassing wilt registreren in het menu Mappen en abonnementen.
Blader naar Identiteitstoepassingen>> App-registraties en selecteer Nieuwe registratie.
Voer een Naam in voor de toepassing, bijvoorbeeld
AppModelv2-NativeClient-DotNet-TodoListService
. Gebruikers van uw app kunnen de naam zien. U kunt deze later wijzigen.Bij Ondersteunde accounttypen selecteert u Accounts in een organisatieadreslijst.
Selecteer Registreren om de toepassing te maken.
Zoek de waarde Toepassings-id (client) op de app-pagina Overzicht en noteer deze voor gebruik later. U hebt het nodig om het Visual Studio-configuratiebestand voor dit project te configureren (in
ClientId
het bestand TodoListService\appsettings.json ).Selecteer onder BeherenEen API beschikbaar maken>Een bereik toevoegen. Accepteer de voorgestelde URI voor de toepassings-id (
api://{clientId}
) door Opslaan en doorgaan te selecteren en de volgende informatie op te geven:- Voer bij Bereiknaam de naam in
access_as_user
. - Zorg ervoor dat de optie Beheerders en gebruikers is geselecteerd voor Wie kan toestemming verlenen?
- Voer in het vak Beheer weergavenaam van toestemming de naam in
Access TodoListService as a user
. - Typ in
Accesses the TodoListService web API as a user
het vak Beheer beschrijving van toestemming . - Voer in het vak Weergavenaam van gebruikerstoestemming de tekst in
Access TodoListService as a user
. - Voer in het vak Beschrijving van gebruikerstoestemming de tekst in
Accesses the TodoListService web API as a user
. - Laat Status op Ingeschakeld staan.
- Voer bij Bereiknaam de naam in
Selecteer Bereik toevoegen.
Het serviceproject configureren
Configureer het serviceproject zodat het overeenkomt met de geregistreerde web-API.
Open de oplossing in Visual Studio en open het appsettings.json bestand onder de hoofdmap van het TodoListService-project.
Vervang de waarde van de
Enter_the_Application_Id_here
waarde door de client-id (toepassings-id) van de toepassing die u hebt geregistreerd in de App-registraties-portal, zowel in deClientID
als deAudience
eigenschappen.
Het nieuwe bereik toevoegen aan het bestand app.config
Voer de volgende stappen uit om het nieuwe bereik toe te voegen aan het bestand TodoListClient app.config :
Open het bestand app.config in de hoofdmap van het TodoListClient-project.
Plak de toepassings-id uit de toepassing die u hebt geregistreerd voor uw TodoListService-project in de
TodoListServiceScope
parameter, waarbij u de{Enter the Application ID of your TodoListService from the app registration portal}
tekenreeks vervangt.
Notitie
Zorg dat de toepassings-id de volgende notatie heeft: api://{TodoListService-Application-ID}/access_as_user
(waarbij {TodoListService-Application-ID}
de GUID is die de toepassings-id voor uw TodoListService-app vertegenwoordigt).
De web-app registreren (TodoListClient)
Registreer uw TodoListClient-app in App-registraties in Azure Portal en configureer vervolgens de code in het TodoListClient-project. Als de client en server worden beschouwd als dezelfde toepassing, kunt u dezelfde toepassing die is geregistreerd in stap 2 opnieuw gebruiken. Gebruik dezelfde toepassing als u wilt dat gebruikers zich aanmelden met een persoonlijk Microsoft-account.
De app registreren
Volg deze stappen om de TodoListClient-app te registreren:
Meld u aan bij het Microsoft Entra-beheercentrum als ten minste een cloudtoepassing Beheer istrator.
Blader naar Identiteitstoepassingen>> App-registraties en selecteer Nieuwe registratie.
Selecteer Nieuwe registratie.
Wanneer de pagina Een toepassing registreren wordt geopend, voert u de registratiegegevens van de toepassing in:
- Voer in de sectie Naam een beschrijvende toepassingsnaam die gebruikers van de app te zien krijgen. Bijvoorbeeld: NativeClient-DotNet-TodoListClient.
- Bij Ondersteunde accounttypen selecteert u Accounts in een organisatieadreslijst.
- Selecteer Registreren om de toepassing te maken.
Notitie
In het bestand app.config van het TodoListClient-project is de standaardwaarde voor
ida:Tenant
ingesteld opcommon
. Mogelijke waarden zijn:common
: U kunt zich aanmelden met een werk- of schoolaccount of een persoonlijk Microsoft-account (omdat u accounts in een organisatiemap in een vorige stap hebt geselecteerd).organizations
: U kunt zich aanmelden met een werk- of schoolaccount.consumers
: U kunt zich alleen aanmelden met een persoonlijk Microsoft-account.
Selecteer verificatie op de pagina Overzicht van de app en voer vervolgens de volgende stappen uit om een platform toe te voegen:
- Selecteer onder Platformconfiguraties de knop Een platform toevoegen.
- Bij Mobiele toepassingen en bureaubladtoepassingen selecteert u Mobiele toepassingen en bureaubladtoepassingen.
- Schakel bij Omleidings-URI's het selectievakje
https://login.microsoftonline.com/common/oauth2/nativeclient
in. - Selecteer Configureren.
Selecteer API-machtigingen en voer vervolgens de volgende stappen uit om machtigingen toe te voegen:
- Selecteer de knop Een machtiging toevoegen.
- Selecteer het tabblad Mijn API's.
- Selecteer in de lijst met API's AppModelv2-NativeClient-DotNet-TodoListService-API of de naam die u hebt ingevoerd voor de web-API.
- Schakel de machtiging access_as_user in als dit selectievakje nog niet is ingeschakeld. Gebruik zo nodig het zoekvak.
- Selecteer de knop Toestemmingen toevoegen.
Uw project configureren
Configureer uw TodoListClient-project door de toepassings-id toe te voegen aan het bestand app.config .
In de portal App-registraties kopieert u vanaf de pagina Overzicht de waarde van de Toepassings-id (client).
Open het bestand app.config vanuit de hoofdmap van het TodoListClient-project en plak de waarde van de Toepassings-id in de
ida:ClientId
-parameter.
Uw projecten uitvoeren
Start beide projecten. Voor Visual Studio-gebruikers;
Klik met de rechtermuisknop op de Visual Studio-oplossing en selecteer Eigenschappen
Selecteer In de algemene eigenschappen het opstartproject en vervolgens meerdere opstartprojecten.
Voor beide projecten kiest u Starten als de actie
Zorg ervoor dat de TodoListService-service eerst wordt gestart door deze met de pijl-omhoog naar de eerste positie in de lijst te verplaatsen.
Meld u aan om uw TodoListClient-project uit te voeren.
Druk op F5 om de projecten te starten. De servicepagina wordt geopend, evenals de bureaubladtoepassing.
Selecteer in de TodoListClient rechtsboven aanmelden en meld u aan met dezelfde referenties die u hebt gebruikt om uw toepassing te registreren of meld u aan als een gebruiker in dezelfde map.
Als u zich voor de eerste keer aanmeldt, wordt u mogelijk gevraagd om toestemming te geven voor de TodoListService-web-API.
De aanmelding vraagt ook het toegangstoken voor het bereik access_as_user om u toegang te geven tot de TodoListService-web-API en om de takenlijst te bewerken.
Uw clienttoepassing vooraf autoriseren
U kunt gebruikers uit andere mappen toegang geven tot uw web-API door de clienttoepassing vooraf te autoriseren voor toegang tot uw web-API. U doet dat door de toepassings-id van de client-app toe te voegen aan de lijst met vooraf geautoriseerde toepassingen voor uw web-API. Door een vooraf geautoriseerde client toe te voegen, zorgt u ervoor dat gebruikers toegang hebben tot uw web-API zonder dat u toestemming hoeft te geven.
- Open de eigenschappen van uw TodoListService-app in de portal App-registraties.
- In de sectie Een API beschikbaar maken, onder Geautoriseerde clienttoepassingen, selecteert u Een clienttoepassing toevoegen.
- Plak in het vak Client-id de toepassings-id van de TodoListClient-app.
- Selecteer in de sectie Gemachtigde bereiken het bereik voor de web-API
api://<Application ID>/access_as_user
. - Selecteer Toepassing toevoegen.
Uw project uitvoeren
- Druk op F5 om uw project uit te voeren. Uw TodoListClient-app wordt geopend.
- Selecteer in de rechterbovenhoek Aanmelden en meld u vervolgens aan met een persoonlijk Microsoft-account, zoals een live.com - of hotmail.com-account of een werk- of schoolaccount.
Optioneel: Aanmeldingstoegang beperken tot bepaalde gebruikers
Standaard kunnen persoonlijke accounts, zoals outlook.com - of live.com-accounts , of werk- of schoolaccounts van organisaties die zijn geïntegreerd met Microsoft Entra-id tokens aanvragen en toegang krijgen tot uw web-API.
Als u wilt opgeven wie zich kan aanmelden bij uw toepassing, wijzigt u de TenantId
eigenschap in het appsettings.json-bestand .
Help en ondersteuning
Als u hulp nodig hebt, een probleem wilt melden of meer informatie wilt over uw ondersteuningsopties, raadpleegt u Hulp en ondersteuning voor ontwikkelaars.
Volgende stappen
Meer informatie door een beveiligde ASP.NET Core-web-API te bouwen in de volgende reeks zelfstudies: