Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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.
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.
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à.
Aprire la soluzione in Visual Studio (AppModelv2-WebApp-OpenIDConnect-DotNet.sln).
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.
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
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 ClientIdID dell'applicazione registrata nel portale di Azure. AuthorityL'endpoint del servizio token di sicurezza (STS) per l'autenticazione dell'utente. Si tratta in genere di https://login.microsoftonline.com/{tenant}/v2.0per il cloud pubblico. In tale URL, {tenant} è il nome del tuo tenant, l'ID del tuo tenant, ocommonper un riferimento all'endpoint comune. L'endpoint comune viene usato per le applicazioni multi-tenant.RedirectUriL'URL a cui vengono indirizzati gli utenti dopo l'autenticazione con Microsoft Identity Platform. PostLogoutRedirectUriL'URL a cui vengono indirizzati gli utenti dopo la disconnessione. ScopeL'elenco di ambiti richiesti, separati da spazi. ResponseTypeLa richiesta secondo cui la risposta dall'autenticazione contenga un codice di autorizzazione e un token di ID. TokenValidationParametersElenco di parametri per la convalida del token. In questo caso ValidateIssuerè impostato sufalsea indicare che può accettare accessi provenienti da tutti i tipi di account personale, aziendale o dell'istituto di istruzione.NotificationsElenco 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.