AUTENTICAZIONE E AUTORIZZAZIONE

ACCEDERE ALLA UI DI ASP.NET CORE IDENTITY

NET CORE

Un’area è un contenitore logico o meglio un gruppo di funzionalità affini fra loro. In questo post vedremo la funzionalità, o meglio l’interfaccia utente che Identity ci mette a disposizione per registrarci, nonché come accedere alle varie sezioni del profilo utente. Parleremo dell’oggetto User e dell’oggetto SignInManager. Modificheremo infine la View _LogingPartial.cshtml

Area Identity

Adesso impostiamo la View di Layout in modo da avere la stessa interfaccia anche in Identity creando un file _ViewStart.cshtml nella struttura di directory riportata.

View di Layout

IMPOSTARE I CRITERI DI COMPLESSITA’ DELLA PASSWORD

Identity ci mette a disposizione un modo semplice per impostare la password. Vediamo il tutto con una slide.

Password

A volte gli utenti scelgono password troppo prevedibili e facili da indovinare per un malintenzionato come riportato nella slide. La password comunque rispecchia i criteri di complessità impostati.

Password prevedibile
Logica personalizzata
Startup

HASHING E SICUREZZA DELLA PASSWORD

La classe CommonPasswordValidator.cs la trovi sotto il percorso Model/Identity. Dopo la registrazione nella tabella AspNetUsers, che puoi consultare, non rimane traccia della password, ma viene creato un hash frutto di molte elaborazioni 10.000 per essere precisi.

Password Hash

ACCEDERE ALLE PROPRIETA’ DELL’UTENTE CON L’OGGETTO USER.

Al momento della registrazione avviene contestualmente anche l’autenticazione, se vado a visitare altre pagine del sito, Identity sa che sono l’utente che si è registrato con una certa e-mail e password. Infatti, se esaminiamo gli strumenti del Browser vedremo che è presente un cookie di autenticazione. Quindi il cookie di autenticazione viene emesso o dopo essersi registrati o dopo aver fatto il login. Però perché continuiamo a vedere i link accedi e login? Dobbiamo modificare la View _LoginPartial.cshtml per vedere le informazioni sull’utente.

Autenticazione

Vediamo l’oggetto User.

Oggetto User

È anche disponibile nei vari controller.

User

Anche nei nostri componenti grazie alla dependency injection riceviamo User da HttpContext.

User

Supponiamo che entri una richiesta HTTP, è in questo momento che ASP.NET Core crea questo oggetto HttpContext, che rappresenta questa specifica richiesta. Contiene delle informazioni che la descrivono come il percorso, il verbo GET, POST o altro, e perché no anche se contiene dei cookie, per cui questo oggetto attraversa tutti i Middleware fino ad arrivare al Middleware di autenticazione. Questo Middleware tramite il cookie di autenticazione andrà a vedere se è valido e se lo è costruirà l’identità dell’utente, inserita all’interno dell’oggetto User che così accompagna tutta la richiesta fino a che non viene prodotta una risposta per l’utente.

Middleware
User

Noi siamo in grado di gestire quanti e quali Claim inserire all’interno di una ClaimsIdentity.

Claim
Percorsi

In un applicazione ci possono essere più meccanismi di autenticazione, per sapere se un utente si è autenticato con Identity usiamo il SignInManager<TUser>.

SignInManager

Vediamo ora com’è la View _LoginPartial.cshtml.

Partial

LINK AL CODICE SU GITHUB

GITHUB

Scaricare il codice della sezione17 oppure il ramo master o clonare il repository GITHUB per avere a disposizione tutte le sezioni nel tuo editor preferito. Consulta il file README.md per reperire user e password per inviare e-mail con mailtrap.io. Inoltre devi reperire i codici per implementare il ReCaptcha. Sotto ti riporto un’immagine dal sito di Google.

Recaptcha