La sicurezza in Windows Communication Foundation

6 pagine in totale: <<Indietro 1 2 3 4 5 [6]

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.

6 pagine in totale: <<Indietro 1 2 3 4 5 [6]

Contenuti dell'articolo

Commenti
Dai un voto a questo articolo, ci aiuterà a migliorare il nostro sito (1 è il voto minimo, 5 il massimo).

Per procedere al rating dell'articolo devi essere autenticato.

Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.



TUTORIALS


IN EVIDENZA
MISC