02.06.2013 Views

analisi e gestione della sicurezza di una complessa applicazione ...

analisi e gestione della sicurezza di una complessa applicazione ...

analisi e gestione della sicurezza di una complessa applicazione ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

CAPITOLO IV - La <strong>sicurezza</strong> nelle web applications<br />

Esse sono state costruite principalmente per <strong>di</strong>saccoppiare quello che è il mondo dei controlli e<br />

quin<strong>di</strong> la possibilità <strong>di</strong> gestire in maniera interattiva il controllo sulla <strong>gestione</strong> dell’utente e dei<br />

ruoli. Per fare questo abbiamo un meccanismo, chiamato provider model, il quale, pluggando<br />

un nuovo provider, a prescindere dall’<strong>applicazione</strong> che utilizza le membership e le roles,<br />

automaticamente fornisce un nuovo modo <strong>di</strong> registrare le credenziali e i ruoli.<br />

Il Provider Model è un design pattern che può essere considerato come l’uso congiunto <strong>di</strong> altri<br />

pattern già definiti, dove lo Strategy Pattern, che appartiene alla famiglia dei pattern GOF<br />

(Gang of Four), è sicuramente quello che si nota con maggior facilità: si basa sulla creazione <strong>di</strong><br />

<strong>una</strong> famiglia <strong>di</strong> algoritmi, incapsulati e resi intercambiabili tra <strong>di</strong> loro, richiamati in maniera<br />

in<strong>di</strong>pendente dal contesto.<br />

Il vantaggio <strong>di</strong> questo approccio è che cambiando il provider non è necessario cambiare il<br />

co<strong>di</strong>ce che richiama le API, che è poi l’unica interfaccia utilizzata dalle applicazioni. Nel caso<br />

<strong>di</strong> Asp.NET, il provider è specificato attraverso il web.config e caricato, attraverso<br />

un’operazione <strong>di</strong> Dependency Injection, quando le API hanno bisogno <strong>di</strong> fornire <strong>una</strong><br />

determinata funzionalità. Con questo modello qualsiasi sviluppatore può creare un provider,<br />

dato che le API rappresentano un ponte verso il provider, che è l’effettivo componente che<br />

fornisce l’implementazione concreta, avendo al tempo stesso il medesimo approccio, garantito<br />

dall’utilizzo <strong>di</strong> <strong>una</strong> classe astratta come base comune per queste classi.<br />

È possibile scrivere custom Providers (sono <strong>di</strong>sponibili per Oracle, MySQL).<br />

1. MEMBERSHIP API<br />

Le Membership API rappresentano il primo modo per mettere in pratica, al tempo stesso, i<br />

concetti propri del Provider Model e quelli dell’autorizzazione integrata in Asp.NET, attraverso<br />

gli HttpModule.<br />

Esse gestiscono utenti e credenziali, fornendo la logica per validare gli utenti e le password,<br />

creare nuovi utenti ed altro ancora; inoltre gestiscono lo store per le credenziali, in<strong>di</strong>rizzi e-mail<br />

e altri dati relativi all’utente. Si tratta <strong>di</strong> <strong>una</strong> serie <strong>di</strong> funzionalità che forniscono l’infrastruttura<br />

comune a tutti i provider, in grado <strong>di</strong> garantire un’uniformità <strong>di</strong> creazione <strong>della</strong> parte <strong>di</strong><br />

79

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!