Quickstart: Een ASP.NET Core-web-API beveiligen met het Microsoft Identity Platform
In deze quickstart wordt een voorbeeld van ASP.NET Core-web-API-code gebruikt om te laten zien hoe u de toegang tot resources tot geautoriseerde accounts beperkt. In het voorbeeld wordt gebruikgemaakt van ASP.NET Core Identity die communiceert met Microsoft Authentication Library (MSAL) om verificatie af te handelen.
Voorwaarden
- Azure-account met een actief abonnement. Als u nog geen account hebt, maakt u gratis een account.
- Een minimale vereiste van .NET 8.0 SDK
- Visual Studio 2022 of Visual Studio Code
De toepassings- en record-id's registreren
Fooi
Stappen in dit artikel kunnen enigszins variƫren op basis van de portal waaruit u begint.
Als u de registratie wilt voltooien, geeft u de toepassing een naam op en geeft u de ondersteunde accounttypen op. Zodra de toepassing is geregistreerd, worden op de pagina Overzicht van de toepassing de id's weergegeven die nodig zijn in de broncode van de toepassing.
Meld u als toepassingsontwikkelaar aan bij het Microsoft Entra-beheercentrum.
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.
Selecteer Nieuwe registratie.
Voer een naam in voor de toepassing, zoals NewWebAPI1.
Voor ondersteunde accounttypen selecteert u alleen Accounts in deze organisatiemap. Selecteer De optie Help mij kiezen voor informatie over verschillende accounttypen.
Selecteer Registreren.
Het deelvenster Overzicht van de toepassing wordt weergegeven wanneer de registratie is voltooid. Noteer de map-id (tenant) en de toepassings-id (client) 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 door een toepassing worden ondersteund.
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 wordt ontvangen de vereiste bereiken bevat.
Selecteer onder Beheren de optie Een API > beschikbaar maken en een bereik toevoegen. Accepteer de voorgestelde URI
(api://{clientId})
voor de toepassings-id door Opslaan te selecteren en door te gaan. Dit{clientId}
is de waarde die is vastgelegd op de pagina Overzicht . Voer vervolgens de volgende gegevens in:- Voer bij Bereiknaam de naam in
Forecast.Read
. - Voor wie toestemming kan geven, moet u ervoor zorgen dat de optie Beheerders en gebruikers is geselecteerd.
- Voer in het vak Weergavenaam van beheerderstoestemming de naam in
Read forecast data
. - Voer in het vak Beschrijving van beheerderstoestemming het volgende in
Allows the application to read weather forecast data
. - Voer in het vak Weergavenaam van gebruikerstoestemming de tekst in
Read forecast data
. - Voer in het vak Beschrijving van gebruikerstoestemming de tekst in
Allows the application to read weather forecast data
. - Zorg ervoor dat de status is ingesteld op Ingeschakeld.
- Voer bij Bereiknaam de naam in
Selecteer Bereik toevoegen. Als het bereik correct is ingevoerd, wordt dit weergegeven in het deelvenster Een API beschikbaar maken.
De voorbeeldtoepassing klonen of downloaden
Als u de voorbeeldtoepassing wilt verkrijgen, kunt u deze klonen vanuit GitHub of downloaden als een .zip-bestand .
Als u het voorbeeld wilt klonen, opent u een opdrachtprompt en navigeert u naar de locatie waar u het project wilt maken en voert u de volgende opdracht in:
git clone https://github.com/Azure-Samples/ms-identity-docs-code-dotnet.git
Download het .zip-bestand. Pak het uit naar een bestandspad waarbij de lengte van de naam minder dan 260 tekens is.
De ASP.NET Core-voorbeeldtoepassing configureren
Open in uw IDE de projectmap ms-identity-docs-code-dotnet/web-api met het voorbeeld.
Open
appsettings.json
het bestand, dat het volgende codefragment bevat:{ "AzureAd": { "Instance": "https://login.microsoftonline.com/", "TenantId": "Enter the tenant ID obtained from the Microsoft Entra admin center", "ClientId": "Enter the client ID obtained from the Microsoft Entra admin center", "Scopes": "Forecast.Read" }, "Logging": { "LogLevel": { "Default": "Information", "Microsoft.AspNetCore": "Warning" } }, "AllowedHosts": "*" }
Zoek het volgende
key
:ClientId
- De id van de toepassing, ook wel de client genoemd. Vervang devalue
tekst tussen aanhalingstekens door de toepassings-id (client) die eerder is vastgelegd op de pagina Overzicht van de geregistreerde toepassing.TenantId
- De id van de tenant waar de toepassing is geregistreerd. Vervang devalue
tekst tussen aanhalingstekens door de id-waarde van directory (tenant) die eerder is vastgelegd op de pagina Overzicht van de geregistreerde toepassing.
De voorbeeldtoepassing uitvoeren
Voer de volgende opdracht uit om de app te starten:
dotnet run
Er wordt een uitvoer weergegeven zoals in het volgende voorbeeld:
... info: Microsoft.Hosting.Lifetime[14] Now listening on: http://localhost:{port} ...
Noteer het poortnummer in de
http://localhost:{port}
URL.Als u wilt controleren of het eindpunt is beveiligd, werkt u de basis-URL bij in de volgende cURL-opdracht zodat deze overeenkomt met de url die u in de vorige stap hebt ontvangen en voert u de opdracht uit:
curl -X GET https://localhost:5001/weatherforecast -ki
Het verwachte antwoord is 401 Niet geautoriseerd met uitvoer die vergelijkbaar is met:
user@host:~$ curl -X GET https://localhost:5001/weatherforecast -ki HTTP/2 401 date: Fri, 23 Sep 2023 23:34:24 GMT server: Kestrel www-authenticate: Bearer content-length: 0
Volgende stappen
Ga verder met het volgende artikel voor meer informatie over het aanroepen van de beveiligde web-API met behulp van cURL.