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.
Da Valeriy Novytskyy e Rick Anderson
Questo articolo illustra come creare un'app ASP.NET Core che consente agli utenti di accedere usando OAuth 2.0 con le credenziali dei provider di autenticazione esterni.
Nelle sezioni seguenti vengono descritti i provider Facebook, Twitter, Google e Microsoft, usando il progetto iniziale creato in questo articolo. Altri provider sono disponibili in pacchetti di terze parti, ad esempio OpenIddict, AspNet.Security.OAuth.Providers e AspNet.Security.OpenId.Providers.
Consentire agli utenti di accedere con le credenziali esistenti è utile per gli utenti e sposta molte delle complessità della gestione del processo di accesso in una terza parte.
Creare un nuovo progetto ASP.NET Core
- Selezionare il modello App Web ASP.NET Core. Seleziona OK.
- Nel campo di immissione Tipo di autenticazione, selezionare Account individuali.
Applicare le migrazioni
- Eseguire l'app e selezionare il collegamento Registra.
- Immettere l'indirizzo di posta elettronica e la password per il nuovo account, quindi selezionare Registra.
- Segui le istruzioni per applicare le migrazioni.
Inoltrare le informazioni della richiesta tramite un proxy o un bilanciatore di carico
Se l'app viene distribuita dietro un server proxy o un servizio di bilanciamento del carico, alcune delle informazioni della richiesta originale possono essere inoltrate all'app nelle intestazioni della richiesta. Queste informazioni includono in genere lo schema della richiesta sicura (https), l'host e l'indirizzo IP del client. Le applicazioni non leggono automaticamente queste intestazioni della richiesta per individuare e usare le informazioni della richiesta originale.
Lo schema viene usato nella generazione di collegamenti che influisce sul flusso di autenticazione con provider esterni. La perdita dello schema sicuro (https) fa sì che l'app generi URL di reindirizzamento non sicuri e non corretti.
Utilizzare il middleware delle intestazioni inoltrate per rendere disponibili le informazioni della richiesta originale all'applicazione per l'elaborazione delle richieste.
Per altre informazioni, vedere Configurare ASP.NET Core per l'utilizzo di server proxy e servizi di bilanciamento del carico.
Usare Secret Manager per archiviare i token assegnati dai provider di accesso
I provider di accesso ai social assegnano i token ID applicazione e Segreto dell'applicazione durante il processo di registrazione. La denominazione esatta dei token varia a seconda del provider. Questi token rappresentano le credenziali usate dall'app per accedere all'API del provider. I token costituiscono segreti utente che possono essere collegati alla configurazione dell'app con l'aiuto di Secret Manager. I segreti utente rappresentano un'alternativa più sicura all'archiviazione dei token in un file di configurazione, ad esempio appsettings.json.
Importante
Secret Manager è solo per lo sviluppo e il test locali. Proteggere i segreti di staging e di produzione con il provider di configurazione di Azure Key Vault, che può essere utilizzato anche per lo sviluppo e il test locali se si preferisce non usare il Secret Manager in locale.
Per indicazioni sull'archiviazione dei token assegnati da ogni provider di accesso, vedere Archiviazione sicura dei segreti dell'app in fase di sviluppo in ASP.NET Core.
Configurare i provider di autenticazione
Usare gli articoli seguenti per configurare i provider di accesso e l'app:
- Istruzioni di Facebook
- Istruzioni di Twitter
- Istruzioni di Google
- Istruzioni di Microsoft
- Istruzioni di altri provider
Molteplici provider di autenticazione
Quando l'app richiede più provider, concatenare i metodi di estensione del provider in AddAuthentication:
builder.Services.AddAuthentication()
.AddGoogle(options =>
{
// Google configuration options
})
.AddFacebook(options =>
{
// Facebook configuration options
})
.AddMicrosoftAccount(options =>
{
// Microsoft Account configuration options
})
.AddTwitter(options =>
{
// Twitter configuration options
});
Per indicazioni dettagliate sulla configurazione su ogni provider, vedere i rispettivi articoli.
Facoltativamente, impostare una password
Quando ci si registra con un provider di accesso esterno, non si dispone di una password registrata con l'app. Ciò consente di ridurre la creazione e la memorizzazione di una password per il sito, ma rende anche completamente dipendente dal provider di accesso esterno per l'accesso al sito. Se il provider di accesso esterno non è disponibile, non sarà possibile accedere all'app.
Per creare una password e accedere usando il messaggio di posta elettronica impostato durante il processo di accesso con provider esterni:
- Selezionare il collegamento Alias< di posta elettronica Hello > nell'angolo superiore destro per passare alla visualizzazione Gestisci:
- Selezionare Crea:
- Impostare una password valida ed è possibile usare questa credenziale per accedere con l'indirizzo di posta elettronica.