Guida introduttiva: Aggiungere l'accesso con Microsoft a un'app Web ASP.NET Core

Benvenuto! Questa probabilmente non è la pagina che ti aspettavi. Mentre si lavora su una correzione, questo collegamento dovrebbe portare all'articolo corretto:

Guida introduttiva: Aggiungere l'accesso con Microsoft a un'app Web ASP.NET Core

Ci scusiamo per l'inconveniente e apprezziamo la vostra pazienza mentre lavoriamo per risolvere questo problema.

In questa guida introduttiva si scarica ed esegue un esempio di codice che illustra come un'app Web ASP.NET Core può consentire agli utenti di accedere da qualsiasi organizzazione Di Microsoft Entra.

Passaggio 1: Configurare l'applicazione nel portale di Azure

Per il funzionamento dell'esempio di codice in questa guida introduttiva:

  • Per URI di reindirizzamento immettere https://localhost:44321/ e https://localhost:44321/signin-oidc.
  • Per URL di disconnessione del canale anteriore immettere https://localhost:44321/signout-oidc.

L'endpoint di autorizzazione emetterà token ID richiesta.

Already configured L'applicazione è configurata con questi attributi.

Passaggio 2: Scaricare il progetto ASP.NET Core

Eseguire il progetto.

Suggerimento

Per evitare errori causati da limitazioni di lunghezza del percorso in Windows, è consigliabile estrarre l'archivio o clonare il repository in una directory vicina alla radice dell'unità.

Passaggio 3: L'app è configurata e pronta per l'esecuzione

Il progetto è stato configurato con i valori delle proprietà dell'app ed è pronto per l'esecuzione.

Nota

Enter_the_Supported_Account_Info_Here

Ulteriori informazioni

Questa sezione include una panoramica del codice necessario per consentire l'accesso degli utenti. Questa panoramica può essere utile per comprendere il funzionamento del codice, gli argomenti principali e come aggiungere l'accesso a un'applicazione ASP.NET Core esistente.

Funzionamento dell'esempio

Diagram of the interaction between the web browser, the web app, and the Microsoft identity platform in the sample app.

Classe di avvio

Il middleware Microsoft.AspNetCore.Authentication usa una Startup classe eseguita all'avvio del processo di hosting:

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();
}

Il AddAuthentication() metodo configura il servizio per aggiungere l'autenticazione basata su cookie. Questa autenticazione viene usata negli scenari del browser e per impostare la richiesta di verifica su OpenID Connessione.

La riga che contiene .AddMicrosoftIdentityWebApp aggiunge l'autenticazione di Microsoft Identity Platform all'applicazione. L'applicazione viene quindi configurata per l'accesso degli utenti in base alle informazioni seguenti nella AzureAD sezione del file di configurazione appsettings.json :

Chiave appsettings.json Descrizione
ClientId ID applicazione (client) dell'applicazione registrata nel portale di Azure.
Instance Endpoint del servizio token di sicurezza (STS) per l'autenticazione dell'utente. Questo valore è in genere https://login.microsoftonline.com/, che indica il cloud pubblico di Azure.
TenantId Nome del tenant o dell'ID tenant (GUID) o common per accedere agli utenti con account aziendali o dell'istituto di istruzione o account personali Microsoft.

Il metodo Configure() contiene due metodi importanti, app.UseAuthentication() e app.UseAuthorization(), che abilitano la funzionalità denominata. Inoltre, nel Configure() metodo è necessario registrare le route Web di Microsoft Identity con almeno una chiamata a o una chiamata a endpoints.MapControllerRoute()endpoints.MapControllers():

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

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

Attributo per la protezione di un controller o di metodi

È possibile proteggere un controller o metodi controller usando l'attributo [Authorize] . Questo attributo limita l'accesso al controller o ai metodi consentendo solo gli utenti autenticati. È quindi possibile avviare una richiesta di autenticazione per accedere al controller se l'utente non è autenticato.

Assistenza e supporto

Se è necessaria assistenza, si vuole segnalare un problema o si vogliono ottenere informazioni sulle opzioni di supporto, vedere Assistenza e supporto per gli sviluppatori.

Passaggi successivi

Il repository GitHub che contiene questa esercitazione su ASP.NET Core include istruzioni e altri esempi di codice che illustrano come:

  • Aggiungere l'autenticazione a una nuova applicazione Web ASP.NET Core.
  • Chiamare Microsoft Graph, altre API Microsoft o le proprie API Web.
  • Aggiungere l'autorizzazione.
  • Accedere agli utenti nei cloud nazionali o con identità di social networking.