Quickstart: Een ASP.NET web-API aanroepen die wordt beveiligd door het Microsoft Identity Platform

Welkom! Dit is waarschijnlijk niet de pagina die u verwachtte te zien. Terwijl we aan een oplossing voor dit probleem werken, kunt u met deze koppeling naar het juiste artikel gaan:

Quickstart: Een beveiligde ASP.NET web-API aanroepen

Onze excuses voor het ongemak en bedankt voor uw geduld tijdens onze inspanningen om dit probleem op te lossen.

In deze quickstart downloadt u een codevoorbeeld en voert u dit uit. Het codevoorbeeld laat zien hoe u een ASP.NET-web-API kunt beveiligen door de toegang tot bijbehorende resources te beperken tot alleen geautoriseerde accounts. Het voorbeeld ondersteunt autorisatie van persoonlijke Microsoft-accounts en -accounts in elke Microsoft Entra-organisatie.

In dit artikel wordt ook een WPF-app (Windows Presentation Foundation) gebruikt om te laten zien hoe u een toegangstoken kunt aanvragen om toegang te krijgen tot een web-API.

Vereisten

Het voorbeeld klonen of downloaden

U kunt het voorbeeld op twee manieren ophalen:

  • Kloon het vanaf uw shell of opdrachtregel:

    git clone https://github.com/AzureADQuickStarts/AppModelv2-NativeClient-DotNet.git
    
  • Download het als een ZIP-bestand.

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)

Registreer uw web-API in App-registraties in Azure Portal.

  1. Meld u aan bij het Microsoft Entra-beheercentrum als ten minste een toepassings-Beheer istrator.

  2. Blader naar identiteitstoepassingen>> App-registraties.

  3. Selecteer Nieuwe registratie.

  4. 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.

  5. Bij Ondersteunde accounttypen selecteert u Accounts in een organisatieadreslijst.

  6. Selecteer Registreren om de toepassing te maken.

  7. Zoek de waarde Toepassings-id (client) op de app-pagina Overzicht en noteer deze voor gebruik later. U hebt deze nodig om het Visual Studio-configuratiebestand van dit project te configureren (dat is ClientId in het bestand TodoListService\Web.config).

  8. 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:

    1. Voer bij Bereiknaam de naam inaccess_as_user.
    2. Zorg ervoor dat de optie Beheerders en gebruikers is geselecteerd voor Wie kan toestemming verlenen?
    3. Voer in het vak Beheer weergavenaam van toestemming de naam inAccess TodoListService as a user.
    4. Typ in Accesses the TodoListService web API as a userhet vak Beheer beschrijving van toestemming .
    5. Voer in het vak Weergavenaam van gebruikerstoestemming de tekst in Access TodoListService as a user.
    6. Voer in het vak Beschrijving van gebruikerstoestemming de tekst in Accesses the TodoListService web API as a user.
    7. Laat Status op Ingeschakeld staan.
  9. Selecteer Bereik toevoegen.

Het serviceproject configureren

Configureer het serviceproject zodat het overeenkomt met de geregistreerde web-API.

  1. Open de oplossing in Visual Studio en open vervolgens het bestand Web.config in de hoofdmap van het TodoListService-project.

  2. Vervang de waarde van de ida:ClientId parameter door de waarde client-id (toepassings-id) van de toepassing die u hebt geregistreerd in de App-registraties-portal.

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 :

  1. Open het bestand app.config in de hoofdmap van het TodoListClient-project.

  2. 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:

  1. Ga naar App-registraties op het Microsoft Identity Platform voor ontwikkelaars.

  2. Selecteer Nieuwe registratie.

  3. Wanneer de pagina Een toepassing registreren wordt geopend, voert u de registratiegegevens van de toepassing in:

    1. Voer in de sectie Naam een beschrijvende toepassingsnaam die gebruikers van de app te zien krijgen. Bijvoorbeeld: NativeClient-DotNet-TodoListClient.
    2. Bij Ondersteunde accounttypen selecteert u Accounts in een organisatieadreslijst.
    3. Selecteer Registreren om de toepassing te maken.

    Notitie

    In het bestand app.config van het TodoListClient-project is de standaardwaarde voor ida:Tenant ingesteld op common. 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.
  4. Selecteer verificatie op de pagina Overzicht van de app en voer vervolgens de volgende stappen uit om een platform toe te voegen:

    1. Selecteer onder Platformconfiguraties de knop Een platform toevoegen.
    2. Bij Mobiele toepassingen en bureaubladtoepassingen selecteert u Mobiele toepassingen en bureaubladtoepassingen.
    3. Schakel bij Omleidings-URI's het selectievakje https://login.microsoftonline.com/common/oauth2/nativeclient in.
    4. Selecteer Configureren.
  5. Selecteer API-machtigingen en voer vervolgens de volgende stappen uit om machtigingen toe te voegen:

    1. Selecteer de knop Een machtiging toevoegen.
    2. Selecteer het tabblad Mijn API's.
    3. Selecteer in de lijst met API's AppModelv2-NativeClient-DotNet-TodoListService-API of de naam die u hebt ingevoerd voor de web-API.
    4. Schakel de machtiging access_as_user in als dit selectievakje nog niet is ingeschakeld. Gebruik zo nodig het zoekvak.
    5. Selecteer de knop Toestemmingen toevoegen.

Uw project configureren

Configureer uw TodoListClient-project door de toepassings-id toe te voegen aan het bestand app.config .

  1. In de portal App-registraties kopieert u vanaf de pagina Overzicht de waarde van de Toepassings-id (client).

  2. 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. Als u Visual Studio gebruikt:

  1. Klik met de rechtermuisknop op de Visual Studio-oplossing en selecteer Eigenschappen

  2. Selecteer In de algemene eigenschappen het opstartproject en vervolgens meerdere opstartprojecten.

  3. Voor beide projecten kiest u Starten als de actie

  4. 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.

  1. Druk op F5 om de projecten te starten. De servicepagina wordt geopend, evenals de bureaubladtoepassing.

  2. 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.

  1. Open de eigenschappen van uw TodoListService-app in de portal App-registraties.
  2. In de sectie Een API beschikbaar maken, onder Geautoriseerde clienttoepassingen, selecteert u Een clienttoepassing toevoegen.
  3. Plak in het vak Client-id de toepassings-id van de TodoListClient-app.
  4. Selecteer in de sectie Gemachtigde bereiken het bereik voor de web-API api://<Application ID>/access_as_user.
  5. Selecteer Toepassing toevoegen.

Uw project uitvoeren

  1. Druk op F5 om uw project uit te voeren. Uw TodoListClient-app wordt geopend.
  2. 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 bepalen wie zich kan aanmelden bij uw toepassing, gebruikt u een van de volgende opties:

Optie 1: De toegang tot één organisatie beperken (één tenant)

U kunt aanmeldingstoegang tot uw toepassing beperken tot gebruikersaccounts die zich in één Microsoft Entra-tenant bevinden, inclusief gastaccounts van die tenant. Dit scenario is gebruikelijk voor Line-Of-Business-toepassingen.

  1. Open het bestand App_Start \Startup.Auth en wijzig de waarde van het eindpunt voor metagegevens dat wordt doorgegeven aan de OpenIdConnectSecurityTokenProvider in https://login.microsoftonline.com/{Tenant ID}/v2.0/.well-known/openid-configuration. U kunt ook de naam van de tenant gebruiken, bijvoorbeeld contoso.onmicrosoft.com.
  2. Stel in hetzelfde bestand de eigenschap ValidIssuer op de TokenValidationParameters in op https://sts.windows.net/{Tenant ID}/ en stel het argument ValidateIssuer in op true.

Optie 2: Een aangepaste methode gebruiken om verleners te valideren

U kunt een aangepaste methode implementeren om verleners te valideren met behulp van de IssuerValidator parameter. Als u meer informatie wilt over deze parameter, bekijk dan de TokenValidationParameters-klasse.

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: