Guía del administrador de negocio de Sun Identity Manager 8.1

Creación de eventos de auditoría a partir de flujos de trabajo

De manera predeterminada, sólo los flujos de trabajo de aprobación se instrumentan para generar registros de auditoría. En esta sección se explica cómo utilizar la aplicación com.waveset.session.WorkflowServices para generar eventos de auditoría adicionales a partir de cualquier proceso de flujo de trabajo.

Quizá necesite más eventos de auditoría si debe producir informes sobre los flujos de trabajo personalizados. En Modificación de flujos de trabajo para registrar eventos de auditoría estándar se explica cómo agregar eventos de auditoría a los flujos de trabajo.

También es posible agregar eventos de auditoría especiales a los flujos de trabajo para los informes de flujo de trabajo (Informes de flujo de trabajo). Los informes de flujo de trabajo indican cuánto tiempo duran los flujos de trabajo completos. Para almacenar los datos que se utilizan en los cálculos de tiempo se necesitan eventos de auditoría especiales. En Modificación de flujos de trabajo para registrar eventos de auditoría de temporización se explica cómo agregar eventos de auditoría de temporización a los flujos de trabajo.

La aplicación com.waveset.session.WorkflowServices

La aplicación com.waveset.session.WorkflowServices genera eventos de auditoría a partir de cualquier proceso de flujo de trabajo. En la Tabla 10–1 se describen los argumentos disponibles para esta aplicación.

Tabla 10–1 Argumentos para com.waveset.session.WorkflowServices

Argumento 

Tipo 

Descripción 

op

Cadena 

Operación para WorkflowServices. Debe configurarse en audit o auditWorkflow. Use audit para la auditoría de flujos de trabajo estándar. Use auditWorkflow para almacenar los eventos de auditoría de temporización que se utilizan en los cálculos de tiempo. Requerido.

type

Cadena 

Nombre del tipo de objeto que se audita. Los tipos de objeto auditables se indican en la Tabla B–5. Se necesita para registrar eventos de auditoría estándar.

action

Cadena 

Nombre de la acción realizada. Las acciones auditables se indican en la Tabla B–6. Requerido.

status

Cadena 

Nombre del estado de la acción especificada. El estado se indica en la Tabla B–7 (dentro de la columna Resultados). Se necesita para registrar eventos de auditoría estándar.

name

Cadena 

Nombre del objeto al que afecta la acción especificada. Se necesita para registrar eventos de auditoría estándar. 

resource

Cadena 

(Opcional) Nombre del recurso donde reside el objeto que se va a modificar.

accountId

Cadena 

(Opcional) ID de cuenta que se va a modificar. Debe ser un nombre de cuenta de recurso nativo.

error

Cadena 

(Opcional) Cadena de error localizada que se adjunta a los fallos.

reason

Cadena 

(Opcional) Nombre del objeto ReasonDenied, que se asigna a un mensaje internacional descriptivo de las causas de fallo habituales.

attributes

Asignación 

(Opcional) Asignación de nombres de atributo y valores que se han añadido o modificado.

parameters

Asignación 

(Opcional) Asigna hasta cinco nombres o valores adicionales relevantes para un evento.

organizations

Lista 

(Opcional) Lista de los nombres o ID de las organizaciones donde se situará este evento. Sirve para establecer el ámbito organizativo del registro de auditoría. Si falta, el controlador intenta averiguar la organización basándose en el tipo y el nombre. Si no consigue averiguar la organización, el evento se incluye en la organización superior, que ocupa el máximo nivel de la jerarquía organizativa.

originalAttributes

Asignación 

(Opcional) Asignación de antiguos valores de atributo. Los nombres deben coincidir con los indicados en el argumento attributes. Servirá cualquier valor anterior que quiera guardar en el registro de auditoría.

Modificación de flujos de trabajo para registrar eventos de auditoría estándar

Para crear un evento de auditoría estándar en un flujo de trabajo, agréguele el siguiente elemento <Activity>:

<Activity name=’createEvent’>

A continuación, anide en <Activity> un elemento <Action> que referencie la aplicación com.waveset.session.WorkflowServices:

<Action class=’com.waveset.session.WorkflowServices’>

Anide en <Action> los elementos <Argument> requeridos y opcionales. La Tabla 10–1 contiene la lista de argumentos.

Para registrar eventos de auditoría estándar, el argumento op debe configurarse en audit.

Ejemplos de flujo de trabajo contiene el código mínimo requerido hasta para crear un evento de auditoría.

Ejemplos de flujo de trabajo

El ejemplo siguiente muestra una actividad de flujo de trabajo sencilla y la generación de un evento que generará una actividad de eliminación de recursos denominada ADSIResource1, realizada por ResourceAdministrator.


Ejemplo 10–1 Actividad de flujo de trabajo simple


<Activity name=’createEvent’> <Action class=’com.waveset.session.WorkflowServices’> 
<Argument name=’op’ value=’audit’/> <Argument name=’type’ value=’Resource’/> 
<Argument name=’action’ value=’Delete’/> <Argument name=’status’ value=’Success’/> 
<Argument name=’subject’ value=’ResourceAdministrator’/> 
<Argument name=’name’ value=’ADSIResource1’/> </Action> <Transition to=’end’/> </Activity>

El siguiente ejemplo muestra cómo agregar atributos específicos a un flujo de trabajo que rastrea los cambios aplicados por cada usuario en un proceso de aprobación hasta un nivel detallado. Esta adición suele seguir a una acción ManualAction que solicita entrada al usuario.

ACTUAL_APPROVER se configura en el formulario y en el flujo de trabajo (en caso de aprobar desde la tabla de aprobaciones) en función de la persona que realmente ha dado la aprobación. APPROVER identifica la persona a la que se había asignado.


Ejemplo 10–2 Atributos agregados para llevar un seguimiento de los cambios en un proceso de aprobación


 
<Action name=’Audit the Approval’ application=’com.waveset.session.WorkflowServices’> 
<Argument name=’op’ value=’audit’/> <Argument name=’type’ value=’User’/> 
<Argument name=’name’ value=’$(CUSTOM_DESCRIPTION)’/> <Argument name=’action’ value=’approve’/> 
<Argument name=’accountId’ value=’$(accountId)’/> <Argument name=’status’ value=’success’/> 
<Argument name=’resource’ value=’$(RESOURCE_IF_APPLICABLE)’/> 
<Argument name=’loginApplication’ value=’$(loginApplication)’/> 
<Argument name=’attributes’> <map> 
<s>fullname</s><ref>user.accounts[Lighthouse].fullname</ref> 
<s>jobTitle</s><ref>user.accounts[Lighthouse].jobTitle</ref> 
<s>location</s><ref>user.accounts[Lighthouse].location</ref> 
<s>team</s><ref>user.waveset.organization</ref> <s>agency</s>
<ref>user.accounts[Lighthouse].agency</ref> </map> </Argument> 
<Argument name=’originalAttributes’> <map> <s>fullname</s> <s>User’s previous fullname</s> 
<s>jobTitle</s> <s>User’s previous job title</s> <s>location</s> <s>User’s previous location</s> 
<s>team</s> <s>User’s previous team</s> <s>agency</s> <s>User’s previous agency</s> </map> 
</Argument> <Argument name=’attributes’> <map> <s>firstname</s> <s>Joe</s> <s>lastname</s> 
<s>New</s> </map> </Argument> <Argument name=’subject’> <or> <ref>ACTUAL_APPROVER</ref> 
<ref>APPROVER</ref> </or> 
</Argument> <Argument name=’approver’ value=’$(APPROVER)’/> </Action>

Modificación de flujos de trabajo para registrar eventos de auditoría de temporización

Es posible modificar los flujos de trabajo para registrar eventos de temporización que sirvan para los informes de flujo de trabajo (Informes de flujo de trabajo). Los eventos de auditoría estándar sólo registran que se ha producido un evento, mientras que los eventos de auditoría de temporización registran cuándo ha comenzado y terminado el evento, lo que permite efectuar cálculos de tiempo. Además de los datos del evento de temporización, también se almacena la mayoría de la información registrada por los eventos de auditoría estándar. Encontrará más información en ¿Qué información almacenan los eventos de auditoría de temporización?.


Nota –

Para registrar eventos de auditoría de temporización, antes debe activar la auditoría del flujo de trabajo para cada tipo de flujo sobre el que quiera informar.

Tenga en cuenta que la auditoría del flujo de trabajo baja el rendimiento.


El Ejemplo 10–3 ilustra el código necesario para crear eventos de auditoría de temporización. Para registrar eventos de auditoría de temporización, el argumento op debe configurarse en auditWorkflow.

El argumento action también es obligatorio y debe definirse en uno de estos valores:

En el archivo auditconfig.xml se pueden definir otros argumentos de acción.

Ejemplos: Comienzo y terminación de eventos de auditoría en un flujo de trabajo

El Ejemplo 10–3 ilustra la habilitación de eventos de auditoría de temporización en un flujo de trabajo. Para instrumentar un flujo de trabajo, se deben agregar eventos auditWorkflow al principio y al final de los flujos de trabajo, procesos y actividades.

La operación auditWorkflow se define en com.waveset.session.WorkflowServices . Consulte La aplicación com.waveset.session.WorkflowServices para obtener más información.


Ejemplo 10–3 Comienzo de eventos de auditoría de temporización en un flujo de trabajo


<Action application=’com.waveset.session.WorkflowServices’> 
<Argument name=’op’ value=’auditWorkflow’/> 
<Argument name=’action’ value=’StartWorkflow’/> 
</Action>

Para detener el registro de eventos de auditoría de temporización en un flujo de trabajo, incluya el código del Ejemplo 10–4 en una actividad pre-end cerca del final del flujo de trabajo. Observe que, al instrumentar un proceso o flujo de trabajo, no se permite incluir nada en una actividad end. Hay que crear una actividad pre-end que lleve a cabo el evento auditWorkflow final y después realizar una transición incondicional al evento end.


Ejemplo 10–4 Terminación de eventos de auditoría de temporización en un flujo de trabajo


<Action application=’com.waveset.session.WorkflowServices’> 
<Argument name=’op’ value=’auditWorkflow’/> <Argument name=’action’ value=’EndWorkflow’/> 
</Action>

¿Qué información almacenan los eventos de auditoría de temporización?

De manera predeterminada, los eventos de auditoría de temporización registran la mayoría de la información almacenada por los eventos de auditoría estándar, incluidos los atributos siguientes:

Atributo  

Descripción  

WORKFLOW

Nombre del flujo de trabajo ejecutado. 

PROCESS

Nombre del proceso actualmente en ejecución. 

INSTANCEID

ID de instancia único del flujo de trabajo ejecutado. 

ACTIVITY

Actividad en la que se registra el evento, 

MATCH

Identificador único dentro de una instancia de flujo de trabajo. 

Los atributos anteriores se almacenan en la tabla logattr y proceden de auditableAttributesList. Identity Manager también verifica si está definido el atributo workflowAuditAttrConds.

Es posible llamar algunas actividades varias veces dentro de una misma instancia de un proceso o un flujo de trabajo. Para lograr la coincidencia de los eventos de auditoría en una determinada instancia de actividad, Identity Manager almacena un identificador único dentro de una instancia de flujo de trabajo en la tabla logattr.

Si quiere almacenar otros atributos en la tabla logattr para un flujo de trabajo, debe definir una lista workflowAuditAttrConds, que se considera una lista de objetos genéricos (GenericObjects). Si define un atributo attrName dentro de la lista workflowAuditAttrConds , Identity Manager extrae attrName del objeto dentro del código, utilizando primero attrName como clave y almacenando después el valor attrName. Todas las claves y valores se almacenan como valores en mayúsculas.