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.
Per Mike Rousos
L'autenticazione è il processo di determinazione dell'identità di un utente. Authorization è il processo per determinare se un utente ha access a una risorsa. In ASP.NET Core l'autenticazione viene gestita dal servizio di autenticazione, IAuthenticationService, usata dall'autenticazione middleware. Il servizio di autenticazione usa i gestori di autenticazione registrati per completare le azioni correlate all'autenticazione. Le azioni correlate all'autenticazione includono ad esempio:
- Autenticazione di un utente.
- Risposta quando un utente non autenticato tenta di access una risorsa con restrizioni.
I gestori di autenticazione registrati e le relative opzioni di configurazione si definiscono "schemi".
Gli schemi di autenticazione vengono specificati registrando i servizi di autenticazione in :
- Tramite una chiamata a un metodo di estensione specifico dello schema dopo una chiamata a , ad esempio o . Questi metodi di estensione usano per registrare gli schemi con le impostazioni appropriate.
- Meno comunemente, tramite una chiamata diretta a .
Ad esempio, il codice seguente registra i servizi di autenticazione e i gestori per e gli schemi di autenticazione del token di connessione JWT:
builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(JwtBearerDefaults.AuthenticationScheme,
options => builder.Configuration.Bind("JwtSettings", options))
.AddCookie(CookieAuthenticationDefaults.AuthenticationScheme,
options => builder.Configuration.Bind("CookieSettings", options));
Il parametro è il nome dello schema da usare per impostazione predefinita quando non è richiesto uno schema specifico.
Se vengono usati più schemi, i criteri di autorizzazione (o gli attributi di autorizzazione) possono specificare uno o più schemi di autenticazione da cui dipendono per autenticare l'utente. Nell'esempio precedente lo schema di autenticazione può essere usato specificando il relativo nome ( per impostazione predefinita, anche se è possibile specificare un nome diverso quando si chiama ).
In alcuni casi, la chiamata a viene eseguita automaticamente da altri metodi di estensione. Ad esempio, quando si usa ASP.NET Core Identity, AddAuthentication viene chiamato internamente.
Il middleware di autenticazione viene aggiunto in chiamando . La chiamata a registra il middleware che usa gli schemi di autenticazione registrati in precedenza. Chiamare prima di qualsiasi middleware che dipenda dagli utenti autenticati.
Concetti relativi all'autenticazione
Con l'autenticazione viene fornito l'oggetto rispetto a cui prendere decisioni sulle autorizzazioni. Per lo schema di autenticazione sono disponibili più approcci per selezionare il gestore di autenticazione responsabile della generazione del set corretto di attestazioni:
- Schema di autenticazione
- Schema di autenticazione predefinito, illustrato nelle due sezioni successive.
- Impostazione diretta di .
Quando è registrato un solo schema di autenticazione, diventa lo schema predefinito. Se vengono registrati più schemi e lo schema predefinito non viene specificato, è necessario specificare uno schema nell'attributo authorize; in caso contrario, viene generato l'errore seguente:
InvalidOperationException: Non è stato specificato alcun authenticationScheme e non è stato trovato alcun DefaultAuthenticateScheme. Gli schemi predefiniti possono essere impostati usando AddAuthentication(string defaultScheme) o AddAuthentication(ActionAuthenticationOptions configureOptions).
DefaultScheme
Quando è registrato un solo schema di autenticazione, il singolo schema di autenticazione:
- Viene usato automaticamente come .
- Elimina la necessità di specificare il in o in .
Per disabilitare automaticamente l'uso dello schema di autenticazione singolo come , chiamare .
Schema di autenticazione
Lo schema di autenticazione può selezionare quale gestore di autenticazione è responsabile di generare il set corretto di attestazioni. Per altre informazioni, vedere Autorizzare con uno schema specifico.
Uno schema di autenticazione è un nome che corrisponde a:
- Gestore di autenticazione.
- Opzioni per configurare quella specifica istanza del gestore.
Gli schemi sono utili come meccanismo per autenticare, richiedere la verifica e proibire i comportamenti del gestore associato. Ad esempio, un criterio di autorizzazione può usare nomi di schema per specificare uno o più schemi di autenticazione da usare per autenticare l'utente. Quando si configura l'autenticazione, in genere si specifica lo schema di autenticazione predefinito. Lo schema predefinito viene usato a meno che una risorsa non richieda uno schema specifico. È anche possibile:
- Specificare schemi predefiniti diversi da usare per autenticare, richiedere la verifica e proibire azioni.
- Combinare più schemi in uno usando schemi di criteri.
Gestore di autenticazione
Un gestore di autenticazione:
- È un tipo che implementa il comportamento di uno schema.
- È derivato da o da .
- Ha la responsabilità principale di autenticare gli utenti.
In base alla configurazione dello schema di autenticazione e al contesto della richiesta in ingresso, i gestori di autenticazione:
- Creare oggetti che rappresentano l'identità dell'utente se l'autenticazione ha esito positivo.
- Restituiscono 'nessun risultato' o 'errore' se l'autenticazione non riesce.
- Disporre di metodi per le azioni di sfida e di blocco quando gli utenti tentano di accedere a risorse:
- Non sono autorizzati ad accedere (vietato).
- Non sono autenticati (richiesta di verifica).
Confronto tra e
è la classe per l'autenticazione che richiede un passaggio di autenticazione remota. Al termine del passaggio di autenticazione remota, il gestore richiama l'insieme impostato dal gestore. Il gestore completa la fase di autenticazione usando le informazioni passate al percorso di callback . OAuth 2.0 e OIDC entrambi usano questo modello. JWT e cookie non perché possono usare direttamente l'intestazione del bearer e per l'autenticazione. In questo caso il provider ospitato in remoto:
- È il provider di autenticazione.
- Gli esempi includono Facebook, Twitter, Google, Microsoft e qualsiasi altro provider OIDC che gestisce l'autenticazione degli utenti usando il meccanismo dei gestori.
Autenticare
L'azione di autenticazione di uno schema di autenticazione è responsabile della costruzione dell'identità dell'utente in base al contesto della richiesta. Restituisce un che indica se l'autenticazione è riuscita e, in tal caso, l'identità dell'utente in un ticket di autenticazione. Vedi . Gli esempi di autenticazione includono:
- Uno schema di autenticazione che costruisce l'identità dell'utente dai cookie.
- Uno schema di connessione JWT che deserializza e convalida un token di connessione JWT per costruire l'identità dell'utente.
Sfida
Una richiesta di verifica dell'autenticazione viene richiamata dall'autorizzazione quando un utente non autenticato richiede un endpoint per cui è necessaria l'autenticazione. Una sfida di autenticazione viene generata, ad esempio, quando un utente anonimo richiede una risorsa con restrizioni o segue un collegamento di accesso. L'autorizzazione richiama una richiesta di verifica usando gli schemi di autenticazione specificati o l'impostazione predefinita se non è specificato alcuno. Vedi . Gli esempi di richiesta di verifica dell'autenticazione includono:
- Uno schema di autenticazione che reindirizza l'utente a una pagina di accesso.
- Uno schema JWT che restituisce un risultato 401 con un'intestazione .
Un'azione di verifica deve informare l'utente del meccanismo di autenticazione da usare per accedere alla risorsa richiesta.
Proibizione
L'azione di divieto di uno schema di autenticazione viene invocata dall'autorizzazione quando un utente autenticato tenta di accedere a una risorsa a cui non è consentito accedere. Vedi . Gli esempi di proibizione dell'autenticazione includono:
- Uno schema di autenticazione cookie che reindirizza l'utente a una pagina che indica che l'accesso è stato vietato.
- Uno schema di token di connessione JTW che restituisce un risultato 403.
- Schema di autenticazione personalizzato che reindirizza a una pagina in cui l'utente può richiedere access alla risorsa.
Un'azione di proibizione può informare l'utente che:
- Sono autenticati.
- Non è consentito loro di accedere alla risorsa richiesta.
Per informazioni sulle differenze tra la richiesta di verifica e la proibizione, vedere i collegamenti seguenti:
- Sfida e vieta con un gestore di risorse operative.
- Differenze tra richiesta di verifica e proibizione.
Provider di autenticazione per tenant
ASP.NET Core non dispone di una soluzione predefinita per l'autenticazione multi-tenant. Sebbene sia possibile che i clienti ne scrivono una usando le funzionalità predefinite, è consigliabile prendere in considerazione Orchard Core, ABP Framework o Finbuckle.MultiTenant per l'autenticazione multi-tenant.
Orchard Core è:
- Un framework di app open source, modulare e multi-tenant creato con ASP.NET Core.
- Un sistema di gestione dei contenuti (CMS) basato su tale framework di app.
Consultare il codice sorgente di Orchard Core per un esempio di fornitori di autenticazione per tenant.
ABP Framework supporta vari schemi architetturali, tra cui modularità, microservizi, progettazione basata su dominio e multi-tenancy. Vedi il codice sorgente di ABP Framework su GitHub.
Finbuckle.MultiTenant:
- open source
- Fornisce la risoluzione del problema del tenant
- Leggerezza
- Fornisce l'isolamento dei dati
- Configurare il comportamento dell'app in modo univoco per ogni tenant
Risorse aggiuntive
- Autorizzare con uno schema specifico in ASP.NET Core
- Schemi politici in ASP.NET Core
- Creare un'app ASP.NET Core con i dati utente protetti dall'autorizzazione
- Richiedere utenti autenticati a livello globale
- GitHub problema relativo all'uso di più schemi di autenticazione
Per Mike Rousos
L'autenticazione è il processo di determinazione dell'identità di un utente. Authorization è il processo per determinare se un utente ha access a una risorsa. In ASP.NET Core l'autenticazione viene gestita dal servizio di autenticazione, IAuthenticationService, usata dall'autenticazione middleware. Il servizio di autenticazione usa i gestori di autenticazione registrati per completare le azioni correlate all'autenticazione. Le azioni correlate all'autenticazione includono ad esempio:
- Autenticazione di un utente.
- Risposta quando un utente non autenticato tenta di access una risorsa con restrizioni.
I gestori di autenticazione registrati e le relative opzioni di configurazione si definiscono "schemi".
Gli schemi di autenticazione vengono specificati registrando i servizi di autenticazione in :
- Tramite una chiamata a un metodo di estensione specifico dello schema dopo una chiamata a , ad esempio o . Questi metodi di estensione usano per registrare gli schemi con le impostazioni appropriate.
- Meno comunemente, tramite una chiamata diretta a .
Ad esempio, il codice seguente registra i servizi di autenticazione e i gestori per e gli schemi di autenticazione del token di connessione JWT:
builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(JwtBearerDefaults.AuthenticationScheme,
options => builder.Configuration.Bind("JwtSettings", options))
.AddCookie(CookieAuthenticationDefaults.AuthenticationScheme,
options => builder.Configuration.Bind("CookieSettings", options));
Il parametro è il nome dello schema da usare per impostazione predefinita quando non è richiesto uno schema specifico.
Se vengono usati più schemi, i criteri di autorizzazione (o gli attributi di autorizzazione) possono specificare uno o più schemi di autenticazione da cui dipendono per autenticare l'utente. Nell'esempio precedente lo schema di autenticazione può essere usato specificando il relativo nome ( per impostazione predefinita, anche se è possibile specificare un nome diverso quando si chiama ).
In alcuni casi, la chiamata a viene eseguita automaticamente da altri metodi di estensione. Ad esempio, quando si usa ASP.NET Core Identity, AddAuthentication viene chiamato internamente.
Il middleware di autenticazione viene aggiunto in chiamando . La chiamata a registra il middleware che usa gli schemi di autenticazione registrati in precedenza. Chiamare prima di qualsiasi middleware che dipenda dagli utenti autenticati.
Concetti relativi all'autenticazione
Con l'autenticazione viene fornito l'oggetto rispetto a cui prendere decisioni sulle autorizzazioni. Per lo schema di autenticazione sono disponibili più approcci per selezionare il gestore di autenticazione responsabile della generazione del set corretto di attestazioni:
- Schema di autenticazione
- Lo schema di autenticazione predefinito, descritto nella sezione successiva.
- Impostazione diretta di .
Non esiste una scansione automatica degli schemi. Se non viene specificato lo schema predefinito, è necessario specificarlo nell'attributo authorize, altrimenti viene generato l'errore seguente:
InvalidOperationException: Non è stato specificato alcun authenticationScheme e non è stato trovato alcun DefaultAuthenticateScheme. Gli schemi predefiniti possono essere impostati usando AddAuthentication(string defaultScheme) o AddAuthentication(ActionAuthenticationOptions configureOptions).
Schema di autenticazione
Lo schema di autenticazione può selezionare quale gestore di autenticazione è responsabile di generare il set corretto di attestazioni. Per altre informazioni, vedere Autorizzare con uno schema specifico.
Uno schema di autenticazione è un nome che corrisponde a:
- Gestore di autenticazione.
- Opzioni per configurare quella specifica istanza del gestore.
Gli schemi sono utili come meccanismo per autenticare, richiedere la verifica e proibire i comportamenti del gestore associato. Ad esempio, un criterio di autorizzazione può usare nomi di schema per specificare uno o più schemi di autenticazione da usare per autenticare l'utente. Quando si configura l'autenticazione, in genere si specifica lo schema di autenticazione predefinito. Lo schema predefinito viene usato a meno che una risorsa non richieda uno schema specifico. È anche possibile:
- Specificare schemi predefiniti diversi da usare per autenticare, richiedere la verifica e proibire azioni.
- Combinare più schemi in uno usando schemi di criteri.
Gestore di autenticazione
Un gestore di autenticazione:
- È un tipo che implementa il comportamento di uno schema.
- È derivato da o da .
- Ha la responsabilità principale di autenticare gli utenti.
In base alla configurazione dello schema di autenticazione e al contesto della richiesta in ingresso, i gestori di autenticazione:
- Creare oggetti che rappresentano l'identità dell'utente se l'autenticazione ha esito positivo.
- Restituiscono 'nessun risultato' o 'errore' se l'autenticazione non riesce.
- Disporre di metodi per sfidare e proibire le azioni quando gli utenti tentano di accedere alle risorse.
- Non sono autorizzati ad accedere ed è proibito.
- Non sono autenticati (richiesta di verifica).
Confronto tra e
è la classe per l'autenticazione che richiede un passaggio di autenticazione remota. Al termine del passaggio di autenticazione remota, il gestore richiama l'insieme impostato dal gestore. Il gestore completa la fase di autenticazione usando le informazioni passate al percorso di callback . OAuth 2.0 e OIDC entrambi usano questo modello. JWT e cookie non perché possono usare direttamente l'intestazione del bearer e per l'autenticazione. In questo caso il provider ospitato in remoto:
- È il provider di autenticazione.
- Gli esempi includono Facebook, Twitter, Google, Microsoft e qualsiasi altro provider OIDC che gestisce l'autenticazione degli utenti usando il meccanismo dei gestori.
Autenticare
L'azione di autenticazione di uno schema di autenticazione è responsabile della costruzione dell'identità dell'utente in base al contesto della richiesta. Restituisce un che indica se l'autenticazione è riuscita e, in tal caso, l'identità dell'utente in un ticket di autenticazione. Vedi . Gli esempi di autenticazione includono:
- Uno schema di autenticazione che costruisce l'identità dell'utente dai cookie.
- Uno schema di connessione JWT che deserializza e convalida un token di connessione JWT per costruire l'identità dell'utente.
Sfida
Una richiesta di verifica dell'autenticazione viene richiamata dall'autorizzazione quando un utente non autenticato richiede un endpoint per cui è necessaria l'autenticazione. Una sfida di autenticazione viene generata, ad esempio, quando un utente anonimo richiede una risorsa con restrizioni o segue un collegamento di accesso. L'autorizzazione richiama una richiesta di verifica usando gli schemi di autenticazione specificati o l'impostazione predefinita se non è specificato alcuno. Vedi . Gli esempi di richiesta di verifica dell'autenticazione includono:
- Uno schema di autenticazione che reindirizza l'utente a una pagina di accesso.
- Uno schema JWT che restituisce un risultato 401 con un'intestazione .
Un'azione di verifica deve informare l'utente del meccanismo di autenticazione da usare per accedere alla risorsa richiesta.
Proibizione
L'azione di blocco di uno schema di autenticazione viene invocata dall'autorizzazione quando un utente autenticato tenta di accedere a una risorsa a cui non è consentito accedere. Vedi . Gli esempi di proibizione dell'autenticazione includono:
- Uno schema di autenticazione cookie che reindirizza l'utente a una pagina che indica che l'accesso è stato vietato.
- Uno schema di token di connessione JTW che restituisce un risultato 403.
- Schema di autenticazione personalizzato che reindirizza a una pagina in cui l'utente può richiedere access alla risorsa.
Un'azione di proibizione può informare l'utente che:
- Sono autenticati.
- Non è consentito loro accedere alla risorsa richiesta.
Per informazioni sulle differenze tra la richiesta di verifica e la proibizione, vedere i collegamenti seguenti:
- Sfida e vieta con un gestore di risorse operative.
- Differenze tra richiesta di verifica e proibizione.
Provider di autenticazione per tenant
ASP.NET Core non dispone di una soluzione predefinita per l'autenticazione multi-tenant. Sebbene sia possibile che i clienti ne scrivono una usando le funzionalità predefinite, è consigliabile prendere in considerazione Orchard Core o ABP Framework per l'autenticazione multi-tenant.
Orchard Core è:
- Un framework di app open source, modulare e multi-tenant creato con ASP.NET Core.
- Un sistema di gestione dei contenuti (CMS) basato su tale framework di app.
Vedi il codice sorgente di Orchard Core per un esempio di provider di autenticazione per tenant (inquilini).
ABP Framework supporta vari schemi architetturali, tra cui modularità, microservizi, progettazione basata su dominio e multi-tenancy. Vedi il codice sorgente di ABP Framework su GitHub.
Risorse aggiuntive
- Autorizzare con uno schema specifico in ASP.NET Core
- Schemi politici in ASP.NET Core
- Creare un'app ASP.NET Core con i dati utente protetti dall'autorizzazione
- Richiedere utenti autenticati a livello globale
- GitHub problema relativo all'uso di più schemi di autenticazione
Per Mike Rousos
L'autenticazione è il processo di determinazione dell'identità di un utente. Authorization è il processo per determinare se un utente ha access a una risorsa. In ASP.NET Core l'autenticazione viene gestita dal servizio di autenticazione, IAuthenticationService, usata dall'autenticazione middleware. Il servizio di autenticazione usa i gestori di autenticazione registrati per completare le azioni correlate all'autenticazione. Le azioni correlate all'autenticazione includono ad esempio:
- Autenticazione di un utente.
- Risposta quando un utente non autenticato tenta di access una risorsa con restrizioni.
I gestori di autenticazione registrati e le relative opzioni di configurazione si definiscono "schemi".
Gli schemi di autenticazione vengono specificati registrando i servizi di autenticazione in :
- Tramite una chiamata a un metodo di estensione specifico dello schema dopo una chiamata a , ad esempio o . Questi metodi di estensione usano per registrare gli schemi con le impostazioni appropriate.
- Meno comunemente, tramite una chiamata diretta a .
Ad esempio, il codice seguente registra i servizi di autenticazione e i gestori per e gli schemi di autenticazione del token di connessione JWT:
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(JwtBearerDefaults.AuthenticationScheme,
options => Configuration.Bind("JwtSettings", options))
.AddCookie(CookieAuthenticationDefaults.AuthenticationScheme,
options => Configuration.Bind("CookieSettings", options));
Il parametro è il nome dello schema da usare per impostazione predefinita quando non è richiesto uno schema specifico.
Se vengono usati più schemi, i criteri di autorizzazione (o gli attributi di autorizzazione) possono specificare uno o più schemi di autenticazione da cui dipendono per autenticare l'utente. Nell'esempio precedente lo schema di autenticazione può essere usato specificando il relativo nome ( per impostazione predefinita, anche se è possibile specificare un nome diverso quando si chiama ).
In alcuni casi, la chiamata a viene eseguita automaticamente da altri metodi di estensione. Ad esempio, quando si usa ASP.NET Core Identity, AddAuthentication viene chiamato internamente.
Il middleware di autenticazione viene aggiunto in chiamando . La chiamata a registra il middleware che usa gli schemi di autenticazione registrati in precedenza. Chiamare prima di qualsiasi middleware che dipenda dagli utenti autenticati. Quando si usa il routing degli endpoint, la chiamata a deve essere effettuata:
- Dopo , in modo che le informazioni sulla route siano disponibili per le decisioni sull'autenticazione.
- Prima di , in modo che gli utenti vengano autenticati prima di accedere agli endpoint.
Concetti relativi all'autenticazione
Con l'autenticazione viene fornito l'oggetto rispetto a cui prendere decisioni sulle autorizzazioni. Per lo schema di autenticazione sono disponibili più approcci per selezionare il gestore di autenticazione responsabile della generazione del set corretto di attestazioni:
- Schema di autenticazione
- Lo schema di autenticazione predefinito, descritto nella sezione successiva.
- Impostazione diretta di .
Non esiste una scansione automatica degli schemi. Se non viene specificato lo schema predefinito, è necessario specificarlo nell'attributo authorize, altrimenti viene generato l'errore seguente:
InvalidOperationException: Non è stato specificato alcun authenticationScheme e non è stato trovato alcun DefaultAuthenticateScheme. Gli schemi predefiniti possono essere impostati usando AddAuthentication(string defaultScheme) o AddAuthentication(ActionAuthenticationOptions configureOptions).
Schema di autenticazione
Lo schema di autenticazione può selezionare quale gestore di autenticazione è responsabile di generare il set corretto di attestazioni. Per altre informazioni, vedere Autorizzare con uno schema specifico.
Uno schema di autenticazione è un nome che corrisponde a:
- Gestore di autenticazione.
- Opzioni per configurare quella specifica istanza del gestore.
Gli schemi sono utili come meccanismo per autenticare, richiedere la verifica e proibire i comportamenti del gestore associato. Ad esempio, un criterio di autorizzazione può usare nomi di schema per specificare uno o più schemi di autenticazione da usare per autenticare l'utente. Quando si configura l'autenticazione, in genere si specifica lo schema di autenticazione predefinito. Lo schema predefinito viene usato a meno che una risorsa non richieda uno schema specifico. È anche possibile:
- Specificare schemi predefiniti diversi da usare per autenticare, richiedere la verifica e proibire azioni.
- Combinare più schemi in uno usando schemi di criteri.
Gestore di autenticazione
Un gestore di autenticazione:
- È un tipo che implementa il comportamento di uno schema.
- È derivato da o da .
- Ha la responsabilità principale di autenticare gli utenti.
In base alla configurazione dello schema di autenticazione e al contesto della richiesta in ingresso, i gestori di autenticazione:
- Creare oggetti che rappresentano l'identità dell'utente se l'autenticazione ha esito positivo.
- Restituiscono 'nessun risultato' o 'errore' se l'autenticazione non riesce.
- Disporre di metodi per sfidare e proibire le azioni quando gli utenti tentano di accedere alle risorse.
- Non sono autorizzati ad accedere ed è proibito.
- Non sono autenticati (richiesta di verifica).
Confronto tra e
è la classe per l'autenticazione che richiede un passaggio di autenticazione remota. Al termine del passaggio di autenticazione remota, il gestore richiama l'insieme impostato dal gestore. Il gestore completa la fase di autenticazione usando le informazioni passate al percorso di callback . OAuth 2.0 e OIDC entrambi usano questo modello. JWT e cookie non perché possono usare direttamente l'intestazione del bearer e per l'autenticazione. In questo caso il provider ospitato in remoto:
- È il provider di autenticazione.
- Gli esempi includono Facebook, Twitter, Google, Microsoft e qualsiasi altro provider OIDC che gestisce l'autenticazione degli utenti usando il meccanismo dei gestori.
Autenticare
L'azione di autenticazione di uno schema di autenticazione è responsabile della costruzione dell'identità dell'utente in base al contesto della richiesta. Restituisce un che indica se l'autenticazione è riuscita e, in tal caso, l'identità dell'utente in un ticket di autenticazione. Vedi . Gli esempi di autenticazione includono:
- Uno schema di autenticazione che costruisce l'identità dell'utente dai cookie.
- Uno schema di connessione JWT che deserializza e convalida un token di connessione JWT per costruire l'identità dell'utente.
Sfida
Una richiesta di verifica dell'autenticazione viene richiamata dall'autorizzazione quando un utente non autenticato richiede un endpoint per cui è necessaria l'autenticazione. Una sfida di autenticazione viene generata, ad esempio, quando un utente anonimo richiede una risorsa con restrizioni o segue un collegamento di accesso. L'autorizzazione richiama una richiesta di verifica usando gli schemi di autenticazione specificati o l'impostazione predefinita se non è specificato alcuno. Vedi . Gli esempi di richiesta di verifica dell'autenticazione includono:
- Uno schema di autenticazione che reindirizza l'utente a una pagina di accesso.
- Uno schema JWT che restituisce un risultato 401 con un'intestazione .
Un'azione di verifica deve informare l'utente del meccanismo di autenticazione da usare per accedere alla risorsa richiesta.
Proibizione
L'azione di blocco di uno schema di autenticazione viene invocata dall'autorizzazione quando un utente autenticato tenta di accedere a una risorsa a cui non è consentito accedere. Vedi . Gli esempi di proibizione dell'autenticazione includono:
- Uno schema di autenticazione cookie che reindirizza l'utente a una pagina che indica che l'accesso è stato vietato.
- Uno schema di token di connessione JTW che restituisce un risultato 403.
- Schema di autenticazione personalizzato che reindirizza a una pagina in cui l'utente può richiedere access alla risorsa.
Un'azione di proibizione può informare l'utente che:
- Sono autenticati.
- Non è consentito loro accedere alla risorsa richiesta.
Per informazioni sulle differenze tra la richiesta di verifica e la proibizione, vedere i collegamenti seguenti:
- Sfida e vieta con un gestore di risorse operative.
- Differenze tra richiesta di verifica e proibizione.
Provider di autenticazione per tenant
ASP.NET Core framework non ha una soluzione predefinita per l'autenticazione multi-tenant. Sebbene sia possibile che i clienti scrivano un'app con l'autenticazione multi-tenant, è consigliabile usare uno dei framework applicazioni ASP.NET Core seguenti che supportano l'autenticazione multi-tenant.
Orchard Core è un framework di app open source, modulare e multi-tenant compilato con ASP.NET Core che fornisce anche un sistema di gestione dei contenuti (CMS). Vedi il codice sorgente di Orchard Core per un esempio di provider di autenticazione per tenant (inquilini).
ABP Framework supporta diversi modelli di architettura, tra cui modularità, microservizi, progettazione basata su dominio e multi-tenancy. Vedi il codice sorgente di ABP Framework su GitHub.
Risorse aggiuntive
- Autorizzare con uno schema specifico in ASP.NET Core
- Schemi politici in ASP.NET Core
- Creare un'app ASP.NET Core con i dati utente protetti dall'autorizzazione
- Richiedere utenti autenticati a livello globale
- GitHub problema relativo all'uso di più schemi di autenticazione