Dela via


Snabbstart: Lägga till inloggning med Microsoft i en ASP.NET Core-webbapp

Välkommen! Det här är förmodligen inte den sida du förväntade dig. När vi arbetar med en korrigering bör den här länken ta dig till rätt artikel:

Snabbstart: Lägga till inloggning med Microsoft i en ASP.NET Core-webbapp

Vi ber om ursäkt för besväret och uppskattar ditt tålamod medan vi arbetar för att få detta löst.

I den här snabbstarten laddar du ned och kör ett kodexempel som visar hur en ASP.NET Core-webbapp kan logga in användare från alla Microsoft Entra-organisationer.

Steg 1: Konfigurera ditt program i Azure-portalen

För att kodexemplet i den här snabbstarten ska fungera:

  • För omdirigerings-URI anger du https://localhost:44321/ och https://localhost:44321/signin-oidc.
  • För URL för utloggning i Front-channel anger du https://localhost:44321/signout-oidc.

Auktoriseringsslutpunkten utfärdar begärande-ID-token.

Redan konfigurerad Programmet har konfigurerats med dessa attribut.

Steg 2: Ladda ned projektet ASP.NET Core

Kör projektet.

Tips/Råd

För att undvika fel som orsakas av sökvägslängdsbegränsningar i Windows rekommenderar vi att du extraherar arkivet eller klonar lagringsplatsen till en katalog nära roten på enheten.

Steg 3: Din app är konfigurerad och redo att köras

Vi har konfigurerat projektet med värden för appens egenskaper och är redo att köras.

Anmärkning

Enter_the_Supported_Account_Info_Here

Mer information

Det här avsnittet ger en översikt över den kod som krävs för att logga in användare. Den här översikten kan vara användbar för att förstå hur koden fungerar, vad huvudargumenten är och hur du lägger till inloggning i ett befintligt ASP.NET Core-program.

Så här fungerar exemplet

Diagram över interaktionen mellan webbläsaren, webbappen och Microsofts identitetsplattform i exempelappen.

Startklass

Mellanprogrammet Microsoft.AspNetCore.Authentication använder en Startup klass som körs när värdprocessen startar:

public void ConfigureServices(IServiceCollection services)
{
    services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme)
        .AddMicrosoftIdentityWebApp(Configuration.GetSection("AzureAd"));

    services.AddControllersWithViews(options =>
    {
        var policy = new AuthorizationPolicyBuilder()
            .RequireAuthenticatedUser()
            .Build();
        options.Filters.Add(new AuthorizeFilter(policy));
    });
   services.AddRazorPages()
        .AddMicrosoftIdentityUI();
}

Metoden AddAuthentication() konfigurerar tjänsten för att lägga till cookiebaserad autentisering. Den här autentiseringen används i webbläsarscenarier och för att ställa in utmaningen på OpenID Connect.

Raden som innehåller .AddMicrosoftIdentityWebApp lägger till autentisering med Microsofts identitetsplattform till ditt program. Programmet konfigureras sedan för att logga in användare baserat på följande information i AzureAD avsnittet iappsettings.json-konfigurationsfilen:

appsettings.json nyckel Beskrivning
ClientId Program-ID för programmet som är registrerat i Azure-portalen.
Instance Slutpunkt för säkerhetstokenstjänst (STS) där användaren kan autentisera sig. Det här värdet är vanligtvis https://login.microsoftonline.com/, vilket anger det offentliga Azure-molnet.
TenantId Namnet på din klient eller klient-ID (ett GUID) eller common för att logga in användare med arbets- eller skolkonton eller personliga Microsoft-konton.

Metoden Configure() innehåller två viktiga metoder, app.UseAuthentication() och app.UseAuthorization(), som aktiverar deras namngivna funktioner. Dessutom måste du i Configure()-metoden registrera Microsoft Identity Web-vägar med minst ett anrop till endpoints.MapControllerRoute() eller ett anrop till endpoints.MapControllers():

app.UseAuthentication();
app.UseAuthorization();

app.UseEndpoints(endpoints =>
{
    endpoints.MapControllerRoute(
        name: "default",
        pattern: "{controller=Home}/{action=Index}/{id?}");
    endpoints.MapRazorPages();
});

Attribut för att skydda en kontroller eller metoder

Du kan skydda en kontrollant eller kontrollantmetoder med hjälp av attributet [Authorize] . Det här attributet begränsar åtkomsten till kontrollanten eller metoderna genom att endast tillåta autentiserade användare. En autentiseringsutmaning kan sedan startas för att komma åt kontrollanten om användaren inte autentiseras.

Hjälp och stöd

Om du behöver hjälp, vill rapportera ett problem eller vill lära dig mer om dina supportalternativ kan du läsa Hjälp och support för utvecklare.

Nästa steg

GitHub-lagringsplatsen som innehåller den här ASP.NET Core-självstudien innehåller instruktioner och fler kodexempel som visar hur du:

  • Lägg till autentisering i ett nytt ASP.NET Core-webbprogram.
  • Anropa Microsoft Graph, andra Microsoft-API:er eller dina egna webb-API:er.
  • Lägg till auktorisering.
  • Logga in användare i nationella moln eller med sociala identiteter.