Auditing
Le applicazioni WCF possono sfruttare il meccanismo di Auditing per loggare qualunque tipo di evento (errore, accesso di un utente, tentativo di hacking) e salvare i dati sul registro degli eventi. L'auditing è molto importante perché, permette di evidenziare eventuali attacchi al sistema, aiuta nella risoluzione di errori e permette di misurare lo stato di salute dell'applicazione.
L'auditing di WCF è impostato per ascoltare due momenti precisi nella pipeline: quando un client viene autenticato (in questo caso si parla di Service Level) e quando si verifica la crittografia e la firma digitale (in questo caso si parla di Message Level).
Sempre nel pieno spirito di WCF, anche l'Auditing può essere impostato completamente in fase di configurazione senza toccare il codice.
<services>
<service type="WCS.Samples.Service.Echo" behaviorConfiguration=" myAuditBehavior">
<endpoint address="" binding="wsHttpBinding"
bindingConfiguration="CertificateDefault" contract="IService" />
</service>
</services>
<behaviors>
<behavior name="myAuditBehavior">
<serviceSecurityAudit auditLogLocation="Application"
serviceAuthorizationAuditLevel="SuccessOrFailure" messageAuthenticationAuditLevel="SuccessOrFailure" />
</behavior>
</behaviors>In questo snippet, viene creato un Behavior che si occupa di loggare, nella sezione Application del registro degli eventi di sistema, se gli accessi al servizio, la crittografia e la verifica dei messaggi abbiano avuto esito positivo o negativo.
Una funzione molto utile che l'auditing permette è di loggare i messaggi che transitano per il servizio. WCF permette di fare questo, con una certa semplicità, sempre tramite configurazione:
<diagnostics performanceCountersEnabled="true" wmiProviderEnabled="true">
<messageLogging logEntireMessage="true" logMessagesAtServiceLevel="true" logMessagesAtTransportLevel="false" maxMessagesToLog="100" />
</diagnostics>
...
<system.diagnostics>
<sources>
<source name="System.ServiceModel">
<listeners>
<add name="log" />
</listeners>
</source>
<source name="System.ServiceModel.MessageLogging">
<listeners>
<add name="log" />
</listeners>
</source>
</sources>
<sharedListeners>
<add name="log" type="System.Diagnostics.XmlWriterTraceListener" initializeData="d:\log\log.txt"/>
</sharedListeners>
<trace autoflush="true" />
</system.diagnostics>Con questa configurazione WCF manda tutti i messaggi ad un trace listener che automaticamente scrive il messaggio su un file di testo.
Conclusioni
Al momento della stesura dell'articolo WinFX è disponibile con una build di preview (CTP) di febbraio e perciò il framework è ancora in evoluzione. Nonostante ciò, la base del sistema di sicurezza è già improntata e la strada intrapresa è quella che permetterà di rendere sicuri i nostri servizi coprendo i molteplici scenari possibili e limitando notevolmente il nostro codice.
Contenuti dell'articolo
- Pagina 1
- Pagina 4
- Pagina 6
- Introduzione a .NET Micro Framework
- Gestire transazioni miste con NTFS in Windows Server 2008
- Windows Presentation Foundation 3.5: 3D interattivo e le altre novità del framework
- Le novità di Communication e Workflow Foundation e la loro cooperazione nel .NET Framework 3.5
- .NET Framework 3.5 e Visual Studio 2008: cosa c'è di nuovo
- Gestione delle eccezioni in Windows Communication Foundation
- Sviluppare workflow sequenziali con WF
- WPF: dal DataBinding ai Template - Terza parte
Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.






Difficoltà
Utilità

Stampa
Download 


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