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 din app 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.

Already configured Programmet har konfigurerats med dessa attribut.

Steg 2: Ladda ned projektet ASP.NET Core

Kör projektet.

Dricks

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.

Kommentar

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 of the interaction between the web browser, the web app, and the Microsoft identity platform in the sample app.

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

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

appsettings.json nyckel beskrivning
ClientId Program-ID för programmet som är registrerat i Azure-portalen.
Instance StS-slutpunkten (Security Token Service) som användaren kan autentisera. Det här värdet är vanligtvis https://login.microsoftonline.com/, vilket anger det offentliga Azure-molnet.
TenantId Namnet på din klientorganisation eller klientorganisations-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. Configure() I metoden måste du också 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 kontrollant 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 support

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.