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

Chapitre 10 Journalisation d'audit

Ce chapitre explique la façon dont le système d'audit enregistre les événements.

Les informations sont organisées dans les rubriques suivantes :

Présentation de la journalisation d'audit

L'objectif de l'audit d'Identity Manager est d'enregistrer qui a fait quoi sur quel objet Identity Manager et pour quelle raison.

Les événements de contrôle ou d'audit sont gérés par un ou plusieurs éditeurs. Par défaut, Identity Manager enregistre les événements de contrôle dans le référentiel en utilisant l'éditeur du référentiel. Le filtrage, avec l'aide de groupes d'audit, permet à l'administrateur de sélectionner un sous-ensemble d'événements de contrôle pour les enregistrer. Chaque éditeur peut se voir assigner un ou plusieurs groupes d'audit activés au départ.


Remarque –

Pour plus d'informations sur le contrôle et la gestion des violations commises par les utilisateurs, voir le Chapitre 13Audit des identités : principes de base.


Rôle de l'audit dans Identity Manager

La plupart de l'audit par défaut est effectué par les composants internes d'Identity Manager. Certaines interfaces permettent toutefois de générer des événements à partir de flux de travaux ou de code Java.

L'instrumentation d'audit par défaut d'Identity Manager est concentrée sur quatre zones principales :

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.

Configuration d'audit

La configuration d'audit est composée de un ou plusieurs éditeurs et de plusieurs groupes prédéfinis.

Un groupe d'audit définit un sous-ensemble des événements de contrôle sur la base des types d'objets, actions et résultats des actions. Chaque éditeur se voit assigner un ou plusieurs groupes d'audit. Par défaut, l'éditeur du référentiel est assigné à tous les groupes d'audit.

Un éditeur d'audit délivre des événements de contrôle à une destination d'audit particulière. L'éditeur de référentiel par défaut écrit les enregistrements d'audit dans le référentiel. Tout éditeur d'audit peut avoir des options spécifiques à l'implémentation. Les éditeurs d'audit peuvent avoir un programme de formatage assigné (les programmes de formatage assurent la représentation textuelle des événements de contrôle).

L'objet Configuration d’audit (#ID#Configuration:AuditConfiguration) est défini dans le fichier sample/auditconfig.xml. Cet objet Configuration a une extension qui est un objet générique.

Au niveau supérieur, cet objet Configuration a les attributs suivants :

Attribut filterConfiguration

L'attribut filterConfiguration liste les groupes d'événements, utilisés pour permettre à un ou plusieurs événements de passer à travers le filtre d'événements. Chacun des groupes listés dans l'attribut filterConfiguration contient les attributs listés dans le Tableau 10–2.

Tableau 10–2 Attributs de filterConfiguration

Attribut 

Type 

Description 

groupName

Chaîne 

Nom du groupe d'événements 

displayName

Chaîne 

Clé du catalogue de messages représentant le nom du groupe 

enabled

Chaîne 

Indicateur booléen indiquant si l'ensemble du groupe est activé ou désactivé. L'attribut est une optimisation pour l'objet de filtrage. 

enabledEvents

Liste 

Liste d'objets génériques décrivant les événements activés par un groupe. Un événement doit être listé pour en permettre la consignation. Chaque objet listé doit avoir les attributs suivants : 

  • objectType (Chaîne) : nomobjectType ;

  • actions (Liste) : liste d'une ou plusieurs actions ;

  • results (Liste) : liste d'un ou plusieurs résultats.

L'Exemple 10–5 illustre le groupe Gestion des ressources (Resource Management) par défaut.


Exemple 10–5 Le groupe Gestion des ressources (Resource Management) par défaut


<Object name=’Resource Management’> <Attribute name=’enabled’ value=’true’/> 
<Attribute name=’displayName’ value=’UI_RESOURCE_MGMT_GROUP_DISPLAYNAME’/> 
<Attribute name=’enabledEvents’> <List> <Object> <Attribute name=’objectType’ value=’Resource’/> 
<Attribute name=’actions’ value=’ALL’/> <Attribute name=’results’ value=’ALL’/> </Object> <Object> 
<Attribute name=’objectType’ value=’ResourceObject’/> <Attribute name=’actions’ value=’ALL’/> 
<Attribute name=’results’ value=’ALL’/> </Object> </List> </Attribute> </Object>

Identity Manager fournit des groupes d'événements de contrôle par défaut. Ces groupes et les événements qu'ils autorisent sont décrits dans les sections suivantes :

Vous pouvez configurer des groupes d'événements de contrôle à partir de la page Configuration d'audit de l'interface administrateur d'Identity Manager (Configurer > Vérification informatique). Pour les instructions, voir Configuration de groupes et d'événements d'audit.

Vous pouvez aussi configurer les événements de type réussite et échec pour chaque groupe toujours à partir de la page Configuration d'audit. L'interface ne prend pas en charge l'ajout ou la modification d'événements pour les groupes, mais vous pouvez le faire en utilisant les pages de débogage d'Identity Manager (Page de débogage d'Identity Manager).


Remarque –

Certaines actions que vous pouvez choisir pour un audit ne génèrent pas d'enregistrement de journal.. De même, sélectionner l'option « All Actions » (Toutes les actions) ne signifie pas que toutes les actions listées sont disponibles ou possibles pour tous les groupes d'événements de contrôle.


Groupe Gestion des comptes

Ce groupe est activé par défaut.

Tableau 10–3 Groupes d'événements Gestion des comptes par défaut

Type  

Actions  

Encryption Key (Clé de chiffrement)

Toutes les actions. 

Identity System Account (Compte Identity System)

Toutes les actions. 

Resource Account (Compte de ressources)

Activer, Approuver, Créer, Désactiver, Déverrouiller, Modifier, Rejeter, Renommer, Supprimer 

Workflow Case (Case flux de travaux)

Démarrer l’activité, Démarrer le flux de travaux, Démarrer le processus, Terminer l’activité, Terminer le flux de travaux, Terminer le processus  

User (Utilisateur)

Activer, Approuver, Créer, Désactiver, Modifier, Rejeter, Renommer, Supprimer 

Groupe Modifications hors Identity System

Ce groupe est désactivé par défaut.

Tableau 10–4 Groupes d'événements et événements de Modifications hors Identity Manager

Type  

Actions  

ResourceAccount (Compte de ressource)

NativeChange

Groupe Gestion de la conformité

Ce groupe est activé par défaut.

Tableau 10–5 Événements du groupe Gestion de la conformité par défaut

Type  

Actions  

Audit Policy (Stratégie d’audit)

Toutes les actions. 

AccessScan (Scannage des accès)

Toutes les actions. 

ComplianceViolation (ComplianceViolation)

Toutes les actions. 

Data Exporter (Exportateur de données)

Toutes les actions. 

UserEntitlement (UserEntitlement)

Approuvé par l’attestateur, Arrêter, Nouveau scannage requis, Rejeté par l’attestateur, Résolution demandée 

Access Review Workflow (Flux de travaux de l’examen des accès)

Toutes les actions. 

Remediation Workflow (Flux de travaux de résolution)

Toutes les actions. 

Groupe Gestion de la configuration

Ce groupe est activé par défaut.

Tableau 10–6 Groupes d'événements de Gestion de la configuration par défaut

Type  

Actions  

Configuration (Configuration)

Toutes les actions. 

UserForm (Formulaire utilisateur)

Toutes les actions. 

Rule (Règle)

Toutes les actions. 

EmailTemplate (Modèle d’e-mail)

Toutes les actions. 

LoginConfig (Config. de connexion)

Toutes les actions. 

Policy (Stratégie)

Toutes les actions. 

XmlData (Données XML)

Importer 

Log (Journal)

Toutes les actions. 

Groupe Gestion d’événement

Ce groupe est activé par défaut.

Tableau 10–7 Groupes d'événements de Gestion d’événement par défaut

Type  

Actions  

Email (E-mail)

Notifier 

TestNotification (Notification de test)

Notifier 

Groupe Connexions/Déconnexions

Ce groupe est activé par défaut.

Tableau 10–8 Groupes d'événements de Connexions/Déconnexions d'Identity Manager par défaut

Type  

Actions  

User (Utilisateur)

Connexion, Déverrouiller, Fermer la session, Informations d’identification expirées, Récupération du nom d’utilisateur, Verrouiller 

Groupe Gestion des mots de passe

Ce groupe est activé par défaut.

Tableau 10–9 Groupes d'événements et événements de Gestion des mots de passe par défaut

Type  

Actions  

Compte de ressources 

Modifier le mot de passe, Réinitialiser le mot de passe 

Groupe Gestion des ressources

Ce groupe est activé par défaut.

Tableau 10–10 Groupes d'événements et événements de Gestion des ressources par défaut

Type  

Actions  

Resource (Ressource)

Toutes les actions. 

Resource Object (Objet de ressource)

Toutes les actions. 

ResourceForm (Formulaire de ressource)

Toutes les actions. 

ResourceAction (Action de ressource)

Toutes les actions. 

AttrParse (AttrParse)

Toutes les actions. 

Workflow Case (Case flux de travaux)

Démarrer l’activité, Démarrer le flux de travaux, Démarrer le processus, Terminer l’activité, Terminer le flux de travaux, Terminer le processus  

Groupe Gestion des rôles

Ce groupe est désactivé par défaut.

Tableau 10–11 Groupes d'événements et événements de Gestion des rôles par défaut

Type  

Actions  

Role (Rôle)

Toutes les actions. 

Groupe Gestion de la sécurité

Ce groupe est activé par défaut.

Tableau 10–12 Groupes d'événements et événements de Gestion de la sécurité par défaut

Type  

Actions  

Capability (Capacité)

Toutes les actions. 

EncryptionKey (Clé de chiffrement)

Toutes les actions. 

Organization (Organisation)

Toutes les actions. 

Admin Role (Rôle Admin)

Toutes les actions. 

Groupe Service Provider

Ce groupe est activé par défaut.

Tableau 10–13 Groupes d'événements et événements de Service Provider

Type  

Actions  

Directory User (Utilisateur du répertoire)

Créer, Légende post-opération, Légende pré-opération, Mettre à jour les réponses d’authentification, Modifier, Récupération du nom d’utilisateur, Réponse de repêchage, Supprimer 

Groupe Gestion des tâches

Ce groupe est désactivé par défaut.

Tableau 10–14 Groupes d'événements et événement de Gestion des tâches par défaut

Type  

Actions  

TaskInstance (Instance de tâche)

Toutes les actions. 

TaskDefinition (Définition de tâches)

Toutes les actions. 

TaskSchedule (Planification de la tâche)

Toutes les actions. 

TaskResult (Résultat de la tâche)

Toutes les actions. 

ProvisioningTask (Tâche de provisioning)

Toutes les actions. 

L'attribut extendedTypes

Tout nouveau type ajouté à la classe com.waveset.object.Type peut être contrôlé. Une clé de base de données unique composée de deux caractères et stockée dans la base de données doit être assignée à tout nouveau type. Tous les nouveaux types sont ajoutés aux diverses interfaces de génération de rapports d'audit. Tout nouveau type devant être consigné dans la base de données sans être filtré doit être ajouté à l'attribut enabledEvents d'un groupe d'événements de contrôle (comme décrit dans la section relative à l'attribut enabledEvents).

Vous pouvez dans certains cas vouloir contrôler un élément associé à aucun com.waveset.object.Type ou représenter un type existant avec une granularité plus poussée.

Par exemple, l'objet WSUser stocke l'ensemble des informations de compte de l'utilisateur dans le référentiel. Au lieu de marquer chaque événement comme de type USER, le processus d'audit scinde l'objet WSUser en deux types d'audit différents (Compte de ressource et Compte Identity Manager). Scinder l'objet de cette façon facilite la recherche d'informations de compte spécifiques dans le journal d'audit.

Ajoutez des types d'audit étendus en les ajoutant à l'attribut extendedObjects. Chaque objet étendu doit avoir les attributs listés dans le tableau suivant.

Tableau 10–15 Attributs d'objet étendus

Argument 

Type 

Description 

name

Chaîne 

Nom du type, est utilisé lors de la construction d'AuditEvents et pendant le filtrage d'événements. 

displayName

Chaîne 

Clé du catalogue de messages représentant le nom du type. 

logDbKey

Chaîne 

Clé de base de données formée de deux caractères à utiliser pour stocker cet objet dans la table du journal. Pour les valeurs réservées, voir Mappages de la base de données du journal d'audit.

supportedActions

Liste 

Actions prises en charge par ce type d'objets. Cet attribut sera utilisé pour la création de requêtes d'audit depuis l'interface utilisateur. Si cette valeur est null, toutes les actions seront affichées comme des valeurs possibles à demander pour ce type d'objets. 

mapsToType

Chaîne 

(facultatif) Nom du com.waveset.object.Type mappant vers ce type, le cas échéant. Cet attribut est utilisé lors des tentatives de résolution de l'appartenance d'un objet à une organisation si cet élément n'est pas déjà spécifié sur l'événement.

organizationalMembership

Liste 

(facultatif) Liste par défaut des ID des organisations où les événements de ce type doivent être placés s'ils n'ont pas déjà une appartenance à une organisation assignée. 

Toutes les clés spécifiques au client doivent commencer par le symbole # pour éviter tout doublon en cas d'ajout de nouvelles clés internes.

L'Exemple 10–6 illustre le type étendu Compte Identity Manager.


Exemple 10–6 Type étendu Compte Identity Manager


<Object name=’LighthouseAccount’> <Attribute name=’displayName’ value=’LG_LIGHTHOUSE_ACCOUNT’/> 
<Attribute name=’logDbKey’ value=’LA’/> <Attribute name=’mapsToType’ value=’User’/> 
<Attribute name=’supportedActions’> <List> <String>Disable</String> <String>Enable</String> 
<String>Create</String> <String>Modify</String> <String>Delete</String> <String>Rename</String> 
</List> </Attribute> </Object>

L'attribut extendedActions

Les actions d'audit mappent normalement vers des objets com.waveset.security.Right. Lorsque vous ajoutez de nouveaux objets Right (droit), vous devez spécifier une logDbKey de deux caractères, qui sera stockée dans la base de données. Vous pouvez rencontrer des cas de figure dans lesquels il n'y a pas de droit correspondant à une action particulière devant être contrôlée. Vous pouvez étendre les actions en les ajoutant à la liste d'objets de l'attribut extendedActions.

Chaque objet extendedActions doit comprendre les attributs listés dans le Tableau 10–16.

Tableau 10–16 Attributs de extendedAction

Attribut 

Type 

Description 

name

Chaîne 

Nom de l'action, est utilisé lors de la construction d'AuditEvents et pendant le filtrage d'événements. 

displayName

Chaîne 

Clé du catalogue de messages représentant le nom de l'action. 

logDbKey

Chaîne 

Clé de base de données formée de deux caractères à utiliser pour stocker cette action dans le tableau du journal. 

Pour les valeurs réservées, voir Mappages de la base de données du journal d'audit.

Toutes les clés spécifiques au client doivent commencer par le symbole # pour empêcher tout doublon en cas d'ajout de nouvelles clés internes.

Le Tableau 10–16 illustre l'ajout d'une action pour Fermer la session.


Exemple 10–7 Ajout d'une action pour Fermer la session


<Object name=’Logout’> <Attribute name=’displayName’ value=’LG_LOGOUT’/> 
<Attribute name=’logDbKey’ value=’LO’/> </Object>

L'attribut extendedResults

En plus d'étendre les types et les actions d'audit, vous pouvez ajouter des résultats. Par défaut, il y a deux résultats : Réussite et Échec. Vous pouvez étendre les résultats en en ajoutant à la liste d'objets de l'attribut extendedResults.

Chaque objet extendedResults doit comprendre les attributs listés dans le Tableau 10–17.

Tableau 10–17 Attributs de extendedResults

Attribut 

Type 

Description 

name (nom)

Chaîne 

Nom du résultat, est utilisé lors de la définition du statut sur activé. 

displayName (Nom à afficher)

Chaîne 

Clé du catalogue de messages représentant le nom d'un résultat. 

logDbKey

Chaîne 

Clé de base de données formée de un caractère à utiliser pour stocker ce résultat dans le tableau du journal. Pour les valeurs réservées, voir la section intitulée Clés de la base de données. 

Toutes les clés spécifiques au client doivent commencer par la plage 0–9 pour empêcher tout doublon en cas d'ajout de nouvelles clés internes.

L'attribut publishers

Tous les éléments de la liste publishers sont des objets génériques. Chaque objet publishers a les attributs suivants.

Tableau 10–18 Attributs de publishers

Attribut 

Type 

Description 

class (Classe)

Chaîne 

Nom de la classe de l'éditeur.  

displayName (Nom à afficher)

Chaîne 

Clé du catalogue de messages représentant le nom de l'éditeur. 

description (Description)

Chaîne 

Description de l'éditeur. 

filters (Filtres)

Liste 

Liste des groupes d'audit assignés à cet éditeur. 

formatter (Programme de formatage)

Chaîne 

Nom du programme de formatage (le cas échéant). 

options (Options)

Liste 

Liste des options de l'éditeur. Ces options sont spécifiques à l'éditeur ; chaque élément de la liste est une représentation de mappe de PublisherOption. Voir exemples dans sample/auditconfig.xml.

Schéma de la base de données

Deux tables du référentiel d'Identity Manager sont utilisées pour stocker les données d'audit :

Ces tables sont examinées au début de cette section.

Lorsque les données du journal d'audit dépassent les limites de longueur de colonne spécifiées pour les tables ci-dessus, Identity Manager tronque les données pour respecter ces limites. La troncature du journal d'audit fait l'objet de la section Troncation du journal d'audit.

Certaines colonnes du journal d'audit ont des limites de longueur configurables. Pour savoir quelles sont ces colonnes et apprendre à en changer la longueur limite, voir Configuration du journal d'audit.

Table waveset.log

Cette section décrit les différents noms de colonnes et types de données figurant dans la table waveset.log. Les types de données sont issus de la définition de la base de données Oracle et varient légèrement d'une base de données à l'autre. Pour la liste des valeurs de schéma pour toutes les bases de données prises en charge, voir l'Annexe BSchéma de la base de données du journal d'audit

Quelques-unes des valeurs des colonnes sont stockées sous forme de clés dans la base de données pour optimiser l'espace. Pour la définition des clés, voir la section intitulée Mappages de la base de données du journal d'audit.

La table waveset.logattr

La table waveset.logattr est utilisée pour stocker les ID d'appartenance organisationnelle pour chaque événement, élément utilisé pour établir l'étendue du journal d'audit par organisation.

Troncation du journal d'audit

Lorsqu'une ou plusieurs colonnes de données du journal d'audit dépassent les limites de longueur de colonne spécifiées, les données de la ou des colonnes concernées sont tronquées. Plus précisément, les données sont tronquées à la limite indiquée moins trois caractères. Une ellipse (...) est ensuite ajoutée aux données de la colonne pour indiquer qu'une troncature a été effectuée.

De plus, la colonne NAME de l'enregistrement d'audit en question est précédée de la chaîne #TRUNCATED# pour faciliter l'interrogation des enregistrements tronqués.


Remarque –

Identity Manager part du principe que le codage UTF–8 est employé lorsqu'il calcule où tronquer les messages. Si votre configuration utilise un codage autre que l'UTF–8, il est possible que les données tronquées dépassent encore la taille de colonne effective dans votre base de données. Si tel est le cas, le message tronqué ne s'affiche pas dans le journal d'audit et une erreur est écrite dans le journal système.


Configuration du journal d'audit

Certaines colonnes du journal d'audit peuvent être configurées pour stocker de grandes quantités de données dans le référentiel.

Redimensionnement des limites de longueur des colonnes

Plusieurs colonnes du journal d'audit ont des limites de longueur configurables. Ces colonnes sont les suivantes :


Remarque –

Pour la description des colonnes du journal d'audit, voir Schéma de la base de données.


Les limites de longueur des colonnes peuvent être modifiées en éditant l'objet RepositoryConfiguration. Pour les instructions à suivre pour éditer l'objet RepositoryConfiguration, voir Édition des objets Configuration Identity Manager.

Un redémarrage du serveur est nécessaire pour que les nouvelles valeurs soient appliquées.

Les paramètres de limite de longueur des colonnes figurant dans l'objet RepositoryConfiguration déterminent la quantité maximale de données pouvant être stockée dans une colonne. Si les données à stocker dépassent ces paramètres, Identity Manager tronque les premières. Pour plus d’informations, voir Troncation du journal d'audit.

Si vous augmentez un paramètre de longueur de colonne dans l'objet RepositoryConfiguration, vérifiez également que le paramètre de taille de colonne de votre base de données est supérieur ou égal à la taille configurée dans l'objet RepositoryConfiguration.

Suppression d'enregistrements dans le journal d'audit

Le journal système doit être tronqué régulièrement afin de ne pas trop devenir trop volumineux. Utilisez la Tâche de maintenance AuditLog pour programmer une tâche qui supprime les anciens enregistrements du journal d'audit.

  1. Dans l'interface administrateur, cliquez sur Tâches du serveur -> Gérer la planification.

  2. Dans la section Tâches disponibles pour planification, cliquez sur Tâche de maintenance AuditLog.

    La page Créer un nouveau programme de tâches Tâche de maintenance AuditLog s'ouvre.

  3. Remplissez le formulaire et cliquez sur Enregistrer.

Utilisation d'éditeurs d'audit personnalisés

Identity Manager peut envoyer des événements de contrôle à des éditeurs d'audit personnalisés.

Les éditeurs personnalisés suivants sont fournis :

Pour créer votre propre éditeur, voir Développement d'éditeurs d'audit personnalisés.

Cette section se compose des rubriques suivantes :

ProcedurePour activer les éditeurs d'audit personnalisés

Les éditeurs d'audit personnalisés s'activent depuis la page Configuration d'audit.

  1. Dans l'interface administrateur, cliquez sur Tâches du serveur dans le menu principal puis sur Audit dans le menu secondaire.

    La page Configuration d’audit s'ouvre.

  2. Sélectionnez l'option Utiliser un éditeur personnalisé au bas de la page.

    Un tableau listant les éditeurs d'audit actuellement configurés s'ouvre.

  3. Pour configurer un nouvel éditeur personnalisé, sélectionnez le type éditeur personnalisé dans le menu déroulant Nouvel éditeur.

    Complétez le formulaire Configurer le nouvel éditeur d’audit. Cliquez sur OK.

  4. Important ! Cliquez sur Enregistrer pour enregistrer le nouvel éditeur.

Types d'éditeurs Console, Fichier, JDBC et Scripté

Pour activer les éditeurs d'audit Console, Fichier, JDBC ou Scripté, suivez les étapes de la section Pour activer les éditeurs d'audit personnalisés. Sélectionnez le type d'éditeur approprié dans le menu déroulant Nouvel éditeur.

Complétez le formulaire Configurer le nouvel éditeur d’audit. Pour toute question sur le formulaire, consultez les i-Helps et l'aide en ligne.

Type d'éditeur JMS

Les éditeurs personnalisés de journal d'audit JMS permettent de publier des enregistrements d'événements de contrôle dans une file d'attente ou une rubrique JMS (Java Message Service).

Avantages de l'utilisation de JMS

Publier sur JMS augmente la flexibilité en matière de corrélation dans les environnements présentant plusieurs serveurs Identity Manager. De plus, JMS peut être utilisé dans des situations caractérisées par des restrictions concernant d'utilisation de l'éditeur de fichier d'audit Fichier, par exemple dans les environnements Windows où le journal peut ne pas être accessible à un outil de génération de rapports client pendant l'exécution du serveur.

JMS offre plusieurs avantages pour les environnements multiserveurs :

Point à point ou publication/inscription ?

Java Message System propose deux modèles pour la messagerie : le modèle point à point ou de mise en attente et le modèle publication/inscription ou à rubriques. Identity Manager prend en charge ces deux modèles.

Dans le modèle point à point, un producteur poste les messages dans une file d'attente donnée et un consommateur lit les messages dans cette file d'attente. Ici, le producteur connaît la destination du message qu'il poste directement dans la file d'attente du consommateur.

Le modèle point à point présente les caractéristiques suivantes :

Le modèle publication/inscription, d'autre part, prend en charge la publication de messages dans une rubrique de messages donnée. Zéro abonnés ou plus peuvent se révéler intéressés par recevoir des messages sur une rubrique de messages donnée. Dans ce modèle, l'éditeur et l'abonné ignorent tout l'un de l'autre. Une bonne métaphore pour ce modèle est le panneau d'affichage anonyme.

Le modèle publication/inscription présente les caractéristiques suivantes :


Remarque –

Pour plus d'informations sur JMS, voir http://www.sun.com/software/products/message_queue/index.xml


Configuration du type d'éditeur JMS

L'éditeur JMS formate les événements de contrôle en messages de texte TextMessages JMS. Ces TextMessages sont ensuite envoyés à une file d'attente ou une rubrique selon la configuration. Les messages de texte peuvent être formatés au format XML ou ULF (Universal Logging Format) selon la configuration.

Pour activer le type d'éditeur JMS, suivez les étapes de la section Pour activer les éditeurs d'audit personnalisés et sélectionnez JMS dans le menu déroulant Nouvel éditeur.

Pour configurer le type d'éditeur JMS, complétez le formulaire Configurer le nouvel éditeur d’audit. Pour toute question sur le formulaire, consultez les i-Helps et l'aide en ligne.

Type d'éditeur JMX

L'éditeur de journal d'audit JMX publie les événements de contrôle de sorte qu'un client JMX (Java Management Extensions) peut contrôler l'activité du journal d'audit d'Identity Manager.

Définition de JMX

Java Management Extensions (JMX) est une technologie Java qui permet la gestion et/ou le contrôle des applications, objets système, périphériques et réseaux orientés services. L'entité gérée/contrôlée est représentée par des objets appelés des MBeans (pour Managed Bean, bean géré).

Implémentation de l'éditeur JMX d'Identity Manager

L'éditeur de journal d'audit JMX d'Identity Manager contrôle le journal d'audit à la recherche d'événements. Lorsqu'un événement est détecté, l'éditeur JMX enveloppe l'enregistrement de l'événement de contrôle avec un MBean et met à jour un historique temporaire (qui est conservé en mémoire). Pour chaque événement, une petite notification séparée est envoyée au client JMX. Si l'événement est digne d'intérêt, le client JMX peut interroger le MBean enveloppant l'événement de contrôle pour obtenir des informations supplémentaires.


Remarque –

Pour toute information sur les enregistrements d'événements de contrôle, voir la javadoc com.waveset.object.AuditEvent. La javadoc est disponible dans le kit REF présenté dans la section Développement d'éditeurs d'audit personnalisés.


Pour récupérer les informations du MBean approprié, un numéro de séquence d'historique est nécessaire. Ce numéro figure dans la notification de l'événement.

Chaque notification d'événement inclut les informations suivantes :

ProcedurePour configurer le type d'éditeur JMX

  1. Pour activer le type d'éditeur JMX, suivez les étapes de la section Pour activer les éditeurs d'audit personnalisés et sélectionnez JMX dans le menu déroulant Nouvel éditeur.

  2. Pour configurer le type d'éditeur JMX, complétez le formulaire Configurer le nouvel éditeur d’audit. Pour toute question sur le formulaire, consultez les i-Helps et l'aide en ligne.

    • Nom de l’éditeur. Saisissez un nom unique pour l'éditeur d'événements de contrôle JMX.

    • Limite de l’historique. Changez la valeur par défaut comme requis pour spécifier le nombre d'éléments événement que l'éditeur doit conserver en mémoire (la valeur par défaut est 100).

  3. Cliquez sur Essai pour vérifier que le Nom de l’éditeur est acceptable.

  4. Cliquez sur OK. Le formulaire Configurer le nouvel éditeur d’audit se ferme.

  5. Important ! Cliquez sur Enregistrer.

Affichage des événements de contrôle avec un client JMX

Utilisez un client JMX pour afficher l'éditeur JMX. JConsole, qui est inclus dans le JDK 1.5, a été utilisé pour créer les captures d'écran suivantes.

Si vous utilisez JConsole, choisissez attach to process (joindre au processus) pour afficher le MBean IDM:type=AuditLog. Pour toute information sur la configuration de JConsole en vue de l'utiliser en tant que client JMX, voir Viewing JMX Data du Sun Identity Manager 8.1 System Administrator’s Guide.

Dans JConsole, cliquez sur l'onglet Notifications pour afficher les événements de contrôle. Notez le numéro de séquence figurant dans la notification. Un numéro de séquence est requis pour interroger le MBean afin d'obtenir des informations supplémentaires.

Figure 10–1 Affichage des notifications d'événement de contrôle de JMX dans JConsole

Figure illustrant comment afficher les notifications d'événement de contrôle de JMX dans JConsole

Interrogation du MBean afin d'obtenir des informations supplémentaires

Dans JConsole, cliquez sur l'onglet Operations (Opérations). Utilisez le numéro de séquence figurant dans la notification pour interroger le MBean afin d'obtenir les détails de l'événement. Toutes les opérations présentent le préfixe « get » et le seul paramètre est le numéro « sequence ».

Figure 10–2 Interrogation du MBean afin d'obtenir des informations supplémentaires dans JConsole

Figure illustrant comment interroger les MBeans pour obtenir des informations sur les événements.

Le MBean est pratiquement un mappage biunivoque vers la classe com.waveset.object.AuditEvent . Le Tableau 10–19 contient la description des différentes paires attribut/opération fournies par MBean.

Tableau 10–19 Description des paires attribut/opération MBeanInfo

Attribut / Opération  

Description 

AccountAttributesBlob

Liste des attributs modifiés 

AccountId

ID de compte associé à l'événement 

Action

Action entreprise pendant l'événement  

AuditableAttributes

Attributs auditables 

ErrorString

Toute chaîne d'erreur 

Interface

L'interface d'audit 

MemberObjectGroupRefs

Références du groupe des objets membres 

ObjectName

Nom de l'objet 

ObjectType

Type de l'objet 

OverflowAttributes

Tous les attributs de dépassement 

Parameters

Tous les paramètres  

Reason

Raison de l'événement 

ResourceName

Ressource associée à l'événement 

RoleName

Rôle associé à l'événement  

SubjectName

Utilisateur ou service associé à l'événement 

Server

Nom du serveur depuis lequel l'événement a été déclenché 

Status

Statut de l'événement de contrôle 

Timestamp

Date et heure de l'événement de contrôle 

Dans JConsole, cliquez sur l'onglet Attributes (Attributs). Les attributs comportent le préfixe Current indiquant qu'ils contiennent le dernier événement de contrôle en date envoyé par le système.

Figure 10–3 Affichage des attributs de Mbeans dans JConsole

Figure illustrant comment afficher les attributs des MBeans dans JConsole.

Développement d'éditeurs d'audit personnalisés

Cette section explique la création d'un nouvel éditeur d'audit personnalisé en Java.

Les éditeurs personnalisés de type Console, Fichier ou JDBC fournis avec Identity Manager implémentent l'interface AuditLogPublisher. Le code source de ces éditeurs figure dans le kit REF. La documentation des interfaces est également disponible dans le kit REF, au format javadoc (voir la javadoc pour les détails de l'interface).


Remarque –

Le kit REF (Resource Extension Facility) figure dans le répertoire /REF du CD de votre produit ou a été fourni avec votre image d'installation.


Les développeurs sont encouragés à étendre la classe AbstractAuditLogPublisher. Cette classe analyse la configuration et contrôle que toutes les options obligatoires ont été fournies à l'éditeur (voir les exemples d'éditeurs du kit REF).

Les éditeurs doivent avoir un constructeur no-arg.

Cycle de vie des éditeurs

    Les étapes suivantes illustrent le cycle de vie d'un éditeur.

  1. L'objet est généré.

  2. Le programme de formatage (le cas échéant) est défini en utilisant la méthode setFormatter().

  3. Les options sont fournies en utilisant la méthode configure(Mappe).

  4. Les événements sont publiés en utilisant la méthode publish(Mappe, GestionnaireErreursJournalisation).

  5. L'éditeur est terminé en utilisant la méthode shutdown().

Les étapes 1 à 3 sont exécutées lorsqu'Identity Manager démarre et à chaque fois que la configuration d'audit est mise à jour. L'étape 4 n'a pas lieu si aucun événement de contrôle n'est généré avant l'appel de shutdown.

configure(Mappe ) n'est appelé qu'une fois sur le même objet d'éditeur (un éditeur n'a aucune préparation à effectuer pour les changements de configuration à la volée). Une fois la configuration d'audit mise à jour, les éditeurs courants sont arrêtés puis les nouveaux éditeurs sont créés.

La méthode configure() mentionnée à l'étape 3 peut émettre une WavesetException. Dans ce cas, l'éditeur sera ignoré et aucun autre appel ne sera effectué à l'adresse de l'éditeur.

Configuration des éditeurs

Les éditeurs peuvent avoir zéro options ou plus. La méthode getConfigurationOptions() retourne la liste des options prises en charge par l'éditeur. Les options sont encapsulées en utilisant la classe PublisherOption (voir la javadoc pour les détails de cette classe). L'afficheur de la configuration d'audit appelle cette méthode quand il compile l'interface de configuration pour l'éditeur.

Identity Manager configure l'éditeur en utilisant la méthode configure( Mappe) au démarrage du serveur et après les changements de configuration d'audit.

Développement de programmes de formatage

Le kit REF comprend le code source des programmes de formatage suivants :

Les programmes de formatage doivent implémenter l'interface AuditRecordFormatter. De plus, ces programmes doivent avoir un constructeur no-arg. Pour de plus amples détails, consultez la javadoc incluse dans le kit REF.

Enregistrement des éditeurs/programmes de formatage

L'attribut d'audit de l'objet #ID#Configuration:SystemConfiguration liste l'ensemble des éditeurs et programmes de formatage enregistrés. Ces éditeurs et programmes de formatage sont les seuls disponibles dans l'interface utilisateur de configuration d'audit.