L’introduzione di ASP.NET Core 10 Identity segna un’evoluzione significativa nel panorama dell’autenticazione e autorizzazione per le applicazioni .NET. Questa nuova iterazione non si limita a perfezionare le funzionalità esistenti, ma introduce innovazioni mirate a migliorare la sicurezza, l’esperienza utente e l’osservabilità delle applicazioni web moderne.
Supporto Integrato per le Passkey (Passkeys Support)
Una delle novità più rilevanti in ASP.NET Core 10 Identity è il supporto nativo per le Passkey.
Le Passkey rappresentano il futuro dell’autenticazione, offrendo un’alternativa alle password resistente al phishing e notevolmente più user-friendly. Basate sugli standard FIDO2 e WebAuthn, le Passkey consentono agli utenti di autenticarsi utilizzando credenziali crittografiche associate al proprio dispositivo (come Windows Hello, Touch ID o Face ID), eliminando la necessità di memorizzare e inserire una password tradizionale.
- Resistenza al Phishing: A differenza delle password, le Passkey sono vincolate al dominio dell’applicazione e non possono essere intercettate e riutilizzate da un malintenzionato su un sito diverso.
- Esperienza Utente Migliorata: L’accesso avviene tramite un semplice gesto o la biometria, rendendo il processo di login più rapido e meno frustrante.
- Integrazione Semplificata: Il framework Identity ora include componenti built-in per la registrazione e l’autenticazione tramite Passkey, consentendo agli sviluppatori di adottare questa tecnologia senza dipendenze esterne complesse, integrandosi perfettamente con l’infrastruttura Identity esistente.
Nuove Metriche di Autenticazione e Autorizzazione
Per le applicazioni con requisiti di sicurezza rigorosi o elevati volumi di traffico di autenticazione, la capacità di monitorare le operazioni di sicurezza è cruciale. ASP.NET Core 10 introduce nuove metriche integrate per l’autenticazione e l’autorizzazione.
Queste metriche sono esposte tramite l’API System.Diagnostics.Metrics e si integrano senza soluzione di continuità con strumenti di observability standard del settore, come OpenTelemetry, Prometheus e Azure Monitor. Questo fornisce agli sviluppatori e agli operatori una visione approfondita della security posture e delle performance del sistema di identità.
Le Metriche di ASP.NET Core Identity offrono dati dettagliati su:
- Tentativi di login (successi e fallimenti).
- Operazioni di gestione utente.
- Performance delle operazioni di hashing delle password.
Tale strumentazione è fondamentale per diagnosticare problemi di sicurezza (es. tentativi di attacchi brute-force o anomalie di accesso) e per ottimizzare le prestazioni in scenari di produzione.
Miglioramenti alla Cookie Authentication per le API
Tradizionalmente, in ASP.NET Core, una richiesta non autenticata o non autorizzata a un endpoint API (come Minimal API o Controller) poteva causare un redirect automatico alla pagina di login, un comportamento non ideale per le API che dovrebbero rispondere con un codice di stato appropriato.
In .NET 10, è stata rimossa la logica speciale che in precedenza reindirizzava le richieste non autorizzate/non autenticate provenienti da endpoint API noti. Di default, la cookie authentication non emetterà più un redirect quando una richiesta non autenticata o non autorizzata viene fatta verso un endpoint API, rendendo la Cookie Authentication più API friendly. Questo allineamento è cruciale per la creazione di applicazioni Single Page Application (SPA) e Minimal API, dove l’aspettativa è ricevere una risposta HTTP 401 Unauthorized o HTTP 403 Forbidden anziché un reindirizzamento non gestito.
Miglioramenti per Blazor Web App Security
L’integrazione di Identity con le Blazor Web App è stata rafforzata. Sono stati forniti nuovi sample e una documentazione migliorata per la gestione della sicurezza in scenari complessi:
- Esempi Aggiornati: Nuovi sample per l’integrazione di Blazor Web App con provider OpenID Connect (OIDC) come Entra ID (precedentemente Azure AD), Auth0, o Okta.
- Integrazione API Esterna: Gli esempi ora includono un progetto Web API separato (MinimalApiJwt) per dimostrare come configurare e chiamare in modo sicuro un’API Web esterna, gestendo correttamente i token e i refresh token con un gestore di token e un named HTTP client.
- Token Cache Distribuita: Nuove linee guida sull’uso di una cache di token distribuita crittografata per gli scenari di web farm hosting, garantendo la corretta gestione dello stato utente su più istanze di server.
Queste rifiniture sottolineano l’impegno di Microsoft nel rendere l’esperienza di sicurezza in Blazor coerente, robusta e aderente alle best practice del settore.
Configurazione e Semplificazione
Il continuo sforzo per la semplificazione dell’esperienza di sviluppo in ASP.NET Core si estende anche a Identity:
- Configurazione con JSON: La documentazione e gli esempi aggiornati ora mostrano come configurare le soluzioni Identity utilizzando i file di impostazioni dell’app (appsettings.json), offrendo maggiore flessibilità rispetto alla configurazione strettamente basata su codice C# nel file Program.cs.
- Gestione delle Claims: Sebbene sia una feature più ampia di .NET 10 (con C# 14), la possibilità di utilizzare gli Extension Members per semplificare la gestione delle claims può portare a un codice più pulito e leggibile all’interno dei componenti che interagiscono con Identity e le claims utente.