Quickstart: Een web-API aanroepen die wordt beveiligd door het Microsoft Identity Platform
Van toepassing op: Workforce-huurders
Externe huurders (meer informatie)
In deze quickstart gebruikt u een voorbeeldweb-app om u te laten zien hoe u een ASP.NET web-API beveiligt met behulp van het Microsoft Identity Platform. In het voorbeeld wordt MSAL- (Microsoft Authentication Library) gebruikt om verificatie af te handelen.
Voorwaarden
- Een Azure-account met een actief abonnement. Maak gratis een account.
- Visual Studio 2022. Download Visual Studio voor gratis.
Web-API-toepassing registreren
Als u de registratie wilt voltooien, geeft u de toepassing een naam op en geeft u de ondersteunde accounttypen op. Nadat de toepassing is geregistreerd, worden op de Overzicht pagina de identificators weergegeven die nodig zijn in de broncode van de toepassing.
Meld u aan bij het Microsoft Entra-beheercentrum als ten minste een Applicatieontwikkelaar.
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 Identity>Applications>App-registraties.
Selecteer Nieuwe registratie.
Voer een naam in voor de toepassing, zoals NewWebAPI1-.
Voor ondersteunde accounttypenselecteert u Accounts in deze organisatiemap alleen. Voor informatie over verschillende accounttypen selecteert u Help mij optie te kiezen.
Selecteer registreren.
Het deelvenster Overzicht van de toepassing wordt weergegeven wanneer de registratie is voltooid. Noteer de Directory-id (tenant) en de -toepassings-id (client)-id die moet worden gebruikt in de broncode van uw toepassing.
Notitie
De Ondersteunde accounttypen kunnen worden gewijzigd door te verwijzen naar De accounts wijzigen die worden ondersteund door een toepassing.
Een API beschikbaar maken
Zodra de API is geregistreerd, kunt u de machtiging ervan configureren door de bereiken te definiëren die de API beschikbaar maakt voor clienttoepassingen. Clienttoepassingen vragen toestemming om bewerkingen uit te voeren door een toegangstoken samen met de aanvragen door te geven aan de beveiligde web-API. De web-API voert de aangevraagde bewerking alleen uit als het toegangstoken dat het ontvangt de vereiste machtigingen bevat.
Selecteer onder BeherenEen API beschikbaar maken>Een scope toevoegen. Accepteer de voorgestelde URI voor de toepassings-id (
api://{clientId}
) door Opslaan te selecteren en door te gaanen voer vervolgens de volgende gegevens in:- Voer voor bereiknaam
access_as_user
in. - Voor Wie kantoestemming geven, moet u ervoor zorgen dat de optie beheerders en gebruikers is geselecteerd.
- Voer
Access TodoListService as a user
in het vak weergavenaam voor beheerderstoestemmingAccess TodoListService as a user
in. - In het vak Beschrijving van de beheerderstoestemming, voer
Accesses the TodoListService web API as a user
in. - Voer
Access TodoListService as a user
in het vak weergave naam van gebruikerstoestemming in. - Typ
Accesses the TodoListService web API as a user
in het vak beschrijving van gebruikerstoestemming. - Voor statushoudt u ingeschakeld.
- Voer voor bereiknaam
Selecteer Bereik toevoegen.
De voorbeeldtoepassing klonen of downloaden
Als u de voorbeeldtoepassing wilt verkrijgen, kunt u deze klonen vanuit GitHub of downloaden als een .zip-bestand.
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 uit te pakken of de repository te klonen in een map dicht bij de hoofdmap van uw schijf.
De voorbeeldtoepassing configureren
Configureer het codevoorbeeld zodat het overeenkomt met de geregistreerde web-API.
Open de oplossing in Visual Studio en open het bestand appsettings.json onder de hoofdmap van het TodoListService-project.
Vervang de waarde van
Enter_the_Application_Id_here
door de Client ID (toepassings-id) waarde van de toepassing die u hebt geregistreerd in de app-registraties portal, zowel in de eigenschappenClientID
alsAudience
.
Voeg het nieuwe bereik toe aan het app.config-bestand
Voer de volgende stappen uit om het nieuwe bereik toe te voegen aan het bestand TodoListClient app.config:
Open in de hoofdmap van het TodoListClient-project het app.config-bestand.
Plak de toepassings-id uit de toepassing die u hebt geregistreerd voor uw TodoListService-project in de parameter
TodoListServiceScope
, waarbij u de{Enter the Application ID of your TodoListService from the app registration portal}
tekenreeks vervangt.
Notitie
Zorg ervoor dat de toepassings-id de volgende indeling gebruikt: 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 als dezelfde toepassing worden beschouwd, kunt u de 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 je aan bij het Microsoft Entra-beheercentrum als ten minste een cloud-toepassingsbeheerder.
Blader naar Identity>Applications>App-registraties en selecteer Nieuwe registratie.
Selecteer Nieuwe registratie.
Wanneer de Een toepassingspagina registreren wordt geopend, voert u de registratiegegevens van uw toepassing in:
- Voer in de sectie Naam een beschrijvende toepassingsnaam in die wordt weergegeven aan gebruikers van de app (bijvoorbeeld NativeClient-DotNet-TodoListClient).
- Voor ondersteunde accounttypenselecteert u Accounts in een organisatiemap.
- Selecteer registreren om de toepassing te maken.
Notitie
In het todoListClient-project app.config bestand is de standaardwaarde van
ida:Tenant
ingesteld opcommon
. De mogelijke waarden zijn:-
common
: u kunt zich aanmelden met een werk- of schoolaccount of een persoonlijk Microsoft-account (omdat u Accounts hebt geselecteerd in een organisatiemap in een vorige stap). -
organizations
: U kunt zich aanmelden met een werk- of schoolaccount. -
consumers
: u kunt zich alleen aanmelden met een persoonlijk Microsoft-account.
Selecteer op de pagina Overzicht de optie Authenticatieen voer vervolgens de volgende stappen uit om een platform toe te voegen:
- Selecteer onder Platformconfiguratiesde knop Een platform toevoegen.
- Selecteer voor Mobile- en desktoptoepassingende optie Mobile- en desktoptoepassingen.
- Voor de omleidings-URI's , selecteer het selectievakje
https://login.microsoftonline.com/common/oauth2/nativeclient
. - Selecteer configureren.
Selecteer API-machtigingenen 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.
- Selecteer het selectievakje toegang_als_gebruiker machtiging als het nog niet is geselecteerd. Gebruik indien nodig het zoekvak.
- Selecteer de knop Machtigingen toevoegen.
Uw project configureren
Configureer uw TodoListClient-project door de toepassings-id toe te voegen aan het app.config-bestand.
Kopieer in de app-registraties portal op de pagina Overzicht de waarde van de Toepassings-id (client)-id.
Open in de hoofdmap van het TodoListClient-project het app.config bestand en plak de waarde van de toepassings-id in de parameter
ida:ClientId
.
De voorbeeldtoepassing uitvoeren
Start beide projecten. Voor Visual Studio-gebruikers;
Klik met de rechtermuisknop op de Visual Studio-oplossing en selecteer Eigenschappen
Selecteer in de Algemene eigenschappenopstartproject en vervolgens meerdere opstartprojecten.
Kies voor beide projecten starten als 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 Aanmeldenen meld u vervolgens 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 Web-API todoListService.
Om u te helpen toegang te krijgen tot de TodoListService-web-API en de Takenlijst te bewerken, vraagt de aanmeldprocedure ook om een toegangstoken voor het access_as_user bereik.
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 dit 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, kunt u gebruikers toegang geven tot uw web-API zonder toestemming te hoeven geven.
- Open in de App-registraties portal de eigenschappen van uw TodoListService-app.
- Selecteer in de sectie Een API- beschikbaar maken onder geautoriseerde clienttoepassingende optie Een clienttoepassing toevoegen.
- Plak in het vak Client-id de toepassings-id van de TodoListClient-app.
- Selecteer in het gedeelte Geautoriseerde scopes de scope voor de
api://<Application ID>/access_as_user
web-API. - Selecteer Toepassing toevoegen.
Uw project uitvoeren
- Druk op F5- om uw project uit te voeren. Uw TodoListClient-app wordt geopend.
- Selecteer rechtsboven Aanmeldenen meld u 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 eigenschap TenantId
in het appsettings.json-bestand.
Volgende stappen
Leer meer door te leren hoe je een beveiligde ASP.NET Core-web-API bouwt in de volgende reeks tutorials.
Zelfstudie beveiligde web-API