Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In deze quickstart maakt u een ASP.NET Core-web-app waarmee gebruikers met Microsoft Entra ID worden aangemeld met behulp van Microsoft. Identity.Web. U kunt een nieuw project maken vanuit een sjabloon of verificatie toevoegen aan een bestaande app.
Als u geen Microsoft Entra tenant hebt, maakt u een vrij account voordat u begint.
Vereiste voorwaarden
- .NET 9 SDK
- Een Microsoft Entra ID-tenant
- Een app-registratie in uw Microsoft Entra-tenant. Zie Uw toepassing registreren als u er een wilt maken.
Een project maken op basis van de sjabloon
De snelste manier om aan de slag te gaan, is door een nieuw project te bouwen met vooraf geconfigureerde verificatie.
Voer de volgende commando's uit om een nieuwe web-app te maken met authenticatie voor één organisatie en navigeer naar de projectmap.
dotnet new webapp --auth SingleOrg --name MyWebApp
cd MyWebApp
De sjabloon genereert een project waarin Microsoft.Identity.Web al is geconfigureerd. U hoeft alleen uw app-registratiegegevens op te geven.
Open appsettings.json en vervang de tijdelijke waarden door de Applicatie-ID (client-id) en Directory-ID (directory-id) van uw app-registratie.
{
"AzureAd": {
"Instance": "https://login.microsoftonline.com/",
"TenantId": "your-tenant-id",
"ClientId": "your-client-id",
"CallbackPath": "/signin-oidc"
}
}
Start de toepassing om te controleren of aanmelding werkt:
dotnet run
Navigeer naar https://localhost:5001 en selecteer Aanmelden. Als er een Microsoft aanmeldingsprompt wordt weergegeven, is de configuratie juist.
Verificatie toevoegen aan een bestaande web-app
Als u een bestaande ASP.NET Core-app hebt, volgt u deze stappen om Microsoft Entra aanmelding toe te voegen.
NuGet-pakketten installeren
Voeg de Microsoft.Identity.Web-bibliotheken toe. Het pakket Microsoft.Identity.Web verwerkt verificatie en Microsoft.Identity.Web.UI biedt vooraf gedefinieerde onderdelen voor aanmelden en afmelden:
dotnet add package Microsoft.Identity.Web
dotnet add package Microsoft.Identity.Web.UI
Verificatieservices configureren
Open Program.cs en voeg de verificatieservices toe. Met de volgende code wordt OpenID Connect-verificatie geregistreerd bij Microsoft Entra, kan tokens worden opgehaald voor downstream-API-aanroepen en wordt de gebruikersinterface voor aanmelden/afmelden toegevoegd:
using Microsoft.Identity.Web;
using Microsoft.Identity.Web.UI;
var builder = WebApplication.CreateBuilder(args);
// Add authentication
builder.Services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme)
.AddMicrosoftIdentityWebApp(builder.Configuration, "AzureAd")
.EnableTokenAcquisitionToCallDownstreamApi() // Optional: if calling APIs
.AddInMemoryTokenCaches(); // For production, use distributed cache
// Add Razor Pages or MVC
builder.Services.AddRazorPages()
.AddMicrosoftIdentityUI(); // Adds sign-in/sign-out UI
var app = builder.Build();
// Configure middleware
if (!app.Environment.IsDevelopment())
{
app.UseExceptionHandler("/Error");
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthentication(); // Add authentication middleware
app.UseAuthorization();
app.MapRazorPages();
app.MapControllers();
app.Run();
Configuratie van Microsoft Entra toevoegen
Open appsettings.json en voeg de AzureAd sectie toe. Vervang de placeholderwaarden met de Application (client) ID van uw app-registratie. Instellen TenantId op de juiste doelgroep voor uw app:
{
"AzureAd": {
"Instance": "https://login.microsoftonline.com/",
"TenantId": "common",
"ClientId": "your-client-id-from-app-registration",
"CallbackPath": "/signin-oidc"
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.Identity.Web": "Information"
}
}
}
De TenantId waarde bepaalt welke accounts zich kunnen aanmelden:
| Waarde | Geaccepteerde accounts |
|---|---|
common |
Werk-/school- en persoonlijke Microsoft-accounts |
organizations |
Alleen werk-/schoolaccounts |
consumers |
Alleen persoonlijke Microsoft-accounts |
<your-tenant-id> |
Eén tenant: alleen uw organisatie |
Uw pagina's beveiligen
Voeg het [Authorize] kenmerk toe aan pagina's of controllers waarvoor aanmelding is vereist.
Voor Razor Pages leidt het [Authorize] kenmerk niet-geverifieerde gebruikers om naar de aanmeldingspagina. Na aanmelding zijn gebruikersclaims zoals Name en preferred_username beschikbaar via het User object:
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc.RazorPages;
[Authorize] // Require authentication
public class IndexModel : PageModel
{
public void OnGet()
{
var userName = User.Identity?.Name;
var userEmail = User.FindFirst("preferred_username")?.Value;
}
}
Voor MVC-controllers geldt hetzelfde [Authorize] kenmerk op controller- of actieniveau:
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
[Authorize] // Require authentication
public class HomeController : Controller
{
public IActionResult Index()
{
var userName = User.Identity?.Name;
return View();
}
}
Aanmeldings- en afmeldkoppelingen toevoegen
Voeg navigatiekoppelingen toe aan uw indeling, zodat gebruikers zich kunnen aanmelden en afmelden. De MicrosoftIdentity gebiedsroutes worden geleverd door het Microsoft.Identity.Web.UI pakket. Met de volgende Razor-markering worden afmelden of aanmelden voorwaardelijk weergegeven op basis van de verificatiestatus van de gebruiker:
<ul class="navbar-nav">
@if (User.Identity?.IsAuthenticated == true)
{
<li class="nav-item">
<span class="nav-link">Hello @User.Identity.Name!</span>
</li>
<li class="nav-item">
<a class="nav-link" asp-area="MicrosoftIdentity" asp-controller="Account" asp-action="SignOut">Sign out</a>
</li>
}
else
{
<li class="nav-item">
<a class="nav-link" asp-area="MicrosoftIdentity" asp-controller="Account" asp-action="SignIn">Sign in</a>
</li>
}
</ul>
Uitvoeren en testen
Start de toepassing om te controleren of verificatie werkt:
dotnet run
Navigeer naar https://localhost:5001. U zou een Meld je aan-link moeten zien. Selecteer deze om te bevestigen dat de aanmeldingsstroom Microsoft is voltooid.
Registreer uw toepassing
Als u nog geen app-registratie hebt, volgt u deze stappen om er een te maken in de Azure-portal.
- Meld u aan bij het Azure-portaal.
- Navigeer naar Microsoft Entra ID>App-registraties>Nieuwe registratie.
- Voer een weergavenaam in (bijvoorbeeld 'Mijn web-app').
- Ondersteunde accounttypen selecteren:
- Eén tenant : alleen gebruikers in uw organisatie
- Multi-tenant — gebruikers in elke organisatie
- Multi-tenant + personal — Alle Microsoft-accounts
- Stel onder Omleidings-URI het platform in op Web en voer het in
https://localhost:5001/signin-oidc. - Selecteer Registreren.
- Kopieer op de overzichtsbladzijde de Applicatie-ID (client) en de Directorie-ID (tenant). U hebt deze waarden nodig voor de
ClientIdenTenantIdvelden inappsettings.json.
Optionele instellingen configureren
Voor uw scenario zijn mogelijk deze aanvullende instellingen vereist.
Uitgifte van id-token inschakelen : voor sommige scenario's voor hybride verificatie moeten id-tokens rechtstreeks vanuit het autorisatie-eindpunt worden uitgegeven. De autorisatiecodestroom (gebruikt door Microsoft. Identity.Web) is de aanbevolen aanpak. Schakel deze instelling alleen in als uw scenario dit specifiek vereist:
- Ga in de app-registratie naar Verificatie.
- Onder Impliciete toekenning en hybride stromen, selecteer ID-tokens.
- Selecteer Opslaan.
Opmerking
De impliciete toekenningsstroom is een verouderde stroom. Microsoft raadt de autorisatiecodestroom aan met PKCE voor alle nieuwe toepassingen. Zie de documentatie Microsoft identity platform voor meer informatie.
Een afmeldings-URL voor front-channel configureren — Zorgt ervoor dat gebruikers zijn afgemeld bij uw app wanneer ze zich afmelden bij Microsoft Entra:
- Ga in de app-registratie naar Verificatie.
- Voer onder Afmeldings-URL voor front-kanaal
https://localhost:5001/signout-oidcin. - Selecteer Opslaan.
Veelvoorkomende fouten oplossen
Als u problemen ondervindt tijdens het aanmelden, controleert u op deze veelvoorkomende fouten.
| Fout | Oorzaak | Oplossing |
|---|---|---|
| AADSTS50011: Er is geen antwoordadres geregistreerd | Omleidings-URI komt niet overeen tussen code en app-registratie | Controleer of de omleidings-URI in uw app-registratie overeenkomt CallbackPath (/signin-oidc standaard) |
| AADSTS700016: De toepassing is niet gevonden | Onjuist ClientId in configuratie |
Controleer of de toepassings-id (client) overeenkomt appsettings.json met uw app-registratie |
| Fout bij de configuratie van de autorisatie | Ontbreekt of is ongeldig Instance of TenantId |
Stel Instance in op https://login.microsoftonline.com/ en bevestig dat TenantId geldig is. |