Guida introduttiva: ASP.NET'app Web che accede agli utenti di 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 esempio di codice che illustra un'applicazione Web ASP.NET in grado di accedere agli utenti con account Microsoft Entra.
Passaggio 1: Configurare l'applicazione nel portale di Azure
Per il funzionamento dell'esempio di codice in questa guida introduttiva, immettere https://localhost:44368/ per URI di reindirizzamento.
L'applicazione è configurata con questo attributo.
Passaggio 2: Scaricare il progetto
Eseguire il progetto usando 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
Il progetto è stato configurato con i valori delle proprietà dell'app.
Estrarre il file .zip in una cartella locale vicina alla cartella radice. Ad esempio, estrarre in C:\Azure-Samples.
È consigliabile estrarre l'archivio in una directory vicina alla radice dell'unità per evitare errori causati dalle limitazioni della lunghezza del percorso in Windows.
Aprire la soluzione in Visual Studio (AppModelv2-WebApp-OpenID Connessione-DotNet.sln).
A seconda della versione di Visual Studio, potrebbe essere necessario fare clic con il pulsante destro del mouse sul progetto >AppModelv2-WebApp-OpenID Connessione-DotNet e quindi scegliere Ripristina pacchetti NuGet.
Aprire la console Gestione pacchetti selezionando Visualizza>altre finestre> Gestione pacchetti Console. Quindi eseguire
Update-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform -r
.
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 esistente.
Funzionamento dell'esempio
Pacchetti NuGet middleware OWIN
È possibile configurare la pipeline di autenticazione con l'autenticazione basata su cookie usando OpenID Connessione in ASP.NET con pacchetti middleware OWIN. È possibile installare questi pacchetti eseguendo i comandi seguenti in Gestione pacchetti Console in 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 all'avvio del processo di hosting. In questa guida introduttiva il file startup.cs si trova nella cartella radice. Il codice seguente illustra i parametri usati 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
}
}
);
}
Where Descrizione ClientId
ID applicazione dell'applicazione registrata nel portale di Azure. Authority
Endpoint del servizio token di sicurezza (STS) per l'autenticazione dell'utente. In genere https://login.microsoftonline.com/{tenant}/v2.0
è per il cloud pubblico. In tale URL { tenant} è il nome del tenant, l'ID tenant ocommon
per un riferimento all'endpoint comune. L'endpoint comune viene usato per le applicazioni multi-tenant.RedirectUri
URL in cui gli utenti vengono inviati dopo l'autenticazione in Microsoft Identity Platform. PostLogoutRedirectUri
URL in cui gli utenti vengono inviati dopo la disconnessione. Scope
Elenco di ambiti richiesti, separati da spazi. ResponseType
Richiesta che la risposta dall'autenticazione contiene un codice di autorizzazione e un token ID. TokenValidationParameters
Elenco di parametri per la convalida del token. In questo caso, ValidateIssuer
è impostato sufalse
per indicare che può accettare accessi da qualsiasi tipo di account personale, aziendale o dell'istituto di istruzione.Notifications
Elenco di delegati che possono essere eseguiti sui OpenIdConnect
messaggi.
Nota
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
La richiesta di una richiesta di autenticazione tramite questo metodo è facoltativa. 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 le 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 decorati dall'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
Per una guida dettagliata completa sulla creazione di applicazioni e nuove funzionalità, inclusa una spiegazione completa di questo argomento di avvio rapido, provare l'esercitazione ASP.NET.