In uno dei precedenti articoli abbiamo visto come si creano e si utilizzano i web services. E' quindi giunta l'ora di affrontare il tema della sicurezza.
Sebbene questa nuova tecnologia non sia molto diffusa, almeno per il momento, è importante sapere quali modalità offre IIS e quali il framework .NET in particolare per proteggere i web services nella trasmissione di dati importanti e per autorizzare o meno ad usufruire del servizio.
Nell'ambiente ASP.NET abbiamo diversi strumenti per autentificare e autorizzare gli utenti di web service. I principali sono gli stessi che ci permettono di proteggere le nostre pagine ASP.NET, considerando che i web services sono solo una parte della tecnologia .NET:
- Autenticazione Windows
- Autenticazione Forms
- Autenticazione tramite Passport
- Autenticazione personalizzata mediante l'utilizzo dei SoapHeader
Procediamo dunque con l'analisi di queste opzioni.
Autenticazione Windows
Questa autenticazione consiste, come nelle pagine ASP.NET, di lasciare il compito di autorizzare o meno ad IIS. IIS infatti raccoglie la chiamata e in base alle nostre impostazioni passa o meno la gestione di essa al framework.NET. In questo modo .NET non ha nessuna responsabilità e la sicurezza della trasmissione delle credenziali è affidata al webserver.
Nel caso di IIS, si potrà trasmettere la password come testo chiaro oppure utilizzare l'autenticazione NTLM che si affida ad una codifica della password. Per far questo non dobbiamo far altro che avviare lo strumento di amministrazione di IIS, selezionare l'applicazione dove è contenuto il nostro web service, aprire le sue proprietà e selezionare la scheda "Directory security".
Premendo "Edit" comparirà la finestra di impostazione per l'autenticazione. Disabilitiamo "Anonymous access" e il nostro web service è protetto dall'uso anonimo.
Se non potete accedere alla configurazione di IIS, nessun problema. Il .Net framework ci viene incontro e ci permette di gestire l'autenticazione e l'autorizzazione di Windows tramite il file web.config, utilizzato per la configurazione delle applicazioni ASP.NET.
E' sufficientie infatti creare il nostro file di configurazione, istruirlo dell'autenticazione Windows e dirgli che non vogliamo accessi anonimi. Ecco un esempio:
<configuration> <system.web> <authentication mode="Windows" /> <authorization> <deny users="?" /> </authorization> </system.web> </configuration>
In questo modo il controllo non viene effettuato da IIS ma dal framework stesso e la gestione degli user o dei role che possono usufruire del servizio va configurata nello stesso modo delle normali pagine ASP.NET.
Inoltre il codice del nostro web service non dovrà subire nessuna modifica con questo tipo di autenticazione.
Tutto bene per quanto riguarda il fornitore del servizio, ma cosa deve fare chi lo usa, quindi il client, per poter usufruire di un servizio del genere?
Attenzione: Questo articolo contiene un allegato.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.