L’architettura di sicurezza delle Web API ASP.NET è composta da tre livelli principali.
Il livello di hosting funge da interfaccia tra l’API Web e gli stack di rete. Il livello di pipeline del gestore dei messaggi consente di implementare problemi trasversali come l’autenticazione e la memorizzazione nella cache. Il livello di gestione del controller è dove vengono eseguiti i controller e le azioni, i parametri sono vincolati e convalidati e viene creato un messaggio di risposta HTTP. Questo strato contiene anche una pipeline filtro.
Discutiamo brevemente lo scopo di ciascun componente nella pipeline delle Web API:
- Open Web Interface for .NET (OWIN) è la nuova infrastruttura di hosting open standard.
Microsoft ha creato il proprio framework chiamato Katana su OWIN e tutte le tecniche di sicurezza delle Web API come i metodi di autenticazione (ad esempio, l’autenticazione basata su token) e il supporto per il provider di accesso social (ad esempio, Google e Facebook) si verificheranno sull’infrastruttura OWIN. - Message Handler è una classe che riceve una richiesta HTTP e restituisce una risposta HTTP. L’implementazione dell’autenticazione a livello del gestore messaggi non è raccomandata. I message handler vengono utilizzati per Cross-Origin Resource Sharing (CORS).
- Authentication Filters vengono eseguiti per l’esecuzione prima del filtro di autorizzazione (Authorization Filter). Se non si è interessati a utilizzare la propria logica di autenticazione a livello OWIN, si può spostarsi subito sui controller o le azioni. I filtri di autenticazione sono davvero utili per invocare la logica di autenticazione basata su OWIN.
Authentication filters are really useful to invoke OWIN-based authentication logic. - Authorization Filters sono il luogo nella pipeline in cui è possibile ricontrollare la richiesta prima che l’effettiva e costosa attività di business logic venga eseguita nell’associazione dei modelli e nella convalida del modello e prima che venga richiamata l’azione del controller.