Quando si decide di utilizzare il trasporto come metodo di invio dei dati, è necessario anche specificare le credenziali con le quali il client si autentica al servizio. Questa scelta viene effettuata tramite l'attributo clientCredentialType in fase di configurazione oppure attraverso l'omonima proprietà della classe BasicHttpBinding. Questa proprietà è un'enumerazione di tipo HttpClientCredentialType e riporta le possibili tipologie di autenticazione quando si usa la Transport Security.
- None: in questo caso nessuna credenziale per l'autenticazione viene inviata dal client al servizio. Questo modello è noto con il nome di Autenticazione anonima (Anonymous Authentication);
- Basic: con questo tipo di autenticazione, il client invia le proprie credenziali al servizio in formato Base64. Bisogna, però, fare attenzione ad una cosa: Base64 non significa che i dati siano criptati, tutt'altro, quindi è bene utilizzare questa forma di autenticazione solo con HTTPS;
- Digest: questo meccanismo è molto simile al precedente, ma ha la fondamentale differenza di non inviare i dati in chiaro, ma solamente un hash di questi rendendo così la comunicazione più sicura;
- Windows: quando si utilizza questo criterio, viene inviato l'utente dell'account windows con cui gira il client. Essendo l'utente già loggato sulla macchina del client, non c'è alcun bisogno di inviare la password quindi questa forma di autenticazione è di fatto sicura al 100%;
- NTLM: questa configurazione utilizza l'autenticazione NTLM;
- Certificate: l'autenticazione è basata su un certificato che viene presentato dal client e che il servizio mappa con un utente.
Quando utilizzare uno o l'altro meccanismo è una questione di scelte dettate da diverse esigenze e situazioni. Ad esempio, quasi tutti i sistemi bancari ormai utilizzano un certificato X509 che l'utente scarica sul client e poi utilizza per connettersi al sito dell'internet banking. Nel caso di servizi pubblicati all'interno di reti Windows, l'opzione migliore è quella di sfruttare l'autenticazione di Windows evitando l'invio di dati inutili. Se si vuole dare l'accesso al servizio ad utenti che non sono del dominio, ma effettuano richieste dall'esterno, allora la Digest Authentication è la via più semplice. Se si vuole rendere un servizio accessibile al pubblico senza alcuna forma di sicurezza allora non è necessario impostare alcun settaggio.
Per rendere più chiari questi concetti ecco alcuni esempi:
Servizio:
<basicHttpBinding>
<binding name="Default" />
</basicHttpBinding>
Client:
<basicHttpBinding>
<binding name="Default">
<security mode="None" />
</binding>
</basicHttpBinding>Esempio di servizio completamente aperto senza alcuna forma di sicurezza. Utile per servizi anonimi come Meteo, Traffico, Tassi di cambio ecc.
Servizio e client:
<basicHttpBinding>
<binding name="TransportSecurity">
<security mode="Transport">
<transport clientCredentialType="Basic">
</security>
</binding>
</basicHttpBinding>Contenuti dell'articolo
- Pagina 1
- Pagina 4
- Pagina 5
Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.





Difficoltà
Stampa
Download 


10annidi.ASPItalia.com: iscriviti alla competizione e vinci fantastici premi ogni mese!
