Notes de version de Sun™ Identity Manager 8.0 |
Ajouts et corrections de la documentation
Cette section contient des informations nouvelles ou corrigées depuis la publication de la documentation relative à Identity Manager 8.0. Ces informations sont organisées comme suit :
Administration d’Identity Manager 8.0Cette section apporte des corrections au document Sun Identity Manager Administration :
- L’ouvrage consacré à l’Administration contient la remarque suivante à la page 340 :
Identity Manager utilise les modèles d’e-mail pour envoyer des informations et des requêtes d’actions aux administrateurs, approbateurs et utilisateurs. Pour plus d’informations sur les modèles d’e-mail d’Identity Manager, reportez-vous à section intitulée Compréhension des modèles d’e-mail dans ce guide.
Présentation du déploiement technique de Sun Identity ManagerCette section contient de nouvelles informations et apporte des corrections concernant la Présentation du déploiement technique de Sun Identity Manager :
Les informations suivantes doivent être ajoutées à, ou corrigées en, le « Private Labeling » d’Identity Manager », chapitre Présentation du déploiement technique de Sun Identity Manager :
PRODUCT_NAME=Identity Manager
LIGHTHOUSE_DISPLAY_NAME=[PRODUCT_NAME]
LIGHTHOUSE_TYPE_DISPLAY_NAME=[PRODUCT_NAME]
LIGHTHOUSE_DEFAULT_POLICY=Stratégie de compte [PRODUCT_NAME] par défaut
Pour plus d’informations sur les catalogues personnalisés, reportez-vous à l’Annexe B, « Activation de l'internationalisation ».
Dans les pages utilisateur final d’Identity Manager, l’UserForm de navigation de l’utilisateur final dans lenduser.xml détermine le mode d’affichage de la barre de navigation horizontale. Les pages de l’utilisateur final contiennent un userHeader.jsp qui renferment un autre JSP nommé menuStart.jsp. Le menuStart.jsp permet d’accéder à deux objets de configuration système :
- ui.web.user.showMenu – Bascule le mode d’affichage du menu de navigation entre on (actif) et off (inactif) (la valeur par défaut est true)
- ui.web.user.menuLayout – Détermine si le menu est généré sous forme de barre de navigation (horizontale) avec des onglets ou de menu à arborescence (verticale).
(la valeur par défaut est horizontale.)Les classes de styles CSS déterminant le mode de rendu du menu se trouvent dans style.css.
- Vous pouvez recourir à des feuilles de style CSS (Cascading Style Sheet) pour définir la largeur des colonnes sur une valeur fixe (exprimée sous forme de pixels ou de pourcentage) dans les tableaux Liste des utilisateurs et Liste des ressources. Pour ce faire, ajoutez les classes de styles suivantes (mises en commentaire par défaut) à customStyle.css. Vous pouvez ensuite modifier les valeurs afin de satisfaire aux conditions requises par l’utilisateur.
th#UserListTreeContent_Col0 {
width: 1px;
}th#UserListTreeContent_Col1 {
width: 1px;
}th#UserListTreeContent_Col2 {
width: 50%;
}th#UserListTreeContent_Col3 {
width: 50%;
}th#ResourceListTreeContent_Col0 {
width: 1px;
}th#ResourceListTreeContent_Col1 {
width: 1px;
}th#ResourceListTreeContent_Col2 {
width: 33%;
}th#ResourceListTreeContent_Col3 {
width: 33%;
}th#ResourceListTreeContent_Col4 {
width: 33%;
}
Vous avez également la possibilité de redimensionner les colonnes des tableaux en cliquant et en déplaçant la bordure droite de l’en-tête de colonne voulu. Lorsque vous placez le pointeur sur la bordure droite d’un en-tête de colonne, il prend la forme d’une flèche de redimensionnement horizontale. Pour redimensionner la colonne, cliquez avec le bouton gauche de la souris et déplacez le pointeur. L’opération prend fin lorsque vous relâchez le bouton de la souris.
- Les clients qui veulent utiliser les fonctions JavaScript personnalisées spécifiquement dans la barre de navigation (onglets) de l’utilisateur final doivent faire référence à ce formulaire en utilisant endUserNavigation. Par exemple : document.forms['endUserNavigation'].elements. (ID-13769)
- Le tableau de bord Examen des accès et le rapport détaillé de l’examen des accès affichent tous deux des instances des examens consignées dans les journaux d’audit. En l’absence de toute maintenance de la base de données, les journaux d’audit ne sont jamais élagués et la liste des examens ne cesse d’augmenter. Identity Manager vous permet de limiter les examens affichés à une durée spécifique. Pour modifier cette limite dans le temps, personnalisez les fichiers compliance/dashboard.jsp (pour le tableau de bord) et sample/auditortasks.xml (pour le rapport détaillé). (Par défaut, seuls les examens vieux de moins de 2 ans sont disponibles.)
Pour limiter les examens inclus dans le tableau de bord des examens d’accès, personnalisez le fichier compliance/dashboard.jsp en procédant comme suit :
- Ouvrez le fichier compliance/dashboard.jsp dans Identity Manager IDE ou dans l’éditeur de votre choix :
- Remplacez la ligne : form.setOption("maxAge", "2y") ; par form.setOption("maxAge", "6M"); afin de limiter la liste aux examens exécutés au cours des 6 derniers mois.
Les qualificateurs sont les suivants :
Pour afficher tous les examens figurant encore dans les journaux d’audit, mettez en commentaire la ligne suivante.
Pour limiter les examens inclus dans le rapport détaillé des examens d’accès :
Chaque examen d’accès périodique comprend un ensemble d’enregistrements UserEntitlement créés au moment de son exécution. Ces enregistrements, qui s’accumulent au fil du temps, fournissent des informations précieuses sur l’historique des comptes. Cependant, pour ménager l’espace disponible dans la base de données, il est recommandé de supprimer des enregistrements. Pour ce faire, exécutez Tâche du serveur > Exécuter la tâche > Supprimer l’examen des accès. La suppression d’un examen est consignée dans le journal d’audit et entraîne la suppression de tous les enregistrements UserEntitlement associés à cet examen, ce qui permet d’économiser de l’espace sur la base de données.
- L’exemple de code 5-5 contient des informations devant figurer dans l’exemple de code 5-4.
L’exemple de code 5-4 doit être rectifié comme suit :
L’exemple de code 5.5 doit être rectifié comme suit :
Exemple de code 5-5 Modification des onglets du panneau des onglets
table.Tab2TblNew td {background-image:url(../images/other/dot.gif);background-repeat:repeat-x;background-positi on:left top;background-color:#CCCCFF;border:solid 1px #8f989f}
table.Tab2TblNew td.Tab2TblSelTd {border-bottom:none;background-image:url(../images/other/dot.gif);background-repeat:repeat- x;background-position:left bottom;background-color:#FFF;border-left:solid 1px #8f989f;border-right:solid 1px #8f989f;border-top:solid 1px #8f989f}
userHeader.jsp, inclus dans toutes les pages de l’utilisateur final, comprend un autre JSP intitulé menuStart.jsp. Ce JSP permet d’accéder à deux objets de configuration système :
- ui.web.user.showMenu : permet d’afficher ou de masquer le menu de navigation (paramètre par défaut : true).
- ui.web.user.menuLayout : détermine si le menu est généré en tant que barre de navigation horizontale comportant des onglets (paramètre par défaut : horizontal) ou en tant que menu à arborescence verticale (vertical).
Les classes de styles CSS déterminant le mode de rendu du menu se trouvent dans style.css.
- L’exemple de code inclus dans la section « Changing Masthead Appearance » (Changement de l’aspect du cadre Masthead) liste par erreur la première ligne comme étant « MstDiv ». Cette ligne devrait indiquer « .MstDiv ». (ID-16072)
- La section intitulée « Customizing the Browser Bar » (Personnalisation de la barre du navigateur) a été révisée comme suit : (ID-16073)
Vous pouvez maintenant remplacer la chaîne du nom du produit dans la barre de titre du navigateur par une chaîne localisable de votre choix.
- Importez le fichier XML suivant :
Exemple de code 1 XML à importer
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE Configuration PUBLIC 'waveset.dtd' 'waveset.dtd'>
<Configuration name='AltMsgCatalog'>
<Extension>
<CustomCatalog id='AltMsgCatalog' enabled='true'>
<MessageSet language='en' country='US'>
<Msg id='UI_BROWSER_TITLE_PROD_NAME_OVERRIDE'>Override Name</Msg>
</MessageSet>
</CustomCatalog>
</Configuration>
</Extension>
- En utilisant Identity Manager IDE, chargez l’objet Configuration système pour l’éditer. Ajoutez un nouvel attribut de niveau supérieur :
Name = customMessageCatalog
Type = string
Value = AltMsgCatalog
- Ouvrez l’objet générique ui.web et recherchez l’attribut browserTitleProdNameOverride. Définissez cette valeur sur true.
- Enregistrez la modification ainsi apportée à l’objet Configuration système et redémarrez votre serveur d'application.
- La discussion relative à la personnalisation des pages de connexion dans « Personnalisation des pages de l’utilisateur final d’Identity Manager » devrait inclure les informations suivantes sur les clés de messages. (ID-16072)
JSP ou composant de Identity Manager
Interface affectée
Clé de message
TITRE de la page de connexion
Administrateur et utilisateur
UI_LOGIN_TITLE_TO_RESOURCE
UI_LOGIN_CHALLENGE
SOUS-TITRE de la page de connexion
Administrateur et utilisateur
Sélectionnez une clé en fonction du mode de connexion : Forgot Password (Mot de passe oublié), Forgot User ID (ID utilisateur oublié), Login Challenge (Repêchage).
UI_LOGIN_WELCOME3
UI_LOGIN_WELCOME4
UI_LOGIN_WELCOME5
UI_LOGIN_WELCOME6
UI_LOGIN_CHALLENGE_INFO
staticLogout.jsp et user/staticUserLogout.jsp
Administrateur et utilisateur
UI_LOGIN_TITLE
continueLogin.jsp
Administrateur
UI_LOGIN_IN_PROGRESS_TITLE
UI_LOGIN_WELCOME
- Les instructions pour la modification du texte « Connecté en tant que…. » dans le « changement des valeurs par défaut », devrait être corrigé de la façon suivante : (ID-18545)
- La remarque suivante doit être ajoutée après l’information deactivateDate dans la section « fonctionnalités » section de l’Annexe A, « Modification des objets Configuration ».
Remarque
Vous pouvez définir activateDate comme deactivateDate sur true, même siuserAssignment.manual n’est pas. Si vous définissez les deux attributs sur true pour un type de rôle et si le rôle est contenu en option dans un autre rôle, vous pouvez spécifier l’activation ou la désactivation des dates quand vous assignez un rôle optionnel à un utilisateur.
Changement de la valeur par défaut « Connecté en tant que…. » Texte
- Importez le fichier XML suivant :
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE Configuration PUBLIC 'waveset.dtd' 'waveset.dtd'>
<Configuration name='AltMsgCatalog'>
<Extension>
<CustomCatalog id='AltMsgCatalog' enabled='true'>
<MessageSet language='en' country='US'>
<Msg id='UI_NAV_FOOT_LOG_AS'>mytext {0}!</Msg>
</MessageSet>
</CustomCatalog>
</Extension>
</Configuration>
- Ajoutez la ligne suivante à l’objet de configuration système dans l’élément <Configuration><Extension><Object> :
Flux de travaux, formulaires et vues de Sun Identity ManagerCette section contient de nouvelles informations et apporte des corrections concernant Flux de travaux, formulaires et vues de Sun Identity Manager.
Chapitre 1, Identity Manager Workflow (Flux de travaux Identity Manager)
Attestation automatique des test
Cet élément de travail permet de tester les nouvelles règles de détermination de l’examen sans créer d’éléments de travail d’attestation. En outre, il se termine simplement quelques instants après son démarrage. Il laisse tous les objets d’habilitations d’utilisateur dans l’état dans lequel ils se trouvaient lors de leur création par le balayage d’accès. Faites appel aux options Terminer et Supprimer pour nettoyer les résultats des balayages d’accès exécutés au moyen de ce flux de travaux.
Vous pouvez importer ce flux de travaux souche selon les besoins. (Identity Manager ne l’importe pas automatiquement.)
- La fonction de conformité d’Identity Manager utilise les flux de travaux en tant que points d’intégration et de personnalisation pour l’application. Les flux de travaux relatifs à la conformité par défaut sont décrits ci-dessous. (ID-15447)
Nom du flux de travaux
Objectif
Résolution
Résolution dans le cas d’un seul programme de résolution fonctionnant avec une seule violation de conformité
Résolution de l’examen des accès
Résolution dans le cas d’un seul programme de résolution fonctionnant avec une seule habilitation d’utilisateur
Attestation
Résolution dans le cas d’un seul attestateur fonctionnant avec une seule habilitation d’utilisateur
Résolution multiple
Résolution dans le cas d’une seule violation de conformité et de plusieurs programmes de résolution
Mise à jour de la violation de conformité
Atténuation d’une violation de conformité
Lancement d’un balayage des accès
Lancement d’une tâche de balayage des accès à partir d’une tâche d’examen des accès
Lancement d’un nouveau balayage des habilitations
Lancement d’un nouveau balayage des accès s’appliquant à un utilisateur unique
Lancement d’un nouveau balayage de violation
Lancement d’un nouveau balayage des stratégies d’audit s’appliquant à un utilisateur unique
- La description de la propriété maxSteps a été révisée comme suit : (ID-15618)
Indique le nombre maximum d’étapes autorisé dans tous les processus ou sous-processus de flux de travaux. Une fois ce niveau dépassé, Identity Manager met un terme au flux de travaux. Ce paramètre sert de mesure de protection lors de la détection d’un flux de travaux bloqué dans une boucle sans fin. La valeur par défaut définie dans le flux de travaux proprement dit est 0, ce qui indique qu’Identity Manager devrait déduire la valeur réelle du paramètre à partir du paramètre global stocké dans l’attribut workflow.maxSteps de l’objet SystemConfiguration. La valeur de ce paramètre global est 5 000.
Exécute Beanshell ou JavaScript en fonction du script fourni. En tant que tâche, l’exécuteur peut être planifié de manière périodique. Par exemple, vous pouvez l’utiliser pour exporter des données du référentiel vers une base de données à des fins de rapport et d’analyse. Parmi les avantages que présente cette fonction, citons l’écriture d’une tâche personnalisée ne nécessitant pas la rédaction d’un code Java personnalisé. (Les codes Java personnalisés requièrent une recompilation lors de chaque mise à niveau et doivent être déployés sur chaque serveur ; le script étant incorporé dans la tâche Scripted Task Executor, il est inutile désormais de le recompiler ou de le déployer.)
Chapitre 2 « Workflow Services (Services de flux de travaux)
- Le tableau Arguments du service de flux de travaux de session createView est inexact. Le tableau suivant décrit les arguments disponibles dans ce service.(ID-14201)
Tableau 1
Nom
Obligatoire
Valeurs correctes
Description
op
oui
createView
viewId
oui
Spécifie le type d’affichage à créer.
options
non
Spécifie les options spécifiques de l’affichage. Les valeurs que vous pouvez passer sont spécifiques à la vue utilisée. Le plus courant est l’affichage Utilisateur.
Les options figurent dans session.UserViewConstants. Les vues les plus simples devraient déclarer leurs constantes optionnelles dans le fichier Viewer.java.
La deuxième vue la plus utilisée depuis le flux de travaux est très probablement ProcessViewer, suivie de PasswordViewer, DisableViewer, EnableViewer et RenameViewer. Ceux-ci par comparaison ont peu d’options.
- La description du service de flux de travaux disableUser devrait indiquer clairement que le comportement par défaut de ce service consiste à désactiver le compte Identity Manager ainsi que le compte de ressources. (ID-14572) Si vous ne voulez pas désactiver le compte Identity Manager, insérez l’argument suivant :
La discussion portant sur les arguments de cette méthode devrait indiquer ce qui suit :
Nom
Obligatoire
Valeurs correctes
Description
op
oui
disableUser
accountId
oui
Identifie l’utilisateur d'Identity Manager dont les comptes doivent être désactivés.
doWaveset
non
true/false
Si cet argument est sur true, le compte Identity Manager est désactivé pour cet utilisateur. S’il n’est pas fourni, l’argument passe par défaut à true et le compte est désactivé.
services
non
Identifie une liste de ressources à désactiver. Si cet argument n’est pas fourni, tous les comptes de ressources de l?utilisateur sont désactivés.
Service de flux de travaux de provisioning de verrouillage
S’utilise pour verrouiller un objet.
Argument
Obligatoire
Description
objet
non
Indique l’objet effectif de l’appel. Si cet argument n’est pas fourni, Identity Manager utilise l’objet de la tâche. Si la valeur de cet argument est « none » (aucune), Identity Manager n’effectue aucune autorisation.
options
non
(Mappe) Mappe de valeurs de paires nom d’une option/valeur de cette option. Si cet argument n’est pas fourni, les arguments spécifiques ci-dessous sont utilisés. S’il est fourni, les arguments spécifiques ci-dessous sont prioritaires par rapport au même argument contenu dans cette mappe d’options.
accountId
non
(Chaîne) Identifie le nom de l’utilisateur d’Identity Manager à verrouiller.
adminName
non
(Chaîne) Identifie le nom de l’administrateur effectuant l’opération.
loginAppName
non
(Chaîne) Spécifie le nom de l’application de connexion.
op
oui
La valeur correcte est unlock
Cette méthode retourne une valeur nulle.
Service de flux de travaux de déverrouillage
S’utilise pour déverrouiller un objet verrouillé.
Tableau 1
Argument
Obligatoire
Description
objet
non
(Chaîne) Indique l’objet effectif de l’appel. Si cet argument n’est pas fourni, l’objet de la tâche est utilisé. Si la valeur de cet argument est « none » (aucune), aucune autorisation n’est effectuée.
options
non
(Mappe) Mappe de valeurs de paires nom d’une option/valeur de cette option. Si cet argument n’est pas fourni, Identity Manager utilise les arguments spécifiques ci-dessous. S’il est fourni, les arguments spécifiques ci-dessous sont prioritaires par rapport au même argument contenu dans cette mappe d’options.
accountId
non
(Chaîne) Identifie le nom de l’utilisateur d’Identity Manager à déverrouiller.
adminName
non
(Chaîne) Identifie le nom de l’administrateur effectuant l’opération.
loginAppName
non
(Chaîne) Spécifie le nom de l’application de connexion.
doLighthouse
non
(Valeur booléenne) Indique si déverrouiller ou non le compte Identity Manager.
doResources
non
(Valeur booléenne) Indique si déverrouiller ou non les ressources de l’utilisateur.
doAuthenticators
non
(Valeur booléenne) Si cet argument est sur true, l’authentification d’intercommunication est déverrouillée.
op
oui
La valeur correcte est unlock.
Cette méthode retourne un WavesetResult avec le résultat de l’opération.
Utilisé pour supprimer une tâche reportée depuis un objet d’Identity Manager. Identity Manager assurera que l’administrateur qui a lancé le flux de travaux soit autorisé à supprimer l’objet.
Tableau 2 Arguments de la méthode removeDeferredTask
Nom
Obligatoire
Valeurs correctes
Description
type
non
Les valeurs valides sont la liste des types
Spécifie le type de l’objet duquel la tâche reportée sera supprimée. Si cet argument n’est pas fourni, le type passe par défaut à user.
name
oui
Spécifie le nom de l’objet duquel la tâche reportée sera supprimée.
task
Spécifie le nom de la TaskDefinition à supprimer.
Chapitre 3 Identity Manager Forms » (Formulaires d’Identity Manager)
Les formulaires d’audit et de conformité d’Identity Manager disposent d’une caractéristique unique parmi les formulaires Identity Manager : vous pouvez assigner un formulaire par utilisateur ou par organisation. Les premiers peuvent accroître l’efficacité du traitement des attestations et des résolutions.
Par exemple, vous pouvez spécifier le formulaire utilisateur affiché par Identity Manager à des fins d’édition d’un utilisateur dans le contexte d’un examen des accès, d’une résolution ou encore d’une résolution de violation de conformité. Vous définissez ce formulaire utilisateur au niveau de l’utilisateur ou de l’organisation. Lorsqu’Identity Manager balaie une nouvelle fois un utilisateur dans le contexte d’un nouveau balayage des examens d’accès ou d’une résolution d’un examen des accès, l’opération respecte les stratégies d’audit établies dans le balayage des accès. Vous pouvez configurer cette procédure pour qu’elle comprenne les stratégies d’audit de conformité continues.
Informations connexes
- Reportez-vous au guide Identity Manager Administration pour une description des concepts sous-jacents aux caractéristiques de conformité et d’audit d’Identity Manager de même que pour prendre connaissance des procédures de base d’implémentation des caractéristiques d’audit et de conformité par défaut.
- Pour une approche générale des règles ainsi que des informations spécifiques sur les règles de résolution, consultez la section Identity Manager Rules (Règles d’Identity Manager) du guide Identity Manager Deployment Tools.
À propos du traitement des formulaires d’audit
À l’instar des formulaires userForm et viewUserForm, vous pouvez définir le formulaire sur un utilisateur particulier ou sur une organisation, et l’utilisateur (ou l’ensemble des utilisateurs d’une organisation) s’en servira. Si vous configurez un formulaire sur les deux éléments à la fois, celui défini sur un utilisateur a priorité sur l’autre. Lorsque vous recherchez le formulaire, Identity Manager parcourt les organisations en remontant.
Les formulaires d’audit se comportent de la même manière que les formulaires utilisateur et les formulaires d’affichage utilisateur : chaque utilisateur peut désigner un formulaire spécifique à appliquer et la résolution du formulaire dont doit se servir un utilisateur particulier respecte l’organisation de l’utilisateur.
Spécification d’un formulaire utilisateur
Les formulaires Liste des stratégies d’audit et Liste des balayages d’accès prennent en charge une propriété fullView indiquant au formulaire d’afficher une grande quantité de données sur les éléments figurant dans la liste. Définissez cette stratégie sur false afin d’optimiser les performances de l’afficheur de listes.
Le formulaire de liste d’approbation des accès dispose d’une propriété similaire intitulée includeUE tandis que le formulaire de liste de résolution utilise la propriété includeCV.
Formulaires d’audit par défaut
Le tableau suivant identifie les formulaires d’audit par défaut fournis avec Identity Manager.
Tableau 2
Nom du formulaire
Nom mappé
Contrôle utilisateur
Objectif général
Liste d’approbation des accès
accessApprovalList
Affiche la liste des éléments de travail d’attestation.
Confirmation de la suppression de l’examen des accès
accessReviewDeleteConfirmation
Confirme la suppression d’un examen des accès.
Confirmation de l’abandon de l’examen des accès
accessReviewAbortConfirmation
Confirme l’abandon d’un examen des accès.
Tableau de bord des examens d’accès
accessReviewDashboard
Affiche la liste de tous les examens d’accès.
Formulaire de résolution de l’examen des accès
accessReviewRemediationWorkItem
Oui
Génère chaque élément de travail de résolution par habilitation d’utilisateur
Récapitulatif de l’examen des accès
accessReviewSummary
Affiche des informations détaillées sur un examen des accès spécifique.
Formulaire de balayage des accès
accessScanForm
Affiche ou édite un balayage des accès.
Liste des balayages d’accès
accessScanList
Affiche la liste de tous les balayages d’accès.
Confirmation de la suppression du balayage des accès
accessScanDeleteConfirmation
Confirme la suppression d’un balayage des accès.
Liste d’approbation des accès
attestationList
Oui
Génère la liste de toutes les attestations en attente
Formulaire d’attestation
attestationWorkItem
Oui
Génère chaque élément de travail d’attestation
Formulaire d’habilitation d’utilisateur
userEntitlementForm
Affiche le contenu d’une habilitation d’utilisateur
Formulaire du récapitulatif des habilitations d’utilisateur
userEntitlementSummaryForm
Formulaire d’informations détaillées sur les violations
violationDetailForm
Affiche des informations détaillées sur une violation de conformité
Liste de résolution
remediationList
Oui
Affiche une liste d’éléments de travail de résolution
Liste des stratégies d’audit
auditPolicyList
Affiche une liste de stratégies d’audit
Formulaire de confirmation de suppression de la stratégie d’audit
auditPolicyDeleteConfirmation
Confirme la suppression d’une stratégie d’audit
Formulaire de détails de la violation des conflits
conflictViolationDetailsForm
Affiche la matrice de violation SOD
Formulaire du récapitulatif de la violation de conformité
complianceViolationSummaryForm
Formulaire de résolution
reviewWorkItem
Oui
Génère une violation de conformité
En quoi la personnalisation de ces formulaires présente-t-elle de l’intérêt ?
Les attestateurs et les programmes de résolution ont la possibilité de spécifier des formulaires indiquant exactement le niveau de détail voulu pour accroître l’efficacité des opérations d’attestation et de résolution. Par exemple, un attestateur de ressources peut afficher des attributs spécifiques à une ressource dans le formulaire pour autoriser l’attestation sans avoir à vérifier chaque élément de travail. Comme ce formulaire ne serait pas le même suivant le type de ressource (et les attributs) concerné, la personnalisation du formulaire par attestateur se révèle intéressante.
Au cours de l’attestation, chaque attestateur peut consulter les habilitations d’un point de vue unique. Ainsi, l’attestateur idmManager peut visualiser une habilitation d’utilisateur de manière générale tandis qu’un attestateur de ressources s’intéresse uniquement aux données se rapportant à la ressource. En permettant à chaque attestateur de personnaliser à la fois le formulaire de liste d’attestations et le formulaire d’éléments de travail d’attestation (AttestationWorkItem) dans le but de récupérer et d’afficher uniquement les informations dont ils ont besoin, vous pouvez accroître l’efficacité de l’interface du produit.
Variables des tâches de balayage
Les définitions des tâches de balayage des stratégies d’audit et de balayage des accès indiquent toutes deux les formulaires à utiliser lors du lancement de la tâche. Ces formulaires comprennent des champs permettant de contrôler la plupart (et non la totalité) des variables de tâches de balayage.
Nom de la variable
Valeur par défaut
Objectif
maxThreads
5
Identifie le nombre d’utilisateurs pouvant travailler simultanément lors d’un seul balayage. Augmentez cette valeur pour accroître potentiellement la capacité de traitement lors du balayage d’utilisateurs dont les comptes se trouvent sur des ressources extrêmement lentes.
userLock
5000
Indique le temps (en ms) passé à tenter d’obtenir le verrou s’appliquant à l’utilisateur à balayer. Si plusieurs opérations de balayage s’appliquent simultanément au même utilisateur et si celui-ci dispose de ressources peu rapides, l’augmentation de cette valeur peut réduire le nombre d’erreurs de verrouillage, mais entraîner un balayage global plus lent.
scanDelay
0
Indique le délai d’attente (en ms) entre deux threads de balayage. Cette valeur peut être définie sur un nombre positif afin d’obliger le balayage à consommer moins de CPU.
Calcule une valeur booléenne. Si ce paramètre est défini sur true, le champ et tous les champs imbriqués sous-jacents sont ignorés lors du traitement du formulaire actuel.
Abstenez-vous de créer des activités potentiellement longues à exécuter dans les éléments de type Disable. Ces expressions sont exécutées chaque fois que le formulaire est recalculé. Optez plutôt pour un élément de formulaire qui n’est pas exécuté aussi fréquemment.
- La section intitulée Inserting Javascript into a Form (Insertion d’un script JavaScript dans un formulaire) affirme de manière erronée que vous pouvez inclure un script JavaScript dans un formulaire à l’aide d’une balise <JavaScript> (ID-15741). Pour inclure un script JavaScript, procédez comme suit :
- Vous pouvez dorénavant insérer des messages d’alerte de type avertissement (WARNING), erreur (ERROR) ou information (OK) dans un formulaire XPRESS. (ID-14540, ID-14953)
Remarque
Bien que cet exemple illustre le mode d’insertion d’un objet ErrorMessage de type avertissement (Warning) dans un formulaire, vous pouvez assigner un niveau de gravité différent.
- Servez-vous d’Identity Manager IDE pour ouvrir le formulaire auquel vous souhaitez ajouter l’avertissement.
- Insérez <Property name='messages'> dans la classe d’affichage EditForm ou HtmlPage principale.
- Ajoutez le bloc de code <defvar name=‘msgList’> à partir de l’exemple de code suivant.
- Remplacez la clé de message permettant d’identifier le texte du message à afficher dans la zone Alert (Alerte) de la chaîne d’exemple de code :
<message name=‘UI_USER_REQUESTS_ACCOUNTID_NOT_FOUND_ALERT_VALUE >
- Enregistrez puis fermez le fichier.
Exemple de code
<Display class='EditForm'>
<Property name='componentTableWidth' value='100%'/>
<Property name='rowPolarity' value='false'/>
<Property name='requiredMarkerLocation' value='left'/>
<Property name='messages'>
<ref>msgList</ref>
</Property>
</Display>
<defvar name='msgList'>
<cond>
<and>
<notnull>
<ref>username</ref>
</notnull>
<isnull>
<ref>userview</ref>
</isnull>
</and>
<list>
<new class='com.waveset.msgcat.ErrorMessage'>
<invoke class='com.waveset.msgcat.Severity' name='fromString'>
<s>warning</s>
</invoke>
<message name='UI_USER_REQUESTS_ACCOUNTID_NOT_FOUND_ALERT_VALUE'>
<ref>username</ref>
</message>
</new>
</list>
</cond>
</defvar>
La classe d’affichage Hidden (Caché) correspond au composant HTML <input type=hidden’/>. Ce composant prend uniquement en charge les types de données à une valeur car il n’y a pas moyen de sérialiser et de désérialiser de manière fiable les types de données à valeurs multiples. (ID-16904)
Si vous avez une liste que vous voulez rendre sous forme de chaîne, vous devez la convertir en chaîne de manière explicite. Par exemple :
- Vous pouvez maintenant définir la propriété RequiresChallenge du formulaire de changement de mot de passe de l’interface Utilisateur final pour obliger les utilisateurs à ressaisir leur mot de passe courant avant de changer le mot de passe sur leur compte. Vous trouverez un exemple de la définition de cette propriété dans le formulaire Basic Change Password dans enduser.xml. (ID-17309)
Chapitre 4, Identity Manager Views (Affichages d'Identity Manager)
Attributs communs
Les attributs de haut niveau de la vue Org sont répertoriés dans le tableau suivant.
Nom
Modifiable ?
Type de données
Obligatoire ?
orgName
Lecture
Chaîne
Généré par le système
orgDisplayName
Lecture/écriture
Chaîne
Oui
orgType
Lecture/écriture
Chaîne
Non
orgId
Lecture
Chaîne
Généré par le système
orgAction
Écriture
Chaîne
Non
orgNewDisplayName
Écriture
Chaîne
Non
orgParentName
Lecture/écriture
Chaîne
Non
orgChildOrgNames
Lecture
List
Généré par le système
orgApprovers
Lecture/écriture
List
Non
allowsOrgApprovers
Lecture
List
Généré par le système
allowedOrgApproverIds
Lecture
List
Généré par le système
orgUserForm
Lecture/écriture
Chaîne
Non
orgViewUserForm
Lecture/écriture
Chaîne
Non
orgPolicies
Lecture/écriture
List
Non
orgAuditPolicies
Lecture/écriture
List
Non
renameCreate
Lecture/écriture
Chaîne
Non
renameSaveAs
Lecture/écriture
Chaîne
Non
orgName
Identifie l’UID (User Identifier, identifiant utilisateur) de l’organisation. Cette valeur diffère de la plupart des noms d’objets de vue, car les organisations peuvent disposer du même nom abrégé, mais d’organisations parent différentes.
orgDisplayName
Indique le nom abrégé de l’organisation. Cette valeur sert à des fins d’affichage uniquement et ne doit pas nécessairement être unique.
orgType
Définit le type d’organisation où les valeurs admises sont junction ou virtual. Les organisations dont le type est différent de junction ou de virtual ne comportent pas de valeur.
orgId
Spécifie l’ID permettant d’identifier de manière unique l’organisation au sein d’Identity Manager.
orgAction
Uniquement pris en charge par les jonctions d’annuaires, les organisations virtuelles et les organisations dynamiques. La valeur admise est refresh. Lorsqu’une organisation correspond à une jonction d’annuaires ou à une organisation virtuelle, le comportement de l’opération d’actualisation varie en fonction de la valeur de l’attribut orgRefreshAllOrgsUserMembers.
orgNewDisplayName
Spécifie le nouveau nom abrégé lorsque vous renommez l’organisation.
orgParentName
Identifie le chemin d’accès complet de l’organisation parent.
orgChildOrgNames
Dresse la liste des noms d’interface d’Identity Manager pour toutes les organisations enfant directes et indirectes.
orgApprovers
Dresse la liste des administrateurs d’Identity Manager devant approuver les utilisateurs ajoutés à l’organisation ou modifiés dans celle-ci.
allowedOrgApprovers
Dresse la liste des noms d’utilisateur potentiels pouvant servir d’approbateurs pour les utilisateurs ajoutés à l’organisation ou modifiés dans celle-ci.
allowedOrgApproverIds
Dresse la liste des ID d’utilisateur potentiels pouvant servir d’approbateurs pour les utilisateurs ajoutés à l’organisation ou modifiés dans celle-ci.
orgUserForm
Spécifie le formulaire utilisateur (userForm) appliqué par les utilisateurs membres de cette organisation lors de la création ou de la modification d’utilisateurs.
orgViewUserForm
Spécifie le formulaire d’affichage utilisateur appliqué par les utilisateurs membres de cette organisation lors de la visualisation des utilisateurs.
orgPolicies
Identifie les stratégies s’appliquant à l’ensemble des utilisateurs membres de cette organisation. Il s’agit d’une liste d’objets identifiés par une chaîne de type : chaque objet de stratégie contient les attributs d’affichage suivants, précédés du préfixe orgPolicies[<type>]. <type> représente le type de stratégie (compte Lighthouse, par exemple).
orgAuditPolicies
Spécifie les stratégies d’audit s’appliquant à l’ensemble des utilisateurs membres de cette organisation.
renameCreate
Lorsque cet attribut est défini sur true, il clone l’organisation et en crée une nouvelle à l’aide de la valeur de l’attribut orgNewDisplayName.
renameSaveAs
Lorsque cet attribut est défini sur true, il renomme l’organisation à l’aide de la valeur de l’attribut orgNewDisplayName.
Attributs de jonction d’annuaires et d’organisations virtuelles
Nom
Modifiable ?
Type de données
Obligatoire ?
orgContainerId
Lecture
Chaîne
Généré par le système
orgContainerTypes
Lecture
List
Généré par le système
orgContainers
Lecture
List
Généré par le système
orgParentContainerId
Lecture
Chaîne
Généré par le système
orgResource
Lecture/écriture
Chaîne
Oui, s’il s’agit d’une jonction d’annuaires ou d’une organisation virtuelle
orgResourceType
Lecture
Chaîne
Généré par le système
orgResourceId
Lecture
Chaîne
Généré par le système
orgRefreshAllOrgsUserMembers
Écriture
Chaîne
Non
orgContainerId
Spécifie le nom de domaine du conteneur d’annuaire LDAP associé (cn=foo,ou=bar,o=foobar.com, par exemple).
orgContainerTypes
Dresse la liste des types d’objets de ressources autorisés pouvant contenir d’autres objets de ressources.
orgContainers
Dresse la liste des conteneurs de base de la ressource utilisés par l’interface d’Identity Manager pour afficher une liste de choix.
orgParentContainerId
Spécifie le nom de domaine du conteneur d’annuaire LDAP parent associé (ou=bar,o=foobar.com, par exemple).
orgResource
Spécifie le nom de la ressource Identity Manager utilisée pour synchroniser la jonction d’annuaires et les organisations virtuelles (West Directory Server, par exemple).
orgResourceType
Indique le type de la ressource Identity Manager à partir de laquelle la jonction d’annuaires et les organisations virtuelles doivent être synchronisées (LDAP, par exemple).
orgResourceId
Spécifie l’ID de la ressource Identity Manager utilisée pour synchroniser les jonctions d’annuaires et les organisations virtuelles.
orgRefreshAllOrgsUserMembers
Si cet attribut est défini sur true et si la valeur de l’attribut orgAction est refresh, l’appartenance des utilisateurs de l’organisation Identity est synchronisée avec l’appartenance des utilisateurs du conteneur de ressources pour l’organisation sélectionnée et toutes les organisations enfants. Si cet attribut est défini sur false, l’appartenance des utilisateurs du conteneur de ressources n’est pas synchronisée. Seuls les conteneurs de ressources relatifs aux organisations Identity s’appliquant à l’organisation sélectionnée et aux organisations enfants sont concernés.
Attributs des organisations dynamiques
Nom
Modifiable ?
Type de données
Obligatoire ?
orgUserMembersRule
Lecture/écriture
Chaîne
Non
orgUserMembersRuleCacheTimeout
Lecture/écriture
Chaîne
Non
orgUserMembersRule
Identifie (par nom ou UID) la règle dont le type d’authentification (authType) correspond à UserMembersRule, lequel est évalué au moment de l’exécution dans le but de déterminer l’appartenance de l’utilisateur.
orgUserMembersCacheTimeout
Spécifie le laps de temps (en millisecondes) avant l’expiration du cache si les membres utilisateurs renvoyés par l’attribut orgUserMembersRule doivent être mis en cache. Une valeur de 0 indique l’absence de mise en cache.
La présentation de la vue utilisateur comprend désormais une section relative aux attributs accounts[Lighthouse].delegates : (ID-15468)
accounts[Lighthouse].delegates
Dresse la liste des objets de délégation, indexés par type d’élément de travail (workItemType), où chaque objet spécifie des informations de délégation pour un type d’élément de travail donné.
accounts[Lighthouse].delegatesHistory
Dresse la liste des objets de délégation, indexés de 0 à n, où n correspond au nombre actuel d’objets d’historique de délégation jusqu’au niveau de profondeur de l’historique de délégation.
Cet attribut est doté d’un attribut unique, selected, attribut booléen indiquant l’objet d’historique de délégation sélectionné.
accounts[Lighthouse].delegatesOriginal
Liste initiale des objets de délégation, indexés par type d’élément de travail (workItemType), suivant une opération d’obtention (get) ou de vérification des vues (checkout view).
Tous les attributs accounts[Lighthouse].delegates* admettent les attributs suivants :
Attributs des attributs accounts[Lighthouse].delegate*
Description
workItemType
Identifie le type workItem en cours de délégation. Reportez-vous à la description du modèle d’objet de délégation de la section Présentation du déploiement technique de Sun Identity Manager de cet ajout à la documentation pour obtenir une liste correcte des types d’éléments de travail (workItem).
workItemTypeObjects
Dresse la liste des noms des rôles, ressources ou organisations spécifiques auxquels l’utilisateur délègue les futures demandes d’approbation de workItem. Cet attribut est valide lorsque la valeur de l’attribut workItemType correspond à roleApproval, resourceApproval ou organizationApproval.
Si sa valeur n’est pas indiquée, cet attribut spécifie par défaut la délégation des futures demandes de workItem pour tous les rôles, ressources ou organisations pour lesquels cet utilisateur est défini comme approbateur.
toType
Type auquel déléguer. Les valeurs correctes sont les suivantes :
manager
delegateWorkItemsRule
selectedUsers
toUsers
Dresse la liste des noms des utilisateurs cibles de la délégation (à condition que toType corresponde à selectedUsers).
toRule
Spécifie le nom de la règle qui sera évaluée pour déterminer l’ensemble d’utilisateurs cibles de la délégation (à condition que toType corresponde à delegateWorkItemsRule).
startDate
Spécifie la date de démarrage de la délégation.
endDate
Spécifie la date de fin de la délégation.
Référencement d’un objet de vue DelegateWorkItems à partir d’un formulaire
L’exemple de code suivant illustre le mode de référencement d’un objet de délégation de vue DelegateWorkItems à partir d’un formulaire :
<Field name='delegates[*].workItemType'>
<Field name=‘delegates[*].workItemTypeObjects’>
<Field name=‘delegates[*].toType’>
<Field name='delegates[*].toUsers'>
<Field name=‘delegates[*].toRule’>
<Field name='delegates[*].startDate'>
<Field name='delegates[*].endDate'>
où les valeurs d’index prises en charge (*) sont les valeurs de type workItemType.
Permet de créer et de modifier les objets UserEntitlement.
Cette vue dispose des attributs de niveau supérieur suivants :
Nom
Modifiable ?
Type
Obligatoire ?
name
Chaîne
Oui
status
Chaîne
Oui
user
Chaîne
Oui
userId
Chaîne
Oui
attestorHint
Chaîne
Non
userView
Objet générique
Oui
reviewInstanceId
Chaîne
Oui
reviewStartDate
Chaîne
Oui
scanId
Chaîne
Oui
scanInstanceId
Chaîne
Oui
approvalWorkflowName
Chaîne
Oui
organizationId
Chaîne
Oui
attestorComments.name
Chaîne
Non
attestorComments.attestor
Chaîne
Non
attestorComments.time
Chaîne
Non
attestorComments.timestamp
Chaîne
Non
attestorComments.status
Non
name
Identifie l’habilitation d’utilisateur (par un identificateur unique).
status
Spécifie l’état de l’objet Habilitation d’utilisateur. Les états corrects sont les suivants : EN ATTENTE, ACCEPTÉ, REJETÉ, EN COURS DE RÉSOLUTION et ANNULÉ.
user
Identifie le nom de l’utilisateur WSUser associé à cette habilitation.
userId
Spécifie l’ID de l’utilisateur WSUser associé.
attestorHint
Affiche une note (sous forme de chaîne) destinée à l’attestateur ou fournie par la règle de détermination de l’examen. Cette note agit comme un « conseil » émis par la règle à l’intention de l’attestateur.
userView
Contient la vue Utilisateur capturée par le balayage Habilitation d’utilisateur. Cette vue ne contient aucun compte de ressources ou plusieurs selon la configuration de l’objet Balayage d’accès.
reviewInstanceId
Spécifie l’ID de l’instance de tâche PAR.
reviewStartDate
Indique la date de départ (sous forme de chaîne) de la tâche PAR (au format canonique).
scanId
Spécifie l’ID de la définition de la tâche AccessScan.
scanInstanceId
Spécifie l’ID de l’instance de la tâche AccessScan.
approvalWorkflowName
Identifie le nom du flux de travaux à exécuter à des fins d’approbation. Cette valeur provient de la définition de la tâche de balayage des accès.
organizationId
Spécifie l’ID de l’organisation de l’utilisateur WSUser au moment du balayage.
attestorComments
Dresse la liste des enregistrements d’attestation relatifs à l’habilitation. Chaque enregistrement d’attestation indique une action ou une déclaration relative à l’habilitation (approbation, rejet et nouveau balayage compris).
attestorComments[timestamp].name
Horodatage permettant d’identifier cet élément dans la liste.
attestorComments[timestamp].attestor
Identifie le nom WSUser de l’attestateur émettant le commentaire sur l’habilitation.
attestorComments[timestamp].time
Spécifie l’heure à laquelle l’attestateur a effectué cet enregistrement. Cette valeur peut différer de l’horodatage.
attestorComments[timestamp].status
Indique le statut assigné par l’attestateur. Il peut s’agir de n’importe quelle chaîne, mais généralement cette chaîne indique l’action entreprise par l’attestateur comme, par exemple, l’approbation, le rejet, un nouveau balayage ou la résolution.
attestorComments[name].comment
Contient les commentaires ajoutés par l’attestateur.
- Les attributs d’affichage utilisateur suivants ont été désapprouvés. (ID-15468)
- accounts[Lighthouse].delegateApproversTo
- accounts[Lighthouse].delegateApproversSelected
- accounts[Lighthouse].delegateApproversStartDate
- accounts[Lighthouse].delegateApproversEndDate
- La vue Règle de délégation des approbateurs a été désapprouvée, mais elle fonctionne toujours pour l’édition des objets de délégation dont l’attribut workItemType est défini sur approval.
Chapitre 6, XPRESS Language (Langage XPRESS)
S’utilise lors du référencement de valeurs booléennes qui sont représentées par les chaînes true et false au lieu des chiffres 0 et 1. Accepte un argument.
Les éléments suivants sont considérés vrais. Tout le reste est considéré faux.
La valeur de retour est :
Par exemple :
L’expression suivante retourne 0.
Chapitre 8, HTML Display Components (Composants d’affichage HTML)
Il peut s’avérer maladroit d’afficher de nombreux rôles admin à l’aide du composant MultiSelect (l’applet ou la version HTML). Identity Manager offre une méthode plus évolutive pour afficher et gérer les rôles admin : le modèle de champ objectSelector. (ID-15433)
La bibliothèque de sélection évolutive (Scalable Selection Library, disponible dans le fichier sample/formlib.xml) comprend un exemple d’utilisation d’un modèle de champ objectSelector destiné à rechercher des noms de rôles admin pouvant être sélectionnés par un utilisateur.
Exemple de code Exemple de modèle de champ objectSelector
<Field name='scalableWaveset.adminRoles'>
<FieldRef name='objectSelector'>
<Property name='selectorTitle' value='_FM_ADMIN_ROLES'/>
<Property name='selectorFieldName' value='waveset.adminRoles'/>
<Property name='selectorObjectType' value='AdminRole'/>
<Property name='selectorMultiValued' value='true'/>
<Property name='selectorAllowManualEntry' value='true'/>
<Property name='selectorFixedConditions'>
<appendAll>
<new class='com.waveset.object.AttributeCondition'>
<s>hidden</s>
<s>notEquals</s>
<s>true</s>
</new>
<map>
<s>onlyAssignedToCurrentSubject</s>
<Boolean>true</Boolean>
</map>
</appendAll>
</Property>
<Property name='selectorFixedInclusions'>
<appendAll>
<ref>waveset.original.adminRoles</ref>
</appendAll>
</Property>
</FieldRef>
</Field>
Utilisation de l’exemple de code objectSelector
- Dans Identity Manager IDE, ouvrez l’objet Administrator Library UserForm.
- Insérez le code suivant dans ce formulaire :
<Include>
<ObjectRef type='UserForm' name='Scalable Selection Library'/>
</Include>
- Sélectionnez le champ accounts[Lighthouse].adminRoles au sein du champ AdministratorFields.
- Remplacez entièrement accounts[Lighthouse].adminRoles par la référence suivante :
<FieldRef name=‘scalableWaveset.adminRoles‘/>
- Enregistrez l’objet.
Lorsque vous éditerez un utilisateur par la suite et que vous sélectionnerez l’onglet Sécurité, Identity Manager affichera le formulaire personnalisé. Un clic sur le bouton ... ouvre le composant du sélecteur et affiche un champ de recherche. Servez-vous de ce dernier pour rechercher des rôles admin commençant par une chaîne de texte et définissez la valeur du champ sur un ou plusieurs paramètres.
Pour restaurer le formulaire, importez $WSHOME/sample/formlib.xml via Configurer > Importer le fichier d’échange.
Reportez-vous à la bibliothèque de sélection évolutive figurant dans le fichier sample/formlib.xml pour d’autres exemples d’utilisation du modèle objectSelector en vue de gérer des ressources et des rôles dans des environnements comprenant de nombreux objets.
- La section relative au composant TabPanel contient dorénavant la description suivante de la propriété validatePerTab : (ID-15501)
Comprend trois classes : Menu, MenuBar et MenuItem.
Menu contient les propriétés suivantes :
- layout : chaîne dotée de la valeur horizontal ou vertical. La valeur horizontal génère une barre de navigation horizontale comportant des onglets. La valeur vertical génère un menu sous forme d’arborescence verticale doté d’une disposition des nœuds classiques.
- stylePrefix : préfixe de chaîne pour le nom de classe CSS. Concernant les pages de l’utilisateur final d’Identity Manager, cette valeur correspond à User.
MenuBar contient les propriétés suivantes :
MenuItem contient les propriétés suivantes :
- containedUrls : liste de chemins d’URL pointant vers les JSP « liés » à l’élément de menu en question. L’élément de menu actif est généré comme étant « sélectionné » si le rendu de l’un des JSP containedUrls est effectué. Un exemple de cette action est la page des résultats du lancement des demandes qui s’affiche après le lancement d’un flux de travaux à partir de la page de lancement des demandes.
Vous pouvez définir ces propriétés sur une barre de menu (MenuBar) ou un élément de menu (MenuItem) :
L’exemple XPRESS suivant crée un menu doté de deux onglets. Le second onglet contient deux sous-onglets :
Exemple de code Implémentation des composants Menu, MenuItem et MenuBar
<Display class='Menu'/>
<Field>
<Display class='MenuItem'>
<Property name='URL' value='user/main.jsp'/>
<Property name='title' value='Home' />
</Display>
</Field>
<Field>
<Display class='MenuBar' >
<Property name='title' value='Work Items' />
<Property name='URL' value='user/workItemListExt.jsp' />
</Display>
<Field>
<Display class='MenuItem'>
<Property name='URL' value='user/workItemListExt.jsp' />
<Property name='title' value='Approvals' />
</Display>
</Field>
<Field>
<Display class='MenuItem'>
<Property name='URL' value='user/otherWorkItems/listOtherWorkItems.jsp'/>
<Property name='title' value='Other' />
</Display>
</Field>
</Field>
ListEditor
Rend une liste éditable de chaînes.
Tableau 3 Propriétés du composant ListEditor
Propriété
Description
listTitle
(Chaîne) Spécifie l’étiquette qu’Identity Manager place à proximité de la représentation graphique ListEditor.
pickListTitle
(Chaîne) Spécifie l’étiquette à utiliser à proximité du composant picklist.
valueMap
(Mappe) Spécifie une mappe d’étiquettes d’affichage pour les valeurs de la liste.
allowDuplicates
(Booléen) La valeur true indique qu’Identity Manager autorise les doublons dans la liste gérée.
allowTextEntry
(Booléen) La valeur true indique qu’Identity Manager affiche une case de saisie de texte ainsi qu’un bouton Ajouter.
fixedWidth
(Booléen) La valeur true indique que le composant devrait avoir une largeur fixe (même comportement que le composant Multiselect).
ordered
(Booléen) La valeur true indique que l’ordre des valeurs est important.
sorted
(Booléen) La valeur true indique que les valeurs doivent être triées dans la liste de sélection. Si les valeurs sont multivaluées et ne sont pas triées, Identity Manager trie également la liste des valeurs.
pickValueMap
(Liste ou mappe) Spécifie une mappe d’étiquettes d’affichage pour les valeurs de la liste de sélection.
pickValues
(Liste) Spécifie les valeurs disponibles dans le composant picklist. Si cet argument est nul, la picklist ne s’affiche pas.
height
(Entier) Spécifie la hauteur de prédilection.
width
(Entier) Spécifie la largeur de prédilection. Peut être utilisé par le Conteneur comme une propriété de la cellule du tableau dans laquelle cet élément est rendu.
Par exemple :
L’exemple suivant basé sur le formulaire Tabbed User comporte un champ de formulaire qui utilise la classe d’affichage ListEditor :
<Field name='accounts[Sim1].Group'>
<Display class='ListEditor' action='true'>
<Property name='listTitle' value='stuff'/>
<Property name='allowTextEntry'>
<Boolean>true</Boolean>
</Property>
<Property name='ordered'>
<Boolean>true</Boolean>
</Property>
</Display>
<Expansion>
<ref>accounts[Sim1].Group</ref>
</Expansion>
</Field>
Ce snippet de code crée un champ dans lequel le client peut ajouter des groupes à un utilisateur ou en supprimer.
Activation de l’auto-complétion pour les pages de connexion d’Identity Manager
Vous pouvez activer cette fonctionnalité pour les pages de connexion d’Identity Manager en mettant l’objet de configuration système ui.web.disableAutocomplete sur true. Les pages de connexion d’Identity Manager sont les suivantes : login.jsp, continueLogin.jsp, user/login.jsp et user/continueLogin.jsp.
Les formulaires de connexion d’Identity Manager autres que les précédents sont générés à partir de XPRESS et vous devez éditer ces formulaires pour utiliser la nouvelle propriété d’affichage. Les formulaires suivants, qui résident dans le répertoire d’exemple, incluent cette propriété mise en commentaires par défaut.
- Anonymous User Login (Connexion d’un utilisateur anonyme) ;
- Question Login Form (Formulaire de connexion à questions) ;
- End User Anonymous Enrollment Validation Form (Formulaire de validation d’inscription anonyme d’un utilisateur final)
- End User Anonymous Enrollment Completion Form (Formulaire d’achèvement d’inscription anonyme d’un utilisateur final)
- Lookup Userid (Recherche d’ID utilisateur)
Annexe A, Form and Process Mappings (Mappages de formulaires et de processus)
- Une version actualisée de cette annexe, intitulée Form and Process Mappings (Mappages de formulaires et de processus), est disponible dans le même répertoire que les présentes Notes de version.
- Vous avez la possibilité d’accéder à des tâches de conformité par le biais des noms mappés. (ID-15447)
Nom du processus
Nom mappé
Description
Examen des accès
accessReview
Procède à un examen des accès.
Balayage des accès
accessReviewScan
Procède à un balayage des accès.
Tâche de nouveau balayage d’examen des accès
accessReviewRescan
Procède à un nouveau balayage des accès.
Nouveau balayage des stratégies d’audit
auditPolicyRescan
Procède à un nouveau balayage des stratégies d’audit.
Abandon de l’examen des accès
abortAccessReview
Termine un examen des accès.
Supprimer l’examen des accès
deleteAccessReview
Supprime un examen des accès.
Récupérer les objets de statut d’examen des accès
recoverAccessReview
Récupère les objets de statut d’examen des accès manquants à partir des journaux d’audit.
Outils de déploiement d’Identity ManagerCette section contient des corrections et des ajouts relatifs aux Outils de déploiement d’Identity Manager :
- Le chapitre « Utilisation d’Identity Manager IDE” (dans les versions précédentes) a été supprimé dans cet ouvrage. Les instructions pour l’installation et la configuration de l’environnement de développement intégré Identity Manager (Identity Manager IDE) sont maintenant disponibles sur https://identitymanageride.dev.java.net. (ID-17700)
Travailler avec le profileur d’Identity Manager
Identity Manager offre un utilitaire profileur pour vous aider à rechercher et corriger les problèmes de performance dans les formulaires, Java, les règles, les flux de travaux et XPRESS dans votre déploiement.
Les formulaires, Java, les règles, les flux de travaux et XPRESS peuvent tous causer des problèmes de performance et d’échelle. Le profileur estime le temps passé dans ces différentes zones, ce qui vous permet de déterminer si ces formulaires, Java, règles, flux de travaux ou objets XPRESS ont un impact sur les problèmes de performance et d’échelle et, le cas échéant, quelles sont les parties de ces objets à l’origine des problèmes.
Cette section explique l’utilisation du profileur d’Identity Manager et fournit un didacticiel pour vous aider à apprendre comment dépanner les problèmes de performance de votre déploiement. Les informations sont organisées comme suit :
Présentation
Cette section présente les caractéristiques et les fonctionnalités du profileur d’Identity Manager. Les informations sont organisées comme suit :
Principales nouveautés
Vous pouvez utiliser le profileur pour :
- Vous pouvez afficher les résultats d’un instantané dans quatre affichages de données différents :
- L’affichage Arborescence des appels fournit un tableau arborescent indiquant les temps des appels et leur nombre à travers le système.
- L’affichage Points actifs fournit une liste simplifiée de nœuds qui indique les temps regroupés indifféremment du parent.
- L’affichage Traces inverses fournit une pile d’appels inversée indiquant toutes les chaînes d’appels depuis lesquelles le nœud en question (le nœud racine) a été appelé.
- L’affichage Callees view (Programmes appelés) fournit une arborescence d’appels regroupée du nœud racine, indifféremment de sa chaîne parent.
- Spécifiez les types d’informations à inclure dans l’instantané :
- vous pouvez inclure n’importe quel élément de formulaire, flux de travaux et XPRESS ou restreindre le contenu à un ensemble d’éléments spécifiques.
- Vous pouvez sélectionner des méthodes Java et des constructeurs spécifiques qui seront inclus ou exclus de l’instrumentation. L’instrumentation des classes d’Identity Manager et des classes personnalisées est prise en charge.
- Gérez votre instantané de projet comme suit :
- Enregistrez l’instantané dans le répertoire nbproject/private/idm-profiler de votre projet ou dans un emplacement arbitraire extérieur à votre projet.
Remarque
Vous pouvez afficher la liste de tous les instantanés enregistrés dans la section Saved Snapshots (Instantanés enregistrés) de l’affichage du profileur IDM.
- Ouvrez les instantanés depuis votre projet ou chargez-les depuis un emplacement arbitraire extérieur à votre projet.
- Supprimez les instantanés.
- Recherchez des nœuds spécifiques, par nom.
Mode de localisation et de gestion de la source par le profileur
Cette section décrit la façon dont le profileur recherche et gère la source pour les objets suivants d’Identity Manager :
Pour les objets formulaires, règles, flux de travaux et XPRESS Lorsque vous prenez un instantané avec le profileur, le serveur évalue l’ensemble des données de profilage et détecte les sources dont dépendent les données. Le serveur extrait ensuite toutes ces sources du référentiel et les inclut dans l’instantané. Par conséquent, vous pouvez être sûr que les objets d’Identity Manager affichés dans l’instantané reflètent avec précision le point auquel l’instantané a été capturé.
Ce processus augmente la taille de l’instantané mais la taille de la source n’est en réalité qu’une fraction relativement petite de la taille totale. Résultat, vous pouvez envoyer un instantané au support technique Sun sans devoir envoyer vos fichiers sources séparément.
Pour la source Java Lorsque vous prenez un instantané d’une source Java, le client télécharge l’instantané puis l’examine pour capturer toutes les sources Java référencées depuis le projet. Lorsque vous enregistrez l’instantané, le client compresse les sources et les joint à la fin de l’instantané.
Ensuite, lorsque vous affichez l’instantané et allez à la source Java, le client commence par contrôler le contenu de l’instantané. Si le client n’y trouve pas de contenu, il contrôle le contenu du projet. Ce processus vous permet d’envoyer un instantané contenant des données de profilage provenant à la fois de votre code Java personnalisé et du code d’Identity Manager.
Remarque
Dans un instantané de source Java, ne partez pas du principe que la source est actualisée sur le serveur ou toujours disponible.
Remarques sur les statistiques
Les sections suivantes contiennent des informations dont il convient de tenir compte lors de l’évaluation des résultats fournis par le profileur.
Statistiques de self time Pour calculer les statistiques de self time d’un nœud racine, le profileur soustrait les temps de tous les nœuds enfants du temps total de ce nœud racine.
Par conséquent, le temps d’un nœud enfant non instrumenté se reflète dans le self time du nœud racine. Si le self time d’un nœud racine est important, il convient d’enquêter pour en connaître la raison. Les méthodes instrumentées peuvent ne pas être adaptées, ce qui peut vous amener à ne pas chercher au bon endroit.
Par exemple, partez de l’hypothèse qu’une méthode A appelle une méthode B.
La méthode A a un temps total de 10 secondes (le temps total inclut l’appel à B) et l’appel à B prend un temps total de 10 secondes.
Si à la fois A et B sont instrumentées, la pile d’appels reflète ces informations. Vous verrez que A aura un self time total de 0 secondes et B un self time de 10 secondes (10 secondes ont réellement été utilisées dans B). Si toutefois B n’est pas instrumenté, vous ne verrez que l’appel à A prend 10 secondes et que le self time de A est de 10 secondes. Vous assumerez donc que le problème est directement lié à A et non pas à B.
En particulier, vous pourrez remarquer de longs self times sur les JSP pendant leur compilation initiale. Si vous réinitialisez les résultats recueillis puis réaffichez la page, la valeur de self time sera bien inférieure.
Appels du constructeur Compte tenu de limites inhérentes à la stratégie d’instrumentation de Java, les appels initiaux à this() ou super() apparaîtront comme un sibling à l’appel du constructeur plutôt que comme un enfant. Observez l’exemple suivant :
class A
{
public A()
{
this(0);
}
public A(int i)
{
}
}
and:
class B
{
public static void test()
{
new A();
}
}
The call tree will look like this:
B.test()
-A.<init>(int)
-A.<init>()
Rather than this:
B.test()
-A.<init>()
-A.<init>(int)
Threads de démons Ne vous laissez pas duper par l’apparente grande quantité de temps passée dans un nombre de threads de démons d’Identity Manager, tels que ReconTask.WorkerThread.run() ou TaskThread.WorkerThread.run(). La plupart de ce temps s’écoule en état de sommeil, dans l’attente d’événements. Vous devez enquêter sur ces traces pour connaître le temps réellement consacré au traitement d’un événement.
Démarrage
Cette section explique comment démarrer le profileur et comment fonctionne son interface graphique. Ces informations sont organisées comme suit :
Avant de commencer
Le profileur consommant énormément de mémoire, vous devez augmenter la mémoire pour à la fois le serveur et la machine virtuelle Java (JVM) Netbeans.
- Pour augmenter la mémoire du serveur :
- Ouvrez la fenêtre Netbeans et sélectionnez l’onglet Runtime (Exécution).
- Développez le nœud Servers (Serveurs), cliquez avec le bouton droit de la souris sur Bundled Tomcat (Tomcat fourni en standard) et choisissez Properties (Propriétés) dans le menu.
- Lorsque la boîte de dialogue Server Manager (Gestionnaire de serveurs) s’affiche, désélectionnez la case Enable HTTP Monitor (Activer le moniteur HTTP) sur l’onglet Connection (Connexion).
- Sélectionnez l’onglet Platform (Plate-forme), définissez VM Options (Options VM) sur -Xmx1024M, puis cliquez sur Close (Fermer).
- Pour augmenter la mémoire de la JVM Netbeans :
Ceci fait, vous pouvez démarrer le profileur comme décrit dans la section suivante.
Démarrage du profileur
Vous pouvez utiliser au choix l’une des méthodes suivantes pour démarrer le profileur depuis la fenêtre Identity Manager IDE :
- Cliquez sur l’icône Start Identity Manager Profiler on Main Project (Démarrer le profileur d’Identity Manager sur le projet principal)
qui se trouve sur la barre de menu.
Remarque
L’icône Start Identity Manager Profiler on Main Project est activée lorsque le projet Identity Manager principal est de la version 7.1 Update 1 ou d’une version ultérieure.
- Depuis la barre de menu, sélectionnez Window (Fenêtre) > IDM Profiler (Profileur d’IDM).
La fenêtre Identity Manager Profiler (Profileur d’Identity Manager) s’affiche dans Explorer. Dans cette fenêtre, sélectionnez un projet Identity Manager dans le menu déroulant Current Project (Projet courant) puis cliquez sur l’icône Start Identity Manager Profiler (Démarrer le profileur d’Identity Manager)
qui se trouve dans la section Controls (Contrôles).
- Cliquez avec le bouton droit de la souris sur un projet dans la fenêtre Projects (Projets) puis sélectionnez Start Identity Manager Profiler (Démarrer le profileur d’Identity Manager) dans le menu contextuel.
- Sélectionnez un projet dans la fenêtre Projects (Projets) puis sélectionnez IdM > Start Identity Manager Profiler (Démarrer le profileur d’Identity Manager) dans la barre de menu.
Lorsque vous démarrez le profileur, la boîte de dialogue Profiler Options (Options du profileur) s’affiche vous permettant de spécifier les options de profilage que vous voulez utiliser. Vous trouverez les instructions de définition de ces options dans Spécification des options du profileur.
Utilisation du profileur
Cette section décrit les fonctionnalités de l’interface graphique du profileur et leur utilisation. Les informations sont organisées comme suit :
Spécification des options du profileur
La boîte de dialogue Profiler Options (Options du profileur) comprend les onglets suivants:
Utilisez les options de ces onglets pour indiquer les objets à profiler et les éléments à afficher dans le profil.
Après la spécification des options du profileur, cliquez sur OK pour démarrer le profileur. Selon la configuration de votre projet, le profileur effectuera l’une ou l’autre des séries d’opérations suivantes :
- Si vous utilisez un projet Identity Manager normal avec une instance imbriquée d’Identity Manager, le profileur effectue une compilation complète, un déploiement dans le serveur d’application de NetBean et démarre le profileur.
- Si vous utilisez un projet Identity Manager normal avec une instance externe d’Identity Manager ou le projet Identity Manager distant, le profileur se rattache à l’instance d’Identity Manager configurée pour le projet.
Mode L’onglet Mode comporte les options suivantes :
- IDM Objects Only (Objets IDM uniquement) : sélectionnez cette option pour profiler des objets formulaire, règle, flux de travaux et XPRESS. Exclut les objets Java du profil.
- Java and IDM Objects (Objets Java et IDM uniquement) : sélectionnez cette option pour profiler des objets formulaire, Java, règle, flux de travaux et XPRESS.
Remarques
- L’option Java and IDM Objects n’est pas disponible si vous si vous utilisez un projet Identity Manager normal avec une instance externe d’Identity Manager ou un projet Identity Manager distant.
- Vous ne pouvez pas modifier l’option Mode pendant l’exécution du profileur : vous devez arrêter ce dernier pour la modifier.
Filtres à objets IDM L’onglet IDM Object Filters (Filtres à objets IDM) comporte les options suivantes :
Java Filters (Filtres Java) Sélectionnez l’onglet Java Filters (Filtres Java) pour
Les filtres Java sont formulés en termes de modèles de méthode et sont exprimés sous la forme de modèles qui incluent ou excluent les éléments sur la base du nom de méthode canonique. Lorsqu’un nom de méthode canonique est du type :
nom-classe-complet.nom-méthode(type-paramètre-1, type-paramètre-2, ...)
Voici quelques exemples :
Si nécessaire, vous pouvez instrumenter d’autres JAR en modifiant comme approprié les lignes suivantes dans build.xml. Par exemple :
<instrument todir="${lighthouse-dir-profiler}/WEB-INF" verbose="${instrumentor.verbose}" includeMethods="${profiler.includes}" excludeMethods="${profiler.excludes}">
<fileset dir="${lighthouse-dir}/WEB-INF">
<include name="lib/idm*.jar"/>
<include name="classes/**/*.class"/>
</fileset>
</instrument>
Par défaut, la configuration inclut toutes vos classes personnalisées et la plupart des classes d’Identity Manager. Un nombre de classes d’Identity Manager sont obligatoirement exclues car les activer signifierait interrompre le profileur.
Par exemple, les classes provenant des moteurs de flux de travaux, de formulaires et XPRESS sont exclus, sinon le profileur produirait un instantané incompréhensible lors du profilage des objets Java et Identity Manager.
Vous remarquerez que les filtres Java assurent un filtrage bien plus fin que les filtres à objets IDM. L’instrumentation Java allonge considérablement le temps d’exécution ce qui dévie drastiquement les résultats de profilage. Les objets d’Identity Manager étant interprétés plutôt que compilés, le temps d’instrumentation est négligeable. Ainsi, à titre d’exemple, il n’y a pratiquement aucune raison d’exclure le flux de travaux A et d’inclure le flux de travaux B, et ainsi de suite.
Remarque
Vous ne pouvez pas modifier les filtres Java pendant l’exécution du profileur. Vous devez arrêter le profileur avant de changer les filtres Java.
Divers L’onglet Miscellaneous (Divers) comporte les options suivantes :
- Prune snapshot nodes where execution time is 0 (Élaguer les nœuds d’instantané lorsque le temps d’exécution est 0) :
- Automatically Open Browser Upon Profiler Start (Ouvrir automatiquement le navigateur au démarrage du profileur) :
- Include Java Sources in Snapshot (Inclure les sources Java dans l’instantané) :
- Activez cette option (valeur par défaut) pour inclure les sources Java pour toutes les méthodes Java référencées par les données de profilage dans l’instantané. Vous devriez toujours utiliser ce paramètre pour les instantanés dans le champ. Custom Java est relativement petit et se révèle un atout précieux pour le support.
- Ne désactivez cette option que si vous profilez Identity Manager et disposez de l’ensemble de la source d’Identity Manager.
Dans ce cas, il ne convient pas d’inclure la source d’Identity Manager car cela pourrait créer des instantanés gigantesques (pour plus d’informations, reportez-vous à Mode de localisation et de gestion de la source par le profileur).
Travailler avec l’affichage du profileur d’IDM
L’affichage du profileur d’IDM se compose des zones suivantes :
Zone du projet courant La zone Current Project (Projet courant) se compose d’un menu déroulant qui répertorie tous vos projets courants. Ce menu vous permet de sélectionner le projet à profiler.
Zone des contrôles La zone Controls (Contrôles) contient quatre icônes, comme décrit dans le tableau suivant :
Icône
Objectif
![]()
Démarrer le Identity Manager Profiler (Démarrer le profileur d’Identity Manager)
Démarre le profileur et ouvre la boîte de dialogue des options du profileur.
![]()
Stop Identity Manager Profiler (Arrêter le profileur d’Identity Manager)
Arrête le profileur.
![]()
Reset Collected Results (Réinitialiser les résultats recueillis)
Réinitialise l’ensemble des résultats de profil recueillies à ce stade.
![]()
Modify Profiling (Modifier le profilage)
Ouvre de nouveau la boîte de dialogue des options du profileur pour vous permettre de changer les paramètres afin de modifier les résultats de profil courants.
Zone de statut La zone Status (Statut) indique si vous êtes connecté à l’hôte et contient les informations de statut relative au démarrage, à l’exécution et à l’arrêt du profileur.
Zone des résultats de profilage La zone Profiling Results (Résultats de profilage) contient les deux icônes suivantes :
Icône
Objectif
Start Identity Manager Profiler (Démarrer le profileur d’Identity Manager)
Démarre le profileur et ouvre la boîte de dialogue des options du profileur.
![]()
Reset Collected Results (Réinitialiser les résultats recueillis)
Réinitialise l’ensemble des résultats de profil recueillies à ce stade.
Zone des instantanés enregistrés La zone Saved Snapshots (Instantanés enregistrés) contient une liste de tous les instantanés enregistrés.
Remarque
Les instructions d’enregistrement des instantanés figurent dans la section Enregistrement d’un instantané.
De plus, vous pouvez utiliser les boutons suivants pour gérer ces instantanés :
- Open (Ouvrir) : cliquez sur ce bouton pour ouvrir les instantanés enregistrés dans la fenêtre Snapshot View (Affichage des instantanés).
Astuce
Vous pouvez aussi double-cliquer sur un instantané de la liste des instantanés enregistrés pour ouvrir celui-ci.
- Delete (Supprimer) : sélectionnez un instantané dans la liste des instantanés enregistrés puis cliquez sur ce bouton pour le supprimer.
- Save As (Enregistrer sous) : sélectionnez un instantané dans la liste puis cliquez sur ce bouton pour l’enregistrer à l’extérieur dans un emplacement arbitraire.
- Load (Charger) : cliquez sur ce bouton pour ouvrir un instantané depuis un emplacement arbitraire dans la fenêtre Snapshot View (Affichage des instantanés).
Travailler avec l’affichage des instantanés
Lorsque vous ouvrez un instantané, les résultats s’affichent dans la fenêtre Snapshot View (Affichage des instantanés), qui se trouve en haut à droite d’Identity Manager IDE.
Un instantané fournit plusieurs affichages des données qui sont décrits dans les sections suivantes :
Affichage Arborescence d’appels L’affichage Call Tree (Arborescence des appels) est un tableau arborescent indiquant les temps des appels et leur nombre à travers le système.
Ce tableau arborescent comporte les trois colonnes suivantes :
Les nœuds de niveau supérieur peuvent être les suivants :
Par exemple, si vous affichez l’URL idm/login.jsp, vous verrez une entrée de niveau supérieur pour idm/login.jsp. Les données affichées dans la colonne Time (Temps) pour cette entrée représente le temps total pour cette requête (ou ces requêtes). Les données affichées dans la colonne Invocations (Appels) représentent le nombre total d’appels à cette page. Vous pouvez ensuite approfondir encore ces données pour savoir quels sont les appels qui rentrent dans ce temps.
Remarque
L’arborescence des appels contient également les nœuds Self Time. Les valeurs de self time correspondent au temps passé dans le nœud proprement dit (pour plus d’informations, reportez-vous à Statistiques de self time).
Affichage Points actifs L’affichage Hotspots (Points actifs) fournit une liste simplifiée de nœuds qui indique les temps d'appel cumulés indifféremment du parent.
Cet affichage contient les colonnes suivantes :
Affichage Traces inverses L’affichage Traces inverses fournit une pile d’appels inversée indiquant toutes les chaînes d’appel depuis lesquelles chaque nœud a été appelé.
Vous pouvez utiliser ces statistiques pour répondre à la question suivante : combien de temps économiserais-je si j’éliminais cette chaîne d’appels donnée de ce nœud ?
Vous pouvez accéder à l’affichage Traces inverses depuis n’importe lequel des autres affichages d’instantanés en cliquant avec le bouton droit sur un nœud (qui sera appelé le nœud racine) et en sélectionnant Show Back Traces (Afficher les traces inverses) dans le menu contextuel qui s’affiche.
Remarques
Les valeurs des données Time (Temps) et Invocations (Appels) ont une autre signification dans l’affichage Traces inverses :
- Time (Temps) : les valeurs de cette colonne correspondent au temps passé dans le nœud racine lorsque celui-ci est appelé depuis une chaîne d’appels donnée.
- Invocations (Appels) : les valeurs de cette colonne correspondent au nombre de fois où le nœud racine a été appelé depuis une chaîne d’appels donnée.
Affichage Programmes appelés L’affichage Programmes appelés fournit une arborescence d’appels regroupée pour un nœud (que l’on appelle le nœud racine), indifféremment de sa chaîne parent.
Ces statistiques sont utiles dans le cas où vous avez une zone à problème appelée depuis divers emplacements de l’arborescence d’appels et que vous voulez afficher l’ensemble du profil pour ce nœud.
Vous pouvez accéder à l’affichage Programmes appelés depuis n’importe lequel des autres affichages d’instantanés en cliquant avec le bouton droit sur un nœud (qui sera appelé le nœud racine) et en sélectionnant Show Callees (Afficher les programmes appelés) dans le menu contextuel qui s’affiche.
Remarque
Les valeurs des données Time (Temps) et Invocations (Appels) ont la même signification que dans l’affichage Arborescence d’appels.
Utilisation des options du menu contextuel
Cliquer avec le bouton droit sur un nœud des affichages Arborescence d’appels ou Points actifs affiche un menu contextuel contenant les options décrites dans le tableau suivant :
Options du menu
Description
GoTo Source (Aller à la source)
Sélectionnez cette option pour afficher la source XML d’un nœud qui correspond à une méthode Java, un flux de travaux, une règle ou XPRESS. Pour plus d’informations sur cet affichage, reportez-vous à Mode de localisation et de gestion de la source par le profileur.
Show Back Traces (Afficher les traces inverses)
Sélectionnez cette option pour accéder à l’affichage Traces inverses. Pour plus d’informations sur cet affichage, reportez-vous à Affichage Traces inverses.
Show Callees (Afficher les programmes appelés)
Sélectionnez cette option pour accéder à l’affichage Programmes appelés. Pour plus d’informations sur cet affichage, reportez-vous à Affichage Programmes appelés.
Find In Hotspots (Chercher dans les points actifs)
Sélectionnez cette option pour trouver un nœud dans la vue Points actifs. Pour plus d’informations sur cet affichage, reportez-vous à Affichage Points actifs.
List Options > Sort > (Lister les options > Tri >)
Sélectionnez cette option pour :
List Options > Change Visible Columns (Lister les options > Changer les colonnes visibles)
Sélectionnez cette option pour changer les colonnes affichées dans la liste Arborescence d’appels ou Points actifs.
Lorsque la boîte de dialogue Change Visible Columns (Changement des colonnes visibles) s’affiche, vous pouvez sélectionner une ou plusieurs des options suivantes :
Recherche d’un instantané
Utilisez l’icône Search (Recherche)
, qui se trouve en haut de la fenêtre Snapshot View (Affichage des instantanés) pour rechercher des nœuds par leur nom dans l’affichage Arborescence d’appels ou Points actifs.
Vous pouvez aussi cliquer avec le bouton droit sur un nœud de l’affichage Arborescence d’appels ou Points actifs et sélectionner Find in Call Tree (Chercher dans l’arborescence d’appels) ou Find in Hotspots (Chercher dans les points actifs) dans le menu contextuel pour rechercher un nœud.
Enregistrement d’un instantané
Le profileur comporte plusieurs options pour l’enregistrement d’un instantané. Pour la description de ces options, consultez le tableau suivant :
Icône
Objectif
Icône Save the Snapshot in the Project (Enregistrer l’instantané dans le projet, dans le haut de la fenêtre Affichage des instantanés)
Enregistre l’instantané dans le répertoire nbproject/private/idm-profiler de votre projet. Les instantanés enregistrés dans votre projet sont listés dans la section Saved Snapshots (Instantanés enregistrés) de l’affichage du profileur.
![]()
Icône Save the Snapshot Externally (Enregistrer l’instantané à l’extérieur, dans le haut de la fenêtre Affichage des instantanés)
Enregistre un instantané dans un emplacement externe, arbitraire.
![]()
Bouton Save As (Enregistrer sous, dans la zone Saved Snapshots (Instantanés enregistrés)).
Enregistre un instantané dans un emplacement externe, arbitraire.
Didacticiel : dépannage des problèmes de performance
Identity Manager fournit un didacticiel (profiler-tutorial.zip) pour vous aider à utiliser le profileur pour dépanner les formulaires, Java, les règles, les flux de travaux et XPRESS.
Étape 1: Création d’un projet Identity Manager.
Suivez les étapes ci-après pour créer un projet Identity Manager :
- Sélectionnez File (Fichier) > New Project (Nouveau projet).
- Lorsque l’assistant New Project (Nouveau projet) s’affiche, spécifiez ce qui suit puis cliquez sur Next (Suite) :
- Remplissez les champs suivants sur le panneau Name and Location (Nom et emplacement) puis cliquez sur Next (Suivant).
- Lorsque le panneau Identity Manager WAR File Location (Emplacement du fichier WAR d’Identity Manager) s’affiche, saisissez l’emplacement du fichier war d’Identity Manager 8.0. Normalement, la décompression de ce fichier crée un fichier idm.war dans le même répertoire.
- Cliquez sur Next (Suivant) pour passer au panneau Repository Setup (Configuration du référentiel).
Vous ne devriez pas avoir à modifier les paramètres par défaut de ce panneau, cliquez simplement sur Finish (Terminer). Lorsque vous voyez le message BUILD SUCCESSFUL (COMPILATION RÉUSSIE) dans la fenêtre Identity Manager IDE Output (Sortie d’Identity Manager IDE), vous pouvez extraire les fichiers du didacticiel du profileur. Pour les instructions, reportez-vous à l’Etape 2 : Décompression du didacticiel du profileur.
Etape 2 : Décompression du didacticiel du profileur
Décompressez profiler-tutorial.zip dans la racine du projet. Les fichiers extraits sont les suivants :
<racine du projet>/custom/WEB-INF/config/ProfilerTutorial1.xml
<racine du projet>/custom/WEB-INF/config/ProfilerTutorial2.xml
<racine du projet>/src/org/example/ProfilerTutorialExample.java
<racine du projet>/PROFILER_TUTORIAL_README.txt
Vous pouvez maintenant démarrer le profileur.
Étape 3: Démarrage du profileur
Pour démarrer le profileur :
- Utilisez les instructions figurant dans Avant de commencer pour augmenter la mémoire pour votre serveur et la JVM Netbeans.
- Utilisez l’une des méthodes décrites dans Présentation pour lancer le profileur.
- Vous pouvez spécifier les options de profilage lorsque la boîte de dialogue Profiler Options (Options du profileur) s’affiche.
- Continuez par l’Étape 4 : Définition des options du profileur. :
Étape 4 : Définition des options du profileur
Remarque
Pour des informations détaillées sur l’ensemble des différentes options du profileur, reportez-vous à Spécification des options du profileur.
Dans le cadre de ce didacticiel, spécifiez les options suivantes pour le profileur :
- Sur l’onglet Mode (Mode), sélectionnez Java and IDM Objects (Objets Java et IDM) pour profiler des objets formulaire, Java, règle, flux de travaux et XPRESS.
- Sélectionnez l’onglet Java Filters (Filtres Java).
Suivez les étapes ci-après pour désactiver l’ensemble de vos classes Java Identity Manager à l’exception de vos classes Java personnalisées (dans ce cas, org.example.ProfilerTutorialExample) :
- Cliquez sur New (Nouveau) : un nouveau champ vierge s’affiche dans le bas de la colonne Filter (Filtre).
- Saisissez com.waveset.* dans ce nouveau champ puis sélectionnez la case Exclude (Exclure).
- Cliquez de nouveau sur New (Nouveau).
- Saisissez com.sun.idm.* dans ce nouveau champ puis sélectionnez la case Exclude (Exclure).
- Cliquez sur OK pour exécuter le profileur.
Remarque
La première exécution du profileur sur un projet ou peu après une action Clean Project (Nettoyer le projet) prend quelques minutes.
Lorsque le profileur termine le traitement, vous êtes invité à vous connecter.
- Saisissez le mot de passe configurator, sélectionnez la case à cocher (Se rappeler le mot de passe) puis cliquez sur OK pour continuer.
- Lorsque la fenêtre Identity Manager s’affiche, connectez-vous.
Remarque
En général, vous devriez vous connecter à Identity Manager sous un autre nom d’utilisateur et non pas de nouveau en tant que configurator. Vous êtes déjà connecté au profileur en tant que configurateur et le pool de session d’Identity Manager n’autorise qu’une entrée par utilisateur. L’utilisation de plusieurs entrées peut entraîner l’apparition d’un pool de session interrompu et biaiser les résultats du profilage pour les problèmes de performances plus minutieux.
Cependant, dans le cadre de ce simple exemple, le pool de session n’a pas de conséquences et vous pouvez vous connecter en tant que configurator/configurator.
- Dans Identity Manager, sélectionnez Tâches du serveur > Exécuter des tâches puis cliquez sur ProfilerTutorialWorkflow1.
Le didacticiel peut prendre un certain temps pour répondre.
- Bien que vous puissiez prendre un instantané maintenant, vous allez à la place réinitialiser vos résultats, exécuter le profileur, l’exécuter de nouveau puis prendre un instantané.
Remarque
Ceci est la pratique recommandée pour exécuter le profileur avant de prendre un instantané pour être sûr que tous les caches sont amorcés, que tous les JSP sont compilés, et ainsi de suite.
Exécuter plusieurs fois le profileur vous permet de vous concentrer sur les problèmes de performance réels. La seule exception à cette pratique est constituée par le cas où vous auriez du mal à remplir les caches eux-mêmes.
- Revenez à l’affichage du profileur IDM dans Identity Manager IDE. Cliquez sur l’icône Reset Collected Results (Réinitialiser les résultats recueillis).
dans la section Profiling Results (Résultats du profilage) ou dans la section Controls (Contrôle) pour réinitialiser tous les résultats recueillis à ce stade.
- Dans Identity Manager, sélectionnez de nouveau Tâches du serveur > Exécuter des tâches puis cliquez sur ProfilerTutorialWorkflow1.
- Lorsque Schéma des processus s’affiche, revenez à Identity Manager IDE puis cliquez sur Take Snapshot (Prendre l’instantané) dans la section Profiling Results (Résultats du profilage).
- Identity Manager IDE télécharge votre instantané et affiche les résultats sur la droite de la fenêtre.
Cette zone est l’affichage Call Tree (Arborescence d’appels). Vous devriez voir dans le haut de l’arborescence d’appels un /idm/task/taskLaunch.jsp avec un temps indiqué dans la colonne Time (Temps). Le temps devrait indiquer que l’ensemble de la requête a pris six+ secondes.
- Développez le nœud /idm/task/taskLaunch.jsp, vous pourrez voir que ProfilerTutorialWorkflow1 a pris six secondes.
- Développez le nœud ProfilerTutorialWorkflow1. Vous remarquerez que activity2 a pris quatre secondes et activity1 deux.
- Développez activity2.
Vous remarquerez que action1 a pris deux secondes et action2 deux.
- Développez action1, vous verrez que <invoke> a aussi pris deux secondes.
- Double-cliquez sur <invoke> pour ouvrir ProfilerTutorialWorkflow1.xml et mettre en surbrillance la ligne suivante :
<invoke name='example' class='org.example.ProfilerTutorialExample'/>
Vous devriez voir qu'un appel vers la méthode ProfilerTutorialExample a pris deux secondes.
Remarque
Vous explorez actuellement une source XML qui a été capturée dans l’instantané et non pas une source du projet. Les instantanés sont entièrement autonomes (pour plus d’informations, reportez-vous à Mode de localisation et de gestion de la source par le profileur).
- Sélectionnez l’onglet CPU:<date><temps> pour revenir à votre instantané.
- Développez le nœud <invoke>. Vous remarquerez que le profileur a passé deux secondes dans la méthode Java ProfilerTutorialExample.example().
- Double-cliquez sur le nom de la méthode pour ouvrir la source ProfilerTutorialExample.java et mettre en surbrillance la ligne suivante :
- Si vous revenez à l’arborescence d’appels, vous pouvez voir que tous les chemins de deux secondes mènent à cette méthode (vous devriez voir trois chemins ; pour un total de six secondes).
- Sélectionnez l’onglet Hotspots (Points actifs, dans le bas de la zone de l’arborescence d’appels) pour ouvrir l’affichage Points actifs. Vous remarquerez que ProfilerTutorialExample.example() a un self time total de six secondes
(pour plus d’informations sur Points actifs, reportez-vous à Affichage Points actifs).
- Cliquez avec le bouton droit sur ProfilerTutorialExample.example() et sélectionnez Show Back Traces (Afficher les traces inverses) dans le menu contextuel.
Un nouvel onglet Back Traces (Traces inverses) s’affiche dans le bas de la zone.
- Développez le nœud ProfilerTutorialExample.example() sur l’onglet Traces inverses pour voir que cette méthode a été appelée depuis trois emplacements et qu’elle a pris deux secondes lorsqu’elle a été appelée depuis chaque emplacement
(pour plus d’informations sur Traces inverses, reportez-vous à Affichage Traces inverses).
- Cliquez sur l’icône Save the snapshot in the project (Enregistrer l’instantané dans le projet)
pour enregistrer votre instantané et fermez-le.
Si vous contrôlez la section Saved Snapshots (Instantanés enregistrés) de l’onglet IDM Profiler (Profileur IDM), vous devriez voir votre instantané il se peut que vous deviez faire défiler la section vers le bas).
- Sélectionnez l’instantané enregistré puis cliquez sur Open (Ouvrir) pour l’ouvrir de nouveau.
Remarque
Vous pouvez utiliser le bouton Save As (Enregistrer sous) pour enregistrer vos instantanés à l’extérieur et le bouton Load (Charger) pour charger un instantané depuis l’extérieur de votre projet.
- Fermez de nouveau l’instantané.
Utilisation du profileur sur une ManualAction de flux de travaux
La prochaine partie de ce didacticiel explique comment profiler une ManualAction de flux de travaux.
- Dans Identity Manager, sélectionnez Tâches du serveur > Exécuter des tâches puis cliquez sur ProfilerTutorialWorkflow2.
Un formulaire vide s’affiche au bout de quelques instants.
- Cliquez sur Save (Enregistrer) pour afficher le schéma du processus.
- Sélectionnez de nouveau Tâches du serveur > Exécuter des tâches.
- Revenez à l’affichage Identity Manager IDE IDM Profiler et cliquez sur Reset Collected Results (Réinitialiser les résultats recueillis) dans la section Profiling Results (Résultats du profilage).
- Cliquez maintenant sur ProfilerTutorialWorkflow2 dans Identity Manager.
- Lorsque le formulaire vierge s’affiche de nouveau, cliquez sur Enregistrer.
- Dans l’affichage IDM Profiler (Profileur IDM), cliquez sur Take Snapshot (Prendre l’instantané).
Un instantané devrait s’afficher au bout de quelques secondes dans la zone Call Tree (Arborescence des appels). Vous devriez voir que /idm/task/workItemEdit.jsp a pris six+ secondes (ce résultat correspond à l’action manuelle dans le flux de travaux).
- Développez le nœud /idm/task/workItemEdit.jsp, vous pourrez voir qu’exécuter toutes les dérivations dans le formulaire ManualAction a pris au total six secondes.
- Développez les nœuds Derivation, displayNameForm, variables.dummy et <block>.
Vous devriez voir que <block> a pris six secondes et que, de ce temps, le profileur a passé deux secondes dans chaque des trois appels à la méthode ProfilerTutorialExample.example().
- Vous pouvez double-cliquer sur <block> pour afficher la source.
Identity Manager IDE Foire Aux Questions (FAQ)
Cette FAQ répond à des questions fréquemment posées sur l’utilisation de environnement de développement intégré Identity Manager (Identity Manager IDE). Les informations sont organisées dans les catégories suivantes :
Utilisation de NetBeans
Q : Quelle version de Netbeans dois-je utiliser ?
R : Utilisez la version de Netbeans référencée dans la documentation produit d’Identity Manager fournie pour la version du plug-in Netbeans que vous utilisez.
Remarque
Utilisez toujours la version exacte référencée car même les versions de patchs peuvent causer l’interruption de la principale fonctionnalité.
Q : Le plug-in Netbeans marchait, j’ai fait quelque chose et depuis il ne marche plus. Quelle pourrait être la cause du problème ?
R : Ce problème est souvent dû à un fichier corrompu dans le répertoire .netbeans. En général, supprimer le répertoire .netbeans et réinstaller le plug-in NetBeans résout le problème (supprimer le répertoire .netbeans désinstalle effectivement le plus-in NetBeans). Vous perdez tous vos paramètres d’utilisateur mais le contenu de votre projet sera sauf).
Les étapes sont les suivantes :
Travailler avec des projets
Q : La construction et l’exécution d’un projet semblent ne jamais finir et il semble qu’Identity Manager IDE copie énormément de fichiers. Quelle pourrait être la cause du problème ?
R : Ce problème peut survenir pour les raisons suivantes :
Lorsque vous utilisez Clean Project ou Clean And Build Project, Identity Manager IDE supprime l’ensemble du répertoire image, qui contient plusieurs milliers de fichiers. Identity Manager IDE doit copier tous ces fichiers à partir de idm-staging à la prochaine compilation.
Pour utiliser Identity Manager IDE efficacement, vous devez comprendre quand utiliser les commandes Clean. Pour plus d’informations, reportez-vous à la section When to Use Clean (Quand utiliser Clean) du fichier Identity Manager IDE README.txt.
Q : Maintenant que j’ai créé un projet Identity Manager, quels sont les fichiers qui devraient être contrôlés dans le contrôle source ?
R : Pour plus d’informations, reportez-vous à la section CVS Best Practices (Pratiques CVS recommandées) du fichier Identity Manager IDE README.txt.
Q : Quelles sont les pratiques recommandées pour l’utilisation de la gestion de projets dans CVS ?
R :Pour plus d’informations, reportez-vous à la section CVS Best Practices (Pratiques CVS recommandées) du fichier Identity Manager IDE README.txt.
Q : Quels sont les objets importés dans le référentiel ?
R : Pour plus d’informations, reportez-vous à Travailler avec le référentiel.
Q : Comment puis-je ajouter un nouveau JAR au projet ?
R : Reportez-vous à la section How to Add a New JAR Dependency (Comment ajouter une nouvelle dépendance JAR) du fichier Identity Manager IDE README.txt.
Travailler avec le référentiel
Q : Quel répertoire dois-je utiliser pour mon référentiel sandbox ?
R : Utilisez le référentiel imbriqué pour votre sandbox, en particulier si vous utilisez Identity Manager 7.1 (ou ultérieur), qui a un référentiel HsSQL disponible. Vous perdrez en fonctionnalité si vous n’utilisez pas le référentiel imbriqué.
Pour plus d’informations, reportez-vous à la section Working with the Repository (Travailler avec le référentiel) du fichier Identity Manager IDE README.txt.
Q : Quels sont les objets importés automatiquement ?
R : Vous devez configurer Identity Manager IDE pour importer des objets automatiquement.
Les étapes sont les suivantes :
- Sélectionnez Repository (Référentiel) > Manage Embedded Repository (Gérer le référentiel imbriqué) dans le menu IdM.
- Activez l’option Automatically Publish Identity Manager Objects (Publier automatiquement les objets d’Identity Manager) dans la boîte de dialogue Manage Embedded Repository (Gestion du référentiel imbriqué).
Remarque
Cette option n’est pas disponible pour Identity Manager Project (Remote) (Projet Identity (Distant)) ni si vous spécifiez votre propre référentiel.
- Sélectionnez Project (Projet) > Run Project (Exécuter le projet) ou Project (Projet) > Debug Project (Déboguer le projet).
Identity Manager IDE importe automatiquement tous les objets qui ont changé depuis la dernière exécution du projet.
Q : Quelle est la manière la plus efficace de charger des objets ?
R :Utilisez l’une des méthodes suivantes pour télécharger les objets modifiés :
- Cliquez sur un ou plusieurs objets modifiés dans le projet avec le bouton droit de la souris et sélectionnez Upload Object (Charger l’objet) dans le menu contextuel.
Astuce
Pour charger plusieurs objets, appuyez sur la touche Contrôle et maintenez-la enfoncée pendant que vous sélectionnez ces objets dans la liste.
- Sélectionnez un ou plusieurs objets modifiés puis sélectionnez Repository (Référentiel) > Upload Objects (Télécharger les objets) dans le menu IdM. Une boîte de dialogue vous permettant de sélectionner les objets à télécharger s’affiche.
Les deux méthodes téléchargent le ou les objets sur le serveur de sorte qu’il n’y a pas de problème de latence de cache et que cela est bien plus rapide qu’utiliser Run Project (Exécuter le projet) ou Debug Project (Déboguer le projet). La fonctionnalité Upload Objects (Télécharger les projets) est disponible quel que soit le référentiel que vous utilisez.
Utilisation du débogueur d’Identity Manager IDE
Q : Le débogueur d’Identity Manager IDE est lent. Quelle pourrait être la cause du problème ?
R : Pour améliorer la performance du débogueur :
- Désactivez toujours le HTTP Monitor de Tomcat, comme suit :
- Sélectionnez l’onglet Runtime (Exécution) d’Identity Manager IDE.
- Développez le nœud Servers (Serveurs) et cliquez avec le bouton droit de la souris sur Bundled Tomcat (Tomcat fourni en standard) > Propriétés.
- Désactivez l’option Enable HTTP Monitor (Activer le moniteur HTTP) et fermez la boîte de dialogue.
La prochaine fois que vous démarrerez Tomcat, le moniteur HTTP sera désactivé.
- Si vous ne déboguez pas Java, sélectionnez Project (Projet) > Run Project (Exécuter le projet) puis Attach Debugger (Joindre le débogueur) > Identity Manager XML Object Debugger (Débogueur des objets XML d’Identity Manager) pour utiliser uniquement le débogueur XPRESS.
Q : Je ne parviens pas à définir de point d’arrêt dans le débogueur. Quelle pourrait être la cause du problème ?
R : Les conditions suivantes pourraient vous empêcher de définir un point d’arrêt :
Identity Manager IDE basiquement ignore tout fichier qui commence par un élément wrapper <Waveset> parce qu’Identity Manager IDE analyse cet élément comme un fichier multi-objet.
Les fonctionnalités suivantes ne fonctionnent pas sur les fichiers multi-objets :
Basiquement, la seule opération que vous pouvez faire sur les fichiers à objets multiples est de les importer. Les seuls fichiers qui devraient contenir des éléments wrapper <Waveset> sont les fichiers d’import de niveau supérieur de votre projet.
Q : J'ai défini un point d’arrêt dans le débogueur mais ce dernier ne s’interrompt pas à ce point d’arrêt. Quelle pourrait être la cause du problème ?
R : Il y a deux points à contrôler :
- Contrôlez que le nom de l’objet ne contient pas de chaîne de substitution CBE (%%). Les chaînes de substitution CBE ne sont pas autorisées dans les noms d’objets.
- Vérifiez si le code que vous pensez être en cours d’exécution l’est réellement. Essayez d’ajouter une trace et regardez si quelque chose s’imprime.
Travailler avec des règles
Q : Lors du développement de règles dans Netbeans, quel est le mode de conception qui n’est pas disponible pour une bibliothèque de règles ?
R : La fonctionnalité de mode de conception est disponible depuis l’arborescence de l’explorateur dans l’affichage Projects (Projets). Suivez les étapes ci-après :
Messages de réglage, de dépannage et d’erreur d’Identity ManagerCette section contient de nouvelles informations et apporte des corrections concernant les Messages de réglage, de dépannage et d’erreur d’Identity Manager.
- Certaines tâches ont été déplacées du package de l’adaptateur à celui des tâches. Mettez à jour ces chemins si la fonction de suivi est activée pour l’une des tâches suivantes ou si vous disposez de définitions de tâches personnalisées faisant référence à ces packages.
Ancien nom du package
Nouveau nom du package
com.waveset.adapter.ADSyncFailoverTask
com.waveset.task.ADSyncFailoverTask
com.waveset.adapter.ADSyncRecoveryCollectorTask
com.waveset.task.ADSyncRecoveryCollectorTask
com.waveset.adapter.SARunner
com.waveset.task.SARunner
com.waveset.adapter.SourceAdapterTask
com.waveset.task.SourceAdapterTask
- Les informations de dépannage « Unable to Delete Errors » (Erreurs impossibles à supprimer) figurant dans la section « Troubleshooting Identity Manager IDE » (Dépannage d’Identity Manager IDE) ne sont plus applicables et ont été supprimées dans cet ouvrage. Le serveur d’application imbriqué Netbeans s’arrête désormais automatiquement lorsque vous effectuez l’une des opérations de projet suivantes : (ID-16851)
- La section « Debugging PasswordSync » (Débogage dePasswordSync) n’est plus dans le chapitre « PasswordSync » d’Identity Manager Administration mais dans le chapitre « Tracing and Troubleshooting Identity Manager » de Messages de réglage, de dépannage et d’erreur d’Identity Manager. (ID-17340)
Étendue de la localisationD’un point de vue historique, Identity Manager ne traduit pas les fonctions et les objets de ressources, essentiellement parce qu’ils constituent souvent des exemples à charger (via le fichier init.xml) au cours de l’initialisation d’Identity Manager et également parce que les attributs des types d’objets varient d’un déploiement client à l’autre, suivant le niveau de personnalisation atteint. La liste suivante récapitule les zones du produit que les utilisateurs pourront rencontrer en anglais : (ID-16349)
Aide en ligneCette section contient des corrections de la documentation pour l’aide en ligne.