Condividi tramite


Guida introduttiva: app Web ASP.NET che consente l'accesso degli utenti a Microsoft Entra

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

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 codice di esempio che mostra un'applicazione Web ASP.NET che può consentire agli utenti di accedere con account Microsoft Entra.

Passaggio 1: Configurare l'applicazione nel portale di Azure

Per il corretto funzionamento del codice di esempio in questa guida di avvio rapido, immettere https://localhost:44368/ per URI di reindirizzamento.

Configurazione già eseguita L'applicazione è configurata con questo attributo.

Passaggio 2: Scaricare il progetto

Eseguire il progetto con Visual Studio 2019.

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

Abbiamo configurato il progetto con i valori delle proprietà della tua app.

  1. Estrarre il file .zip in una cartella locale vicina alla cartella radice. Ad esempio eseguire l'estrazione in C:\Azure-Samples.

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

  2. Aprire la soluzione in Visual Studio (AppModelv2-WebApp-OpenIDConnect-DotNet.sln).

  3. A seconda della versione di Visual Studio, potrebbe essere necessario fare clic con il pulsante destro del mouse sul progetto >AppModelv2-WebApp-OpenIDConnect-DotNet, quindi selezionare Ripristina pacchetti NuGet.

  4. Aprire la console di Gestione pacchetti selezionando Visualizza>Altre finestre>Console Gestione pacchetti. Quindi eseguire Update-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform -r.

Annotazioni

Enter_the_Supported_Account_Info_Here

Altre informazioni

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

Funzionamento dell'esempio

Diagramma dell'interazione tra il Web browser, l'app Web e Microsoft Identity Platform nell'app di esempio.

Pacchetti NuGet di middleware OWIN

È possibile impostare la pipeline di autenticazione con l'autenticazione basata su cookie usando OpenID Connect in ASP.NET con i pacchetti middleware OWIN. È possibile installare questi pacchetti eseguendo i comandi seguenti nella Console di Gestione pacchetti all'interno di Visual Studio:

Install-Package Microsoft.Owin.Security.OpenIdConnect
Install-Package Microsoft.Owin.Security.Cookies
Install-Package Microsoft.Owin.Host.SystemWeb

Classe di avvio OWIN

Il middleware OWIN usa una classe di avvio che viene eseguita quando si viene avviato il processo di hosting. In questa guida di avvio rapido il file startup.cs si trova nella cartella radice. Il codice seguente mostra i seguenti parametri utilizzati da questa guida introduttiva:

public void Configuration(IAppBuilder app)
{
    app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);

    app.UseCookieAuthentication(new CookieAuthenticationOptions());
    app.UseOpenIdConnectAuthentication(
        new OpenIdConnectAuthenticationOptions
        {
            // Sets the client ID, authority, and redirect URI as obtained from Web.config
            ClientId = clientId,
            Authority = authority,
            RedirectUri = redirectUri,
            // PostLogoutRedirectUri is the page that users will be redirected to after sign-out. In this case, it's using the home page
            PostLogoutRedirectUri = redirectUri,
            Scope = OpenIdConnectScope.OpenIdProfile,
            // ResponseType is set to request the code id_token, which contains basic information about the signed-in user
            ResponseType = OpenIdConnectResponseType.CodeIdToken,
            // ValidateIssuer set to false to allow personal and work accounts from any organization to sign in to your application
            // To only allow users from a single organization, set ValidateIssuer to true and the 'tenant' setting in Web.> config to the tenant name
            // To allow users from only a list of specific organizations, set ValidateIssuer to true and use the ValidIssuers parameter
            TokenValidationParameters = new TokenValidationParameters()
            {
                ValidateIssuer = false // Simplification (see note below)
            },
            // OpenIdConnectAuthenticationNotifications configures OWIN to send notification of failed authentications to > the OnAuthenticationFailed method
            Notifications = new OpenIdConnectAuthenticationNotifications
            {
                AuthenticationFailed = OnAuthenticationFailed
            }
        }
    );
}
Dove Descrizione
ClientId ID dell'applicazione registrata nel portale di Azure.
Authority L'endpoint del servizio token di sicurezza (STS) per l'autenticazione dell'utente. Si tratta in genere di https://login.microsoftonline.com/{tenant}/v2.0 per il cloud pubblico. In tale URL, {tenant} è il nome del tuo tenant, l'ID del tuo tenant, o common per un riferimento all'endpoint comune. L'endpoint comune viene usato per le applicazioni multi-tenant.
RedirectUri L'URL a cui vengono indirizzati gli utenti dopo l'autenticazione con Microsoft Identity Platform.
PostLogoutRedirectUri L'URL a cui vengono indirizzati gli utenti dopo la disconnessione.
Scope L'elenco di ambiti richiesti, separati da spazi.
ResponseType La richiesta secondo cui la risposta dall'autenticazione contenga un codice di autorizzazione e un token di ID.
TokenValidationParameters Elenco di parametri per la convalida del token. In questo caso ValidateIssuer è impostato su false a indicare che può accettare accessi provenienti da tutti i tipi di account personale, aziendale o dell'istituto di istruzione.
Notifications Elenco di delegati che possono essere eseguiti nei messaggi OpenIdConnect.

Annotazioni

L'impostazione di ValidateIssuer = false è una semplificazione per questo avvio rapido. Nelle applicazioni reali convalidare l'emittente. Vedere gli esempi per comprendere come eseguire questa operazione.

Richiesta di autenticazione

È possibile indurre un utente a eseguire l'accesso inserendo una richiesta di autenticazione nel controller in uso:

public void SignIn()
{
    if (!Request.IsAuthenticated)
    {
        HttpContext.GetOwinContext().Authentication.Challenge(
            new AuthenticationProperties{ RedirectUri = "/" },
            OpenIdConnectAuthenticationDefaults.AuthenticationType);
    }
}

Suggerimento

Richiedere una richiesta di autenticazione tramite questo metodo è facoltativo. In genere si usa quando si vuole che una visualizzazione sia accessibile sia da utenti autenticati che non autenticati. È possibile in alternativa proteggere i controller usando il metodo descritto nella sezione successiva.

Attributo per la protezione di un controller o di un'azione del controller

È possibile proteggere un controller o azioni del controller usando l'attributo [Authorize]. Questo attributo limita l'accesso al controller o alle azioni consentendo solo agli utenti autenticati di accedere alle azioni nel controller. Una richiesta di autenticazione verrà quindi eseguita automaticamente quando un utente non autenticato tenta di accedere a una delle azioni o dei controller con l'attributo [Authorize].

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

Prova il tutorial di ASP.NET per una guida dettagliata completa sulla creazione di applicazioni e nuove funzionalità, includendo una spiegazione completa di questa guida introduttiva.