Cómo auditar los eventos de seguridad de Windows Communication Foundation
Windows Communication Foundation (WCF) permite registrar los eventos de seguridad en el registro de eventos de Windows, que puede consultarse utilizando el visor de eventos de Windows. Este tema explica cómo configurar una aplicación para que registre los eventos de seguridad. Para obtener más información acerca de WCF la auditoría, vea Auditoría de eventos de seguridad.
Para auditar los eventos de seguridad en el código
Especifique la ubicación del registro de auditoría. Para ello, establezca la propiedad AuditLogLocation de la clase ServiceSecurityAuditBehavior en uno de los valores de enumeración AuditLogLocation, como se muestra en el código siguiente.
La enumeración AuditLogLocation tiene tres valores: Application, Security, o Default. El valor especifica uno de los registros visibles en el visor de eventos, el registro de seguridad o el de la aplicación. Si utiliza el valor Default, el registro real dependerá del sistema operativo en el que se está ejecutando la aplicación. Si se habilita la auditoría y no se especifica la ubicación del registro, el valor predeterminado es el registro de Security en las plataformas que admiten escribir en el registro de seguridad; de lo contrario, se escribirá en el registro Application. Sólo Windows Server 2003 y Windows Vista permiten escribir de forma predeterminada en el registro de seguridad.
Establezca los tipos de eventos que se van a auditar. Puede auditar, simultáneamente, eventos de nivel de servicio o eventos de nivel de autorización. Establezca la propiedad ServiceAuthorizationAuditLevel o la propiedad MessageAuthenticationAuditLevel en uno de los valores de enumeración AuditLevel, como muestra el siguiente código.
Especifique si suprimir o exponer los errores a la aplicación relacionados con los eventos de auditoría del registro. Establezca la propiedad SuppressAuditFailure en true o false, como muestra el siguiente código.
La propiedad SuppressAuditFailure predeterminada es true, de modo que el error que se audita no afecta a la aplicación. De lo contrario, se inicia una excepción. Para cualquier auditoría realizada correctamente, se escribe con detalle el seguimiento de la traza. Para cualquier error que se audita, se escribe el seguimiento de la traza en el nivel del error.
Elimine el ServiceSecurityAuditBehavior existente de la colección de comportamientos encontrada en la descripción de ServiceHost. A la colección de comportamiento tiene acceso la propiedad Behaviors, a la que a su vez tiene acceso la propiedad Description. A continuación, agregue el nuevo ServiceSecurityAuditBehavior a la misma colección, como se muestra en el código siguiente.
Para establecer la auditoría en la configuración
Para establecer la auditoría en la configuración, agregue un elemento <behavior> a la sección Behaviors element del archivo web.config. Después, agregue un elemento serviceSecurityAudit y establezca los distintos atributos, como se muestra en el ejemplo siguiente.
<behaviors> <behavior name="myAuditBehavior"> <serviceSecurityAudit auditLogLocation="Application" suppressAuditFailure="false" serviceAuthorizationAuditLevel="None" messageAuthenticationAuditLevel="SuccessOrFailure" /> </behavior> </behaviors>
Debe especificarse el comportamiento del servicio, como se muestra en el ejemplo siguiente.
<services> <service type="WCS.Samples.Service.Echo" behaviorConfiguration=" myAuditBehavior"> <endpoint address="" binding="wsHttpBinding" bindingConfiguration="CertificateDefault" contract="WCS.Samples.Service.IEcho" /> </service> </services>
Ejemplo
El siguiente código crea una instancia de la clase ServiceHost y agrega un nuevo ServiceSecurityAuditBehavior a la colección de comportamientos.
Seguridad
Cuando se establece la propiedad SuppressAuditFailure como true, se suprime cualquier error que genere auditorías de seguridad (si se establece como false, se inicia una excepción). Sin embargo, si habilita la siguiente propiedad Local Security Setting de Windows, un error que genere eventos de auditoría provocará el cierre inmediato de Windows:
Auditoría: cierre el sistema inmediatamente si no se pueden registrar las auditorías de seguridad
Para establecer la propiedad, abra el cuadro de diálogo Configuración de seguridad local. En Configuración de seguridad, haga clic en Directivas locales. A continuación, haga clic en Opciones de seguridad.
Si la propiedad AuditLogLocation está establecida como Security y Auditar el acceso a objetos no está definido en Directiva de seguridad local, los eventos de auditoría no se escribirán en el registro de seguridad. Tenga en cuenta que no se devuelve ningún error, aunque las entradas de auditoría no se escriben en el registro de seguridad.
Consulte también
Referencia
AuditLogLocation
ServiceSecurityAuditBehavior
AuditLogLocation