Guide de l'administrateur d'entreprise de Sun Identity Manager 8.1

Création d'événements de contrôle à partir des flux de travaux

Par défaut, seuls les flux de travaux d'approbation sont instrumentés pour générer des enregistrements d'audit. Cette section décrit l'utilisation de l'application com.waveset.session.WorkflowServices pour générer des événements de contrôle supplémentaires à partir de tout processus de flux de travaux.

Des événements de contrôle supplémentaires peuvent être nécessaires si vous devez effectuer des rapports sur des flux de travaux personnalisés. Pour toute information sur l'ajout d'événements de contrôle aux flux de travaux, voir Modification des flux de travaux pour consigner les événements de contrôle standard.

Des événements de contrôle spéciaux peuvent aussi être ajoutés aux flux de travaux en appui des rapports de flux de travaux (Rapports de flux de travaux). Les rapports de flux de travaux rapportent le temps employé par les flux de travaux pour se compléter. Des événements de contrôle spéciaux sont requis pour stocker les données nécessaires au calcul de cette durée. Pour toute information sur l'ajout d'événements de contrôle de synchronisation aux flux de travaux, voir Modification des flux de travaux pour consigner les événements de synchronisation standard.

L'application com.waveset.session.WorkflowServices

L'application com.waveset.session.WorkflowServices génère des événements de contrôle à partir de tout processus de flux de travaux. Le Tableau 10–1 détaille les arguments disponibles pour cette application.

Tableau 10–1 Arguments de com.waveset.session.WorkflowServices

Argument 

Type 

Description 

op

Chaîne 

Opération pour WorkflowServices. Doit être défini sur audit ou auditWorkflow. Utilisez audit pour le contrôle de flux de travaux standard. Utilisez auditWorkflow pour stocker les événements de contrôle de synchronisation requis pour les calculs de durée. Obligatoire.

type

Chaîne 

Nom du type d'objets en cours d'audit. Les types d'objets auditables sont listés dans le Tableau B–5. Obligatoire pour consigner les événements de contrôle standard.

action

Chaîne 

Nom de l'action effectuée. Les actions auditables sont listées dans le Tableau B–6. Obligatoire.

status

Chaîne 

Nom du statut pour l'action spécifiée. Le statut est listé dans le Tableau B–7 (dans la colonne Résultats). Obligatoire pour consigner les événements de contrôle standard.

name

Chaîne 

Nom de l'objet concerné par l'action spécifiée. Obligatoire pour consigner les événements de contrôle standard. 

resource

Chaîne 

(facultatif) Nom de la ressource où réside l'objet qui est changé.

accountId

Chaîne 

(facultatif) ID de compte modifié. Doit être un nom de compte de ressource natif.

error

Chaîne 

(facultatif) Chaîne d'erreur localisée accompagnant toute défaillance.

reason

Chaîne 

(facultatif) Nom de l'objet ReasonDenied, qui mappe vers un message internationalisé décrivant les causes des défaillances courantes.

attributes

Mappe 

(facultatif) Mappe des noms et valeurs d'attribut qui ont été ajoutés ou modifiés.

parameters

Mappe 

(facultatif) Mappe jusqu'à cinq noms ou valeurs supplémentaires pertinents pour un événement.

organizations

Liste 

(facultatif) Liste des noms ou ID d'organisation où cet événement sera placé. Cet argument est utilisé pour le calcul de l'étendue organisationnelle du journal d'audit. S'il est absent, le gestionnaire tentera de résoudre l'organisation sur la base du type et du nom. Si la résolution est impossible, l'événement est placé dans Haut (plus haut niveau de la hiérarchie des organisations).

originalAttributes

Mappe 

(facultatif) Mappe des anciennes valeurs d'attribut. Les noms doivent correspondre à ceux listés dans l'argument attributes. Les valeurs seront les valeurs précédentes que vous voulez enregistrer dans le journal d'audit.

Modification des flux de travaux pour consigner les événements de contrôle standard

Pour créer un événement d'audit standard dans un flux de travaux, ajoutez l'élément <Activity> suivant à ce flux de travaux.

<Activity name=’createEvent’>

Ensuite, imbriqué dans l'élément <Activity>, incluez un élément <Action> qui référencie l'application com.waveset.session.WorkflowServices :

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

Imbriqué dans l'élément <Action>, incluez les éléments <Argument> obligatoires et optionnels. Pour la liste des arguments, voir le Tableau 10–1.

Pour consigner les événements de contrôle standard, l'argument op doit être sur défini sur audit.

Les Exemples de flux de travaux montrent le code minimum requis pour créer un événement de contrôle standard.

Exemples de flux de travaux

L'exemple suivant illustre une activité de flux de travaux simple et montre la génération d'un événement qui enregistrera une activité de suppression de ressource nommée ADSIResource1, effectuée par ResourceAdministrator.


Exemple 10–1 Activité de flux de travaux 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>

Les exemples suivants illustrent la façon dont vous pouvez ajouter des attributs spécifiques à un flux de travaux qui suit les modifications appliquées par chaque utilisateur dans un processus d'approbation à un niveau granulaire. Cette addition suivra normalement une ManualAction sollicitant une saisie d'un utilisateur.

ACTUAL_APPROVER est défini dans le formulaire et dans le flux de travail (si l'approbation se fait depuis le tableau des approbations) sur la base de la personne qui a effectivement effectué l'approbation. APPROVER identifie la personne à qui l'approbation a été assignée.


Exemple 10–2 Attributs ajoutés pour suivre les changements dans un processus d'approbation


 
<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>

Modification des flux de travaux pour consigner les événements de synchronisation standard

Les flux de travaux peuvent être modifiés pour consigner des événements de contrôle en appui des rapports de flux de travaux (Rapports de flux de travaux). Les événements de contrôle standard se limitent à consigner qu'un événement s'est produit tandis que les événements de contrôle de synchronisation consignent le démarrage et l'arrêt d'un événement ce qui permet d'effectuer des calculs de durée. En plus des données des événements de synchronisation, la plupart des informations enregistrées par les événements de contrôle standard sont également enregistrées. Pour plus d'informations, voir Informations stockées par les événements de contrôle de synchronisation.


Remarque –

Pour consigner les événements de contrôle de synchronisation, vous devez commencer par activer le contrôle du flux de travaux pour chacun des types de flux de travaux que vous envisagez de contrôler.

Sachez toutefois que l'audit des flux de travaux dégrade la performance.


L'Exemple 10–3 indique le code nécessaire pour créer des événements de contrôle de synchronisation. Pour consigner les événements de contrôle de synchronisation, l'argument op doit être sur défini sur auditWorkflow.

L'argument action est également obligatoire et doit être défini sur l'une des valeurs suivantes :

Des arguments d'action supplémentaires peuvent être définis dans auditconfig.xml.

Exemples : Démarrage et arrêt des événements de contrôle dans un flux de travail

L'Exemple 10–3 illustre l'activation des événements de contrôle de synchronisation dans un flux de travaux. Pour instrumenter un flux de travaux, les événements auditWorkflow doivent être ajoutés au début et à la fin des flux de travaux, processus et activités.

L'opération auditWorkflow est définie dans com.waveset.session.WorkflowServices . Pour plus d'informations, voir la section L'application com.waveset.session.WorkflowServices.


Exemple 10–3 Démarrage des événements de contrôle de synchronisation dans un flux de travaux


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

Pour arrêter la consignation des événements de contrôle de synchronisation dans un flux de travaux, ajoutez le code de l'Exemple 10–4 à une activité pre-end près de la conclusion du flux de travaux. Sachez que lors de l'instrumentation d'un flux de travaux ou d'un processus, vous n'êtes pas autorisé à mettre quoi que soit dans une activité end. Vous devez créer une activité pre-end qui effectue l'événement auditWorkflow final et passe sans conditions à l'événement end.


Exemple 10–4 Arrêt des événements de contrôle de synchronisation dans un flux de travaux


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

Informations stockées par les événements de contrôle de synchronisation

Par défaut, les événements de contrôle de synchronisation consignent la plupart des informations stockées par les événements de contrôle standard, notamment les attributs suivants :

Attribut  

Description  

WORKFLOW

Nom du flux de travaux en cours d'exécution 

PROCESS

Nom du processus courant en cours d'exécution 

INSTANCEID

ID d'instance unique du flux de travaux en cours d'exécution 

ACTIVITY

Activité dans laquelle l'événement est consigné 

MATCH

Identificateur unique au sein d'une instance de flux de travaux 

Les attributs ci-dessus sont stockés dans le tableau logattr et sont issus de auditableAttributesList. Identity Manager vérifie également si l'attribut workflowAuditAttrConds est défini.

Il est possible d'appeler plusieurs fois certaines activités au sein d'une unique instance de processus ou flux de travaux. Pour faire correspondre les événements de contrôle pour une instance d'activité donnée, Identity Manager stocke un identificateur unique au sein d'une instance de flux de travaux dans le tableau logattr.

Pour stocker des attributs supplémentaires dans le tableau logattr d'un flux de travaux, vous devez définir une liste workflowAuditAttrConds, que l'on assume être une liste de GenericObjects. Si vous définissez un attribut attrName dans la liste workflowAuditAttrConds, Identity Manager extrait attrName de l'objet dans le code, d'abord en utilisant attrName en tant que clé puis en stockant la valeur d'attrName. L'ensemble des clés et valeurs sont stockées sous forme de valeurs en majuscules.