Notas de la versión Sun™ Identity Manager 8.0 |
Anexos a la documentación y correcciones
Esta sección contiene información nueva y corregida que ha sido necesaria tras publicar la documentación de Identity Manager 8.0. Esta información se ha dividido como sigue:
Identity Manager 8.0 AdministrationEsta sección contiene una corrección para Sun Identity Manager Administration:
Identity Manager Technical Deployment OverviewEsta sección contiene información nueva y corregida relacionada con el documento Sun Identity Manager Technical Deployment Overview:
La información siguiente debe añadirse o modificarse en el capítulo “Private Labeling of Identity Manager” (Etiquetado privado de Identity Manager) de la Identity Manager Technical Deployment Overview:
PRODUCT_NAME=Identity Manager
LIGHTHOUSE_DISPLAY_NAME=[PRODUCT_NAME]
LIGHTHOUSE_TYPE_DISPLAY_NAME=[PRODUCT_NAME]
LIGHTHOUSE_DEFAULT_POLICY=Predeterminado [PRODUCT_NAME] Directiva de cuentas
Para obtener más información sobre los catálogos personalizados, consulte el Apéndice B, “Rehabilitación de internacionalización”.
Para las páginas Identity Manager End User, End User Navigation UserForm de enduser.xml determina como se muestra en la barra de navegación horizontal. Las páginas End User contienen userHeader.jsp, que contiene otra JSP llamada menuStart.jsp. Este menuStart.jsp proporciona acceso a dos objetos de configuración del sistema:
- ui.web.user.showMenu: Habilita y deshabilita la presentación del menú de navegación (predeterminado: true)
- ui.web.user.menuLayout – Determina si el menú se renderiza como/de navegación horizontal (horizontal) con fichas o como árbol de menús vertical (vertical).
(El valor predeterminado es horizontal.)Las clases de estilo en cascada que determinan cómo se va a aparecer el menú se encuentran en style.css.
- Puede utilizar hojas de estilo en cascada para establecer el ancho de las columnas de las tablas de listas de usuarios y recursos en un valor porcentual o en un valor fijo expresado en píxeles. Para hacerlo, añada las siguientes clases de estilos (inhabilitadas de forma predeterminada) a customStyle.css. A continuación, puede editar los valores para que se cumplan los requisitos del usuario.
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%;
}
También puede cambiar el tamaño de las columnas haciendo clic sobre el borde derecho del encabezado de la columna y arrastrándolo. Si pasa el ratón por el borde derecho del encabezado, el cursor se transformará en una flecha de redimensionamiento horizontal. Haga clic con el botón izquierdo del ratón y arrastre el cursor para cambiar el tamaño de la columna (la acción finaliza cuando se suelta el botón del ratón).
- Los clientes que desean utilizar funciones de JavaScript personalizadas expresamente en la barra de navegación de usuario final (fichas) deben referenciar el formulario mediante endUserNavigation. Por ejemplo, document.forms['endUserNavigation'].elements. (ID-13769)
- El panel de control Revisión de accesos y el informe de detalles de revisión de los accesos muestran instancias de revisiones que se han guardado en los registros de auditoría. Si no se realizan funciones de mantenimiento de la base de datos, el tamaño de los registros de auditoría nunca se reduce y la lista de revisiones crece. Identity Manager ofrece la posibilidad de limitar las revisiones mostradas siguiendo criterios de antigüedad. Para cambiar este límite, debe personalizar compliance/dashboard.jsp (panel de control) y sample/auditortasks.xml (informe de detalles). (El valor predeterminado establece que sólo se muestren las revisiones con menos de 2 años de antigüedad.)
Para restringir las revisiones incluidas en el panel de control Revisión de accesos, personalice compliance/dashboard.jsp de la manera siguiente:
Para ver todas las revisiones que sigan existiendo en los registros de auditoría, inhabilite esta línea.
Para limitar las revisiones incluidas en el informe de detalles de revisión de los accesos:
Cada revisión periódica de los accesos incluye un conjunto de registros UserEntitlement que se crearon en el momento de ejecutar la revisión. Estos registros, que se acumulan con el tiempo, proporcionan información histórica de interés sobre las cuentas. No obstante, para conservar espacio en la base de datos, considere la posibilidad de borrar algunos registros. Puede borrar un registro ejecutando Tareas del servidor > Ejecutar tareas > Eliminar revisión de acceso. Cuando se suprime una revisión, se añaden entradas al registro de auditoría que dejan constancia de la eliminación y se borran todos los registros UserEntitlement asociados, con lo que se libera espacio en la base de datos.
- El Ejemplo de código 5.5 contiene información que debería aparecer en el Ejemplo de código 5.4.
El Ejemplo de código 5.4 debería aparecer como sigue:
El Ejemplo de código 5.5 debería aparecer como sigue:
Ejemplo de código 5-5 Cambio de fichas del panel de fichas
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}
El archivo userHeader.jsp, que está incluido en todas las páginas de usuario final, incorpora otro JSP denominadomenuStart.jsp. Este JSP proporciona acceso a dos objetos de configuración del sistema:
Las clases de estilo en cascada que determinan cómo se va a aparecer el menú se encuentran en style.css.
Ahora es posible incluir la cadena de nombre del producto en la barra de título del navegador con la cadena localizable que se elija.
- Importe el siguiente archivo XML:
Ejemplo de código 1 XML para importar
<?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>
- Con el Identity Manager IDE, cargue el objeto de configuración del sistema para editarlo. Agregue un nuevo atributo de nivel superior:
Name = customMessageCatalog
Type = string
Value = AltMsgCatalog
- Abra el objeto genérico ui.web y busque el atributo browserTitleProdNameOverride. Defina su valor en true.
- Guarde esta modificación del objeto de configuración del sistema y reinicie el servidor de aplicaciones.
- Las instrucciones para personalizar páginas de inicio proporcionadas en “Customizing Identity Manager End User Pages” ahora deben incluir la información siguiente sobre claves de mensaje. (ID-16072)
Componente de JSP o Identity Manager
Interfaz afectada
Clave de mensaje
TÃ˘TULO de página de inicio de sesión
Administrador y usuario
UI_LOGIN_TITLE_TO_RESOURCE
UI_LOGIN_CHALLENGE
SUBTÃ˘TULO de página de inicio de sesión
Administrador y usuario
Seleccione una clave según el modo de inicio de sesión: olvidó su contraseña, olvidó su ID de usuario, pregunta de desafío.
UI_LOGIN_WELCOME3
UI_LOGIN_WELCOME4
UI_LOGIN_WELCOME5
UI_LOGIN_WELCOME6
UI_LOGIN_CHALLENGE_INFO
staticLogout.jsp and user/staticUserLogout.jsp
Administrador y usuario
UI_LOGIN_TITLE
continueLogin.jsp
Administrador
UI_LOGIN_IN_PROGRESS_TITLE
UI_LOGIN_WELCOME
- Las instrucciones para “Changing the Default “Logged in as ...” Text“ deben corregirse así: (ID-18545)
- Debe añadirse la nota siguiente después de la enumeración deactivateDate de la sección “features” del apéndice A, “Editing Configuration Objects.”
Nota
Puede definir tanto activateDate como deactivateDate en true, aunque userAssignment.manual no lo esté. Si define ambos atributos como true para un roleType, y si el rol está contenido dentro de otro rol opcionalmente, entonces puede especificar fechas de activación y desactivación al asignar el rol opcional a un usuario.
Cambio del texto predeterminado “Logged in as ...”
- Importe el siguiente archivo XML:
<?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>
- Añada la línea siguiente al objeto System Configuration, en el elemento <Configuration><Extension><Object>:
Identity Manager Workflows, Forms, and ViewsEsta sección contiene información nueva y corregida relacionada con el documento Sun Identity Manager Workflows, Forms, and Views.
Capítulo 1, Identity Manager Workflow (Flujo de trabajo de Identity Manager)
Comprobación automática de autenticación
Se utiliza para probar las nuevas reglas de determinación de revisión sin crear elementos de trabajo de autenticación. Este flujo de trabajo no crea elementos de trabajo y simplemente termina poco después de iniciarse. Deja todos los objetos de derecho a usuario en el mismo estado en que se crearon durante la exploración de acceso. Utilice las opciones Terminar y Eliminar para limpiar los resultados de las exploraciones de acceso que se ejecutan con este flujo de trabajo.
Este flujo de trabajo se puede importar cuando resulta necesario. (Identity Manager no lo importa automáticamente.)
- En Identity Manager, el Cumplimiento utiliza los flujos de trabajo como puntos de integración y personalización de la aplicación. A continuación se describen los flujos de trabajo predeterminados que están relacionados con el cumplimiento. (ID-15447)
Nombre del flujo de trabajo
Función
Remediación
Remediación para un único remediador que trabaja con una sola infracción del cumplimiento
Remediación de revisión de acceso
Remediación para un único remediador que trabaja con un solo registro de derecho a usuario (UserEntitlement)
Flujo de trabajo de
Autenticación para un único autenticador que trabaja con un solo registro de derecho a usuario (UserEntitlement)
Multirremediación
Remediación para una sola infracción del cumplimiento y varios remediadores
Actualizar infracción del cumplimiento
Mitigar una infracción del cumplimiento
Iniciar exploración de acceso
Iniciar una tarea de exploración de acceso desde otra de revisión de acceso
Iniciar reexploración de derecho
Iniciar una nueva exploración de los derechos de acceso de un usuario
Iniciar reexploración de infracción
Iniciar una nueva exploración de las directivas de auditoría asociadas a un usuario
- La descripción de la propiedad maxSteps se ha revisado. (ID-15618)
Especifica el número máximo de pasos permitido en cualquier proceso o subproceso del flujo de trabajo. Cuando se supera este nivel, Identity Manager termina el flujo de trabajo. Este parámetro se utiliza como medida de seguridad para detectar el momento en el que el flujo de trabajo se bloquea y entra en un bucle infinito. El valor predeterminado configurado en el flujo de trabajo mismo es 0, lo que indica que Identity Manager debería obtener el valor real de la configuración global almacenada en el atributo workflow.maxSteps del objeto de configuración del sistema. El valor de configuración global es 5000.
Ejecuta BeanShell o Javascript en función de la secuencia de comandos proporcionada. Como se trata de una tarea, se puede programar para que se ejecute periódicamente. Por ejemplo, se puede utilizar para exportar datos del repositorio a una base de datos de generación de informes y análisis. Entre las ventajas que ofrece se encuentra la posibilidad de introducir una tarea personalizada sin escribir código Java personalizado. (Aunque el código Java personalizado requiere una recompilación con cada actualización y debe implementarse en todos los servidores, no es necesario recompilarlo ni implementarlo debido a que la secuencia de comandos está incrustada en la tarea Scripted Task Executor.)
Capítulo 2, Workflow Services (Servicios de flujo de trabajo)
- La tabla de argumentos del servicio de flujo de trabajo de sesión createView es incorrecta. En la tabla siguiente se describen los argumentos disponibles en este servicio.(ID-14201)
Tabla 1
Nombre
Requerido
Valores válidos
Descripción
op
sí
createView
viewId
sí
Especifica el tipo de vista que se crea.
options
No
Indica las opciones específicas de la vista. Los valores posibles dependen de la vista utilizada. La más frecuente es la vista de usuario.
Las opciones se halan en session.UserViewConstants. Las vistas más simples deben declarar sus constantes de opción en el archivo Viewer.java.
Posiblemente, la segunda vista de flujo de trabajo más utilizada sea ProcessViewer, seguida de PasswordViewer, DisableViewer, EnableViewer y RenameViewer. En comparación tienen pocas opciones.
- La descripción del servicio de flujo de trabajo disableUser debe aclarar que el comportamiento predeterminado del servicio consiste en inhabilitar la cuenta de Identity Manager y la cuenta de recurso. (ID-14572) Si prefiere no deshabilitar la cuenta de Identity Manager, pase el argumento siguiente:
La descripción de los argumentos de este método debe ser:
Nombre
Requerido
Valores válidos
Descripción
op
sí
disableUser
accountId
sí
Identifica el usuario de Identity Manager para quien se deshabilitan las cuentas.
doWaveset
No
true/false
Cuando es true, se deshabilita la cuenta de Identity Manager para este usuario. Si no se suministra, adopta el valor predeterminado true y la cuenta se deshabilita.
services
No
Identifica una lista de recursos para deshabilitar. Si no se suministra este argumento, se deshabilitan todas las cuentas de recurso del usuario.
- En este documento se representa incorrectamente el atributo viewId de los métodos checkoutView y createView como “viewid”. La sintaxis correcta de este parámetro es viewId. (ID-15411)
- Este capítulo contiene la siguiente descripción de los servicios de flujo de trabajo de bloqueo y desbloqueo.(ID-17070)
lock Provisioning Workflow Service (Servicio de flujo de trabajo de aprovisionamiento de bloqueo)
Sirve para bloquear un objeto.
Argumento
Requerido
Descripción
subject
No
Indica el asunto efectivo de la llamada. Si no se suministra, Identity Manager utiliza el subject de la tarea. Si el valor de este argumento es none, Identity Manager no realiza ninguna autorización.
options
No
(Mapa) Mapa de los pares de valores nombre de opción/valor de opción. Si no se suministra, se utilizan los argumentos específicos indicados a continuación. Si se suministra, los argumentos específicos indicados a continuación anulan el argumento equivalente contenido en este mapa de opciones.
accountId
No
(Cadena) Identifica el nombre del usuario de Identity Manager que se debe bloquear.
adminName
No
(Cadena) Identifica el nombre del administrador que realiza la operación.
loginAppName
No
(Cadena) Indica el nombre de la aplicación de acceso.
op
sí
El valor válido es unlock
Este método devuelve un valor nulo.
unlock Workflow Service (Servicio de flujo de trabajo de desbloqueo)
Sirve para desbloquear un objeto bloqueado.
Tabla 1
Argumento
Requerido
Descripción
subject
No
(Cadena) Indica el asunto efectivo de la llamada. Si no se suministra, se utiliza el asunto de la tarea. Si el valor de este argumento es none, no se realiza ninguna autorización.
options
No
(Mapa) Mapa de los pares de valores nombre de opción/valor de opción. Si no se suministra, Identity Manager utiliza los argumentos específicos indicados a continuación. Si se suministra, los argumentos específicos indicados a continuación anulan el argumento equivalente contenido en este mapa de opciones.
accountId
No
(Cadena) Identifica el nombre del usuario de Identity Manager que se debe desbloquear.
adminName
No
(Cadena) Identifica el nombre del administrador que realiza la operación.
loginAppName
No
(Cadena) Indica el nombre de la aplicación de acceso.
doLighthouse
No
(Booleano) Especifica si se debe desbloquear la cuenta de Identity Manager.
doResources
No
(Booleano) Especifica si se deben desbloquear los recursos del usuario.
doAuthenticators
No
(Booleano) Si su valor es true, se desbloquea toda la autenticación intermedia.
op
sí
El valor válido es unlock.
Este método devuelve un resultado WavesetResult de la operación.
Se utiliza para suprimir una tarea diferida de un objeto de Identity Manager. Identity Manager se asegurará de que el administrador que ha iniciado el flujo de trabajo tenga autorización para suprimir el objeto.
Tabla 2 Argumentos del método removeDeferredTask
Nombre
Requerido
Valores válidos
Descripción
tipo
No
los valores válidos son la lista de tipos
Especifica el tipo de objeto del que se suprimirá la tarea diferida. Si no se suministra, se utiliza de manera predeterminada el tipo user.
Nombre
sí
Especifica el nombre del objeto del que se suprimirá la tarea diferida.
task
Especifica el nombre de la definición de tarea que se suprime.
Capítulo 3, Identity Manager Forms (Formularios de Identity Manager )
Los formularios de auditoría y cumplimiento de Identity Manager aportan una funcionalidad exclusiva dentro de los formularios de Identity Manager: es posible asignar un formulario en función del usuario y en función de la organización. Los formularios asignados en función del usuario pueden multiplicar la eficacia en los procesos de autenticación y remediación.
Por ejemplo, se puede especificar el formulario de usuario que presenta Identity Manager para editar un usuario en el contexto de una revisión de acceso, una remediación o una remediación de una infracción del cumplimiento. Dicho formulario se puede especificar en el nivel de usuario o de organización. Cuando Identity Manager reexplora un usuario en el contexto de una reexploración o una remediación de revisión de acceso, la reexploración respeta las directivas de auditoría definidas en la exploración de acceso. Se puede definir de modo que incluya las directivas de auditoría de cumplimiento continuo.
Información relacionada
- Consulte Identity Manager Administration para conocer los conceptos en que se basan las funciones de auditoría y cumplimiento de Identity Manager, así como los procedimientos básicos para implementarlas con sus parámetros predeterminados.
- Consulte las reglas de Identity Manager en Identity Manager Deployment Tools para conocer tanto información general al respecto como detalles específicos sobre las reglas de remediación.
Acerca del procesamiento de formularios relacionados con auditoría
De forma muy similar a userForm y viewUserForm, es posible definir un formulario para un determinado usuario u organización y ese usuario (o todos los de la organización) empleará dicho formulario. Si define un formulario tanto para un usuario como para la organización, tendrá prioridad el formulario del usuario. (Al buscar el formulario, Identity Manager indaga en las organizaciones hacia arriba.)
Los formularios relativos a auditoría funcionan del mismo modo que el de usuario y el de vista de usuarios: cada usuario puede designar un formulario determinado para utilizarlo, y la organización decidirá qué formulario debe emplear un usuario específico.
Especificación de formularios de usuario
Los formularios de lista de directivas de auditoría y de lista de exploraciones de acceso admiten una propiedad fullView que permite mostrar en el formulario un número considerable de datos sobre los elementos de la lista. Si esta directiva se configura como false, aumenta el rendimiento del visualizador de listas.
El formulario de lista de aprobación de acceso posee una propiedad análoga, denominada includeUE, mientras que el de lista de remediación utiliza la propiedad includeCV.
Formularios relacionados con auditoría
En la tabla siguiente se indican los formularios predeterminados relacionados con auditoría que se incluyen con Identity Manager.
Tabla 2
Nombre del formulario
Nombre asignado
Control por el usuario
Función general
Lista de aprobación de acceso
accessApprovalList
Mostrar la lista de elementos de trabajo de autenticación.
Confirmación de eliminación de revisión de acceso
accessReviewDeleteConfirmation
Confirmar la eliminación de una revisión de acceso.
Confirmación de anulación de revisión de acceso
accessReviewAbortConfirmation
Confirmar la anulación de una revisión de acceso.
Panel de control Revisión de accesos
accessReviewDashboard
Mostrar la lista completa de revisiones de acceso.
Formulario de remediación de revisión de acceso
accessReviewRemediationWorkItem
Sí
Representa cada elemento de trabajo de remediación basado en DU
Resumen de revisión de acceso
accessReviewSummary
Mostrar los detalles de una revisión de acceso específica.
Formulario de exploración de acceso
accessScanForm
Mostrar o modificar una exploración de acceso.
Lista de exploraciones de acceso
accessScanList
Mostrar la lista completa de exploraciones de acceso.
Confirmación de eliminación de exploración de acceso
accessScanDeleteConfirmation
Confirmar la eliminación de una exploración de acceso.
Lista de aprobación de acceso
attestationList
Sí
Mostrar la lista completa de exploraciones de acceso.
Formulario de autenticación
attestationWorkItem
Sí
Representa cada elemento de trabajo de autenticación
Derecho a usuario
userEntitlementForm
Mostrar el contenido de un registro de derecho a usuario.
Resumen de derecho a usuario
userEntitlementSummaryForm
Dato de infracción
violationDetailForm
Mostrar los detalles de una infracción del cumplimiento.
Lista de remediación
remediationList
Sí
Mostrar una lista de elementos de trabajo de remediación.
Lista de directivas de auditoría
auditPolicyList
Mostrar una lista de las directivas de auditoría.
Confirmación de eliminación de directiva de auditoría
auditPolicyDeleteConfirmation
Confirmar la eliminación de una directiva de auditoría.
Datos de infracción por conflicto
conflictViolationDetailsForm
Mostrar la matriz de infracciones SOD.
Resumen de infracciones de cumplimiento
complianceViolationSummaryForm
Formulario de remediación
reviewWorkItem
Sí
Representa una infracción de cumplimiento.
¿Por qué personalizar estos formularios?
Los autenticadores y remediadores pueden especificar formularios que muestren exactamente los detalles necesarios para aumentar la eficacia al autenticar y remediar. Por ejemplo, un autenticador de recursos puede mostrar atributos específicos de recurso en el formulario de lista para poder autenticarlos sin consultar cada elemento de trabajo. Como este formulario varía según el tipo de recurso (y, por tanto, los atributos), tiene sentido personalizar el formulario en función del autenticador.
Durante la autenticación, cada autenticador puede contemplar los derechos desde una perspectiva exclusiva. Por ejemplo, el autenticador de idmManager puede observar el derecho de usuario de forma genérica, mientras que a un autenticador de recursos sólo le interesan los datos específicos del recurso. Si se permite que cada autenticador adapte tanto el formulario de lista de autenticación como el de elementos de trabajo de autenticación (AttestationWorkItem) para recuperar y mostrar sólo la información que necesita, la interfaz del producto puede multiplicar su eficacia.
Variables de la tarea de exploración
En la definición de las tareas de exploración de directiva de auditoría y de exploración de acceso se especifica los formularios que se utilizan al iniciar la tarea. Estos formularios incluyen campos que permiten controlar la mayoría de las variables de la tarea de exploración, pero no todas.
Nombre de la variable
Valor predeterminado
Función
maxThreads
5
Indica el número de usuarios que pueden explorarse a la vez en una sola operación. El aumento de este valor ofrece la posibilidad de mejorar el resultado cuando se exploran usuarios con cuentas de muy bajos recursos.
userLock
5000
Indica el tiempo (en ms) que se tarda intentando bloquear al usuario que se va explorar. Cuando se realizan varias operaciones de exploración simultáneas en el mismo usuario y los recursos del usuario son lentos, el aumento de este valor puede reducir el número de errores de bloqueo, pero también puede ralentizar la exploración.
scanDelay
0
Indica el tiempo de demora (en ms) entre nuevos subprocesos de exploración. Se puede definir en un número positivo para que se utilicen menos recursos de la CPU durante la exploración.
Calcula un valor booleano. Si es verdadero, el campo y todos sus campos anidados se ignoran durante el procesamiento del formulario.
No cree actividades que puedan tardar en ejecutarse en los elementos Disable. Estas expresiones se ejecutan cada vez que se recalcula el formulario. Realice el cálculo en otro elemento de formulario que no se ejecute con tanta frecuencia.
- Ahora es posible introducir mensajes de advertencia (WARNING), error (ERROR) o informativos (OK) en un formulario XPRESS. (ID-14540, ID-14953)
Nota
Aunque en este ejemplo se ilustra la forma de introducir un objeto ErrorMessage en un formulario, se le puede asignar un nivel de seguridad diferente.
- Utilice el Identity Manager IDE para abrir el formulario al que quiera añadir la advertencia.
- Añada <Property name='messages'> a la clase de presentación EditForm o HtmlPage principal.
- Añada el bloque de código <defvar name='msgList'> del siguiente código de ejemplo.
- En la cadena, sustituya la clave de mensaje que identifica el texto del mensaje que se va a mostrar en el cuadro de alerta:
<message name='UI_USER_REQUESTS_ACCOUNTID_NOT_FOUND_ALERT_VALUE >
- Guarde y cierre el archivo.
Ejemplo de código
<Display class='EditForm'>
<Property name='componentTableWidth' value='100%'/>
<Property name='secret' 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 clase de presentación Hidden corresponde al componente HTML <input type=hidden’/>. Este componente únicamente admite tipos de datos de un solo valor, porque no hay un modo fiable de serializar y deserializar tipos de datos de varios valores. (ID-16904)
Si desea representar una lista como una cadena, debe convertirla explícitamente en una cadena. Por ejemplo:
Ejemplo de código 0-1 Representación de tipos de datos de varios valores con el componente de presentación Hidden
<Field name='testHiddenFieldList' >
<Display class='Hidden'/ >
<Derivación>
<invoke name='toString'> <List> <String>aaaa</String> <String>bbbb</String> </List> </invoke>
</Derivation>
</Field>
- Ahora es posible definir la propiedad RequiresChallenge en el formulario de cambio de contraseña de la interfaz de usuario final para que los usuarios tengan que reintroducir la contraseña actual antes de cambiar la contraseña de su cuenta. Encontrará un ejemplo de definición de esta propiedad en el formulario Basic Change Password Form del archivo enduser.xml. (ID-17309)
Capítulo 4, Identity Manager Views (Vistas de Identity Manager)
Atributos comunes
La tabla siguiente muestra los atributos de nivel superior de la vista organizativa.
Nombre
¿Editable?
Tipo de datos
¿Requerido?
orgName
Leer
Cadena
Generado por sistema
orgDisplayName
Leer/Escribir
Cadena
Sí
orgType
Leer/Escribir
Cadena
No
orgId
Leer
Cadena
Generado por sistema
orgAction
Escribir
Cadena
No
orgNewDisplayName
Escribir
Cadena
No
orgParentName
Leer/Escribir
Cadena
No
orgChildOrgNames
Leer
Lista
Generado por sistema
orgApprovers
Leer/Escribir
Lista
No
allowsOrgApprovers
Leer
Lista
Generado por sistema
allowedOrgApproverIds
Leer
Lista
Generado por sistema
orgUserForm
Leer/Escribir
Cadena
No
orgViewUserForm
Leer/Escribir
Cadena
No
orgPolicies
Leer/Escribir
Lista
No
orgAuditPolicies
Leer/Escribir
Lista
No
renameCreate
Leer/Escribir
Cadena
No
renameSaveAs
Leer/Escribir
Cadena
No
orgName
Identifica el UID de la organización. Este valor se diferencia de la mayoría de los nombres de objeto de vista porque el nombre de las organizaciones puede adoptar la misma forma abreviada, pero sus organizaciones precursoras pueden ser distintas.
orgDisplayName
Especifica el nombre abreviado de la organización. Este valor sólo se utiliza en visualización y no tiene por qué ser único.
orgType
Define el tipo de organización, cuyos valores admitidos son junction o virtual. Las organizaciones que no son de tipo junction o virtual carecen de valor.
orgId
Especifica el ID que identifica a la organización en exclusiva dentro de Identity Manager.
orgAction
Sólo se admite con empalmes de directorios, organizaciones virtuales y organizaciones dinámicas. El valor permitido es refresh. Cuando una organización es virtual o un empalme de directorios, el comportamiento de la operación de regeneración depende del valor de orgRefreshAllOrgsUserMembers.
orgNewDisplayName
Especifica el nuevo nombre abreviado al renombrar la organización.
orgParentName
Identifica la ruta de acceso completa a la organización precursora.
orgChildOrgNames
Muestra una lista con los nombres de interfaz de Identity Manager de todas las organizaciones derivadas directas e indirectas.
orgApprovers
Muestra una lista con los administradores de Identity Manager necesarios para aprobar usuarios añadidos o modificados en esta organización.
allowedOrgApprovers
Muestra una lista con los posibles nombres de usuario que podrían actuar como aprobadores de los usuarios añadidos o modificados en esta organización.
allowedOrgApproverIds
Muestra una lista con los posibles ID de usuario que podrían actuar como aprobadores de los usuarios añadidos o modificados en esta organización.
orgUserForm
Especifica el formulario de usuario (userForm) que los afiliados de esta organización utilizan para crear o editar usuarios.
orgViewUserForm
Especifica el formulario de vista de usuario que los afiliados de esta organización utilizan para ver usuarios.
orgPolicies
Identifica las directivas que se aplican a todos los afiliados de esta organización. Se trata de una lista de objetos que se introducen mediante cadenas de tipo: Cada objeto de directiva contiene los siguientes atributos de vista, que llevan el prefijo orgPolicies[<type>]. <type> representa el tipo de directiva (por ejemplo, cuenta de Lighthouse).
orgAuditPolicies
Especifica las directivas de auditoría que se aplican a todos los afiliados de esta organización.
renameCreate
Cuando se define en true, clona esta organización en otra utilizando el valor de orgNewDisplayName.
renameSaveAs
Cuando se define en true, renombra esta organización utilizando el valor de orgNewDisplayName.
Atributos de empalme de directorios y organización virtual
Nombre
¿Editable?
Tipo de datos
¿Requerido?
orgContainerId
Leer
Cadena
Generado por sistema
orgContainerTypes
Leer
Lista
Generado por sistema
orgContainers
Leer
Lista
Generado por sistema
orgParentContainerId
Leer
Cadena
Generado por sistema
orgResource
Leer/Escribir
Cadena
Sí, en caso de empalme de directorios u organización virtual
orgResourceType
Leer
Cadena
Generado por sistema
orgResourceId
Leer
Cadena
Generado por sistema
orgRefreshAllOrgsUserMembers
Escribir
Cadena
No
orgContainerId
Especifica el dn del contenedor de directorio LDAP asociado (por ejemplo, cn=foo,ou=bar,o=foobar.com).
orgContainerTypes
Muestra una lista con todos los tipos de objetos de recurso permitidos que pueden contener otros objetos de recurso.
orgContainers
Muestra una lista con los contenedores básicos del recurso que la interfaz de Identity Manager utiliza para presentar una lista donde elegir.
orgParentContainerId
Especifica el dn del contenedor de directorio LDAP principal asociado (por ejemplo, cn=foo,ou=bar,o=foobar.com).
orgResource
Especifica el nombre del recurso de Identity Manager utilizado para sincronizar empalmes de directorios y organizaciones virtuales (por ejemplo, West Directory Server).
orgResourceType
Especifica el tipo de recurso de Identity Manager desde el que se sincronizan empalmes de directorios y organizaciones virtuales (por ejemplo, LDAP).
orgResourceId
Especifica el ID del recurso de Identity Manager utilizado para sincronizar empalmes de directorios y organizaciones virtuales.
orgRefreshAllOrgsUserMembers
Si se define en true y si el valor de orgAction es refresh, sincroniza la afiliación del usuario de la organización de Identity con la afiliación del contenedor de recursos para la organización seleccionada y todas las organizaciones derivadas. Si se define en false, no se sincronizará la afiliación del contenedor de recursos, sino únicamente los contenedores de recursos con las organizaciones de Identity para la organización seleccionada y todas las derivadas.
Atributos de organización dinámica
Nombre
¿Editable?
Tipo de datos
¿Requerido?
orgUserMembersRule
Leer/Escribir
Cadena
No
orgUserMembersRuleCacheTimeout
Leer/Escribir
Cadena
No
orgUserMembersRule
Identifica (por nombre o UID) la regla cuyo tipo de autorización (authType) es UserMembersRule, que se evalúa en tiempo de ejecución para determinar la afiliación del usuario.
orgUserMembersCacheTimeout
Especifica el tiempo transcurrido (en milésimas de segundo) antes de que se agote el tiempo de espera en caché si los afiliados devueltos por la regla orgUserMembersRule van a incluirse en caché. Un valor de 0 indica que no se incluye en caché.
En la actualidad, el análisis de la vista de usuario también está relacionado con los atributos accounts[Lighthouse].delegates: (ID-15468)
accounts[Lighthouse].delegates
Ofrece una lista de objetos delegados, clasificados por workItemType, en la que cada objeto incluye información concreta sobre un tipo de elemento de trabajo específico.
accounts[Lighthouse].delegatesHistory
Ofrece una lista de objetos delegados, clasificados entre 0 y n, donde n corresponde al nivel máximo actual de historiales.
Este atributo sólo tiene un atributo, selected, que es un valor booleano que indica el objeto de historial actualmente seleccionado.
accounts[Lighthouse].delegatesOriginal
Después de una operación get o checkout view, ofrece la lista original de objetos delegados, clasificados por workItemType.
Todos los atributos accounts[Lighthouse].delegates* reciben los siguientes atributos:
Atributos de accounts[Lighthouse].delegate*
Descripción
workItemType
Identifica el tipo de elemento de trabajo que se delega. Para obtener una lista de tipos de elementos de trabajo válidos, consulte la descripción del modelo de objeto delegado en la sección Identity Manager Technical Deployment Overview de este anexo.
workItemTypeObjects
Presenta una lista con los nombres concretos de los roles, los recursos o las organizaciones cuya solicitud futura de aprobación de elemento de trabajo piensa delegar el usuario. Este atributo es válido cuando el valor de workItemType es roleApproval, resourceApproval o organizationApproval.
Si no se especifica, este atributo establece de forma predeterminada la delegación de solicitudes futuras de aprobación de elemento de trabajo relacionadas con roles, recursos u organizaciones de los que el usuario es aprobador.
toType
Tipo al que se va a delegar. Los valores válidos son:
manager
delegateWorkItemsRule
selectedUsers
toUsers
Lista de los nombres de los usuarios en los que se delega (si toType es selectedUsers).
toRule
Especifica el nombre de la regla de evaluación que se empleará para determinar el conjunto de usuarios en el que se va a delegar (si toType es delegateWorkItemsRule).
startDate
Especifica la fecha de inicio de la delegación.
endDate
Especifica la fecha en la que termina la delegación.
Referencia de un objeto DelegateWorkItems View de un formulario
En el siguiente ejemplo de código se ilustra la forma de hacer referencia a un objeto delegado DelegateWorkItems View desde un formulario.
<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'>
donde los valores de índice (*) admitidos son valores workItemType.
Nombre
¿Editable?
Tipo
¿Requerido?
Nombre
Cadena
Sí
estado
Cadena
Sí
Usuario
Cadena
Sí
userId
Cadena
Sí
attestorHint
Cadena
No
userView
GenericObject
Sí
reviewInstanceId
Cadena
Sí
reviewStartDate
Cadena
Sí
scanId
Cadena
Sí
scanInstanceId
Cadena
Sí
approvalWorkflowName
Cadena
Sí
organizationId
Cadena
Sí
attestorComments.name
Cadena
No
attestorComments.attestor
Cadena
No
attestorComments.time
Cadena
No
attestorComments.timestamp
Cadena
No
attestorComments.status
No
Nombre
Identifica el derecho de usuario mediante un identificador exclusivo.
estado
Especifica el estado del objeto de derecho de usuario. Los estados válidos incluyen PENDING (pendiente), ACCEPTED (aceptado), REJECTED (denegado), REMEDIATING (remediando) y CANCELLED (cancelado).
Usuario
Identifica el nombre del WSUser asociado a este derecho.
userId
Especifica el ID del WSUser asociado.
attestorHint
Muestra al autenticador el truco (cadena) que ofrece la regla de determinación de revisión. Este truco sirve como consejo de la regla al autenticador.
userView
Contiene la vista de usuario que captura la operación de exploración de derechos de usuario. Esta vista contiene cero o más cuentas de recurso según la configuración del objeto de exploración de acceso.
reviewInstanceId
Especifica el ID de la instancia de la tarea PAR.
reviewStartDate
Indica la fecha de inicio (cadena) de la tarea PAR (en formato canónico).
scanId
Especifica el ID de la definición de tarea de exploración de acceso.
scanInstanceId
Especifica el ID de la instancia de tarea de exploración de acceso.
approvalWorkflowName
Identifica el nombre del flujo de trabajo que se debe ejecutar para aprobación. Este valor procede de la definición de tarea de exploración de acceso.
organizationId
Especifica el ID de la organización de WSUser en el momento de la exploración.
attestorComments
Muestra los registros de autenticación del derecho. Cada registro de autenticación indica una acción o instrucción efectuadas acerca del derecho, incluidas aprobación, denegación y reexploración.
attestorComments[timestamp].name
Indicación de tiempo utilizada para identificar este elemento en la lista.
attestorComments[timestamp].attestor
Identifica el nombre de WSUser del autenticador que comenta el derecho.
attestorComments[timestamp].time
Especifica la hora en que el autenticador autenticó este registro. Puede ser distinta a la indicación de tiempo.
attestorComments[timestamp].status
Indica el estado asignado por el autenticador. Puede ser cualquier cadena, pero suele indicar la acción realizada por el autenticador; por ejemplo, aprobar, denegar, reexplorar o remediar.
attestorComments[name].comment
Contiene comentarios introducidos por el autenticador.
- Se han desaprobado los siguientes atributos de vista de usuario. (ID-15468)
- accounts[Lighthouse].delegateApproversTo
- accounts[Lighthouse].delegateApproversSelected
- accounts[Lighthouse].delegateApproversStartDate
- accounts[Lighthouse].delegateApproversEndDate
- Aunque se ha desaprobado la vista de aprobadores delegados, sigue sirviendo para editar objetos delegados cuyo tipo de elemento (workItemType) es approval.
Capítulo 6, XPRESS Language (Lenguaje XPRESS)
Capítulo 8, HTML Display Components (Componentes de visualización HTML)
Con el componente MultiSelect puede ser resultar difícil mostrar varios roles de administración (ya se utilice la miniaplicación o la versión HTML). Identity Manager ofrece una forma más gradual de mostrar y administrar los roles de administración: la plantilla de campo objectSelector. (ID-15433)
La biblioteca de selección escalable (sample/formlib.xml) incluye un ejemplo de cómo utilizar la plantilla objectSelector para buscar nombres de roles de administración que el usuario pueda utilizar.
Ejemplo de código Ejemplo de 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>
Cómo utilizar el código de ejemplo de objectSelector
- En el Identity Manager IDE, abra el objeto de formulario de usuario de la biblioteca del administrador.
- Añada el código siguiente a este formulario:
<Incluir>
<ObjectRef type='UserForm' name='Scalable Selection Library'/>
</Include>
- Seleccione el campo accounts[Lighthouse].adminRoles en el campo AdministratorFields.
- Sustituya accounts[Lighthouse].adminRoles por la referencia siguiente:
<FieldRef name='scalableWaveset.adminRoles'/>
- Guarde el objeto.
Cuando después modifique un usuario y seleccione la ficha de seguridad, Identity Manager presentará el formulario personalizado. Cuando haga clic en ... se abrirá el componente Selector y aparecerá un campo de búsqueda. Utilice este campo para buscar roles de administración que empiecen con una cadena de texto y defina el campo en uno o varios valores.
Para restaurar el formulario, importe el archivo $WSHOME/sample/formlib.xml mediante el uso del menú Configurar > Importar fichero de intercambio.
Consulte la biblioteca de selección escalable del archivo sample/formlib.xml para ver otros ejemplos de cómo utilizar la plantilla objectSelector para administrar recursos y roles en entornos con muchos objetos.
- La sección relacionada con el componente TabPanel incluye la siguiente descripción de la propiedad validatePerTab: (ID-15501)
Consta de tres clases: Menu, MenuBar y MenuItem.
Menu contiene las siguientes propiedades:
- layout: Cadena con valor horizontal o vertical. El valor horizontal genera una barra de navegación horizontal con fichas. El valor vertical hace que el menú se represente como un árbol vertical con la típica estructura nodal.
- stylePrefix: Prefijo de cadena correspondiente al nombre de clase de las hojas de estilo en cascada. El valor es User para las páginas de usuario final de Identity Manager.
MenuBar contiene las siguientes propiedades:
MenuItem contiene las siguientes propiedades:
- containedUrls: Lista de rutas URL de acceso a JSP que están “relacionadas” con MenuItem. El elemento MenuItem actual aparecerá como “seleccionado” si se representa alguna de las páginas de Java Server (JSP) de containedUrls. Un ejemplo es la página de resultados de petición de inicio que aparece después de iniciar un flujo de trabajo desde la página de petición de inicio.
Estas propiedades se pueden definir en MenuBar o MenuItem:
En el siguiente ejemplo de la función XPRESS se crea un menú con dos fichas. La segunda ficha contiene a su vez dos subfichas:
Ejemplo de código Implementación de los componentes Menu, MenuItem y 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
Representa una lista editable de cadenas.
Tabla 3 Propiedades del componente ListEditor
Propiedad
Descripción
listTitle
(Cadena) Especifica la etiqueta que Identity Manager coloca junto a la representación gráfica de ListEditor.
pickListTitle
(Cadena) Especifica la etiqueta que se usa en el componente picklist.
valueMap
(Mapa) Especifica un mapa de etiquetas de presentación para los valores de la lista.
allowDuplicates
(Booleano) El valor true indica que Identity Manager admite duplicados en la lista administrada.
allowTextEntry
(Booleano) El valor true indica que Identity Manager muestra un cuadro de entrada de texto y un botón para agregar.
fixedWidth
(Booleano) El valor true indica que el componente debe tener un ancho fijo (igual comportamiento que el componente Multiselect).
ordered
(Booleano) El valor true indica que el orden de los valores es importante.
sorted
(Booleano) El valor true indica que los valores deben ordenarse en la lista de selección. Si se trata de cifras con varios valores que no están ordenadas, Identity Manager también ordena la lista de valores.
pickValueMap
(Lista o mapa) Especifica un mapa de etiquetas de presentación para los valores de la lista de selección.
pickValues
(Lista) Especifica los valores disponibles en el componente picklist. Si es nulo, la lista de selección picklist no se muestra
height
(Entero) Indica el alto preferido.
width
(Entero) Indica el ancho preferido. El contenedor puede utilizarla como una propiedad de la celda de la tabla donde se representa este elemento.
Ejemplo
El ejemplo siguiente del formulario de usuario con fichas muestra un campo que utiliza la clase de presentación 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>
<Expansión>
<ref>accounts[Sim1].Group</ref>
</Expansion>
</Field>
Este fragmento de código crea un campo donde el usuario puede agregar grupos o suprimirlos de un usuario.
Habilitación de autocomplete en páginas de inicio de sesión de Identity Manager
Para habilitar esta función en las páginas de inicio de sesión de Identity Manager, cambie el objeto de configuración del sistema ui.web.disableAutocomplete a true. Las páginas de inicio de sesión de Identity Manager incluyen login.jsp, continueLogin.jsp, user/login.jsp y user/continueLogin.jsp.
XPRESS genera otros formularios de inicio de sesión de Identity Manager distintos a los anteriores, lo que obliga a modificarlos para utilizar la nueva propiedad de presentación: Estos formularios, que se hallan en el directorio de ejemplo, incluyen esta propiedad inhabilitada de manera predeterminada.
Apéndice A, Form and Process Mappings (Asignaciones de formularios y procesos)
- Hay una versión actualizada de este apéndice (Form and Process Mappings) en el mismo directorio que estas Notas de la versión.
- A través de los nombres asignados es posible acceder a tareas específicamente relacionadas con el cumplimiento. (ID-15447)
Nombre del proceso
Nombre asignado
Descripción
Revisión de acceso
accessReview
Realiza una revisión de acceso.
Exploración de acceso
accessReviewScan
Realiza una exploración de acceso.
Reexploración de revisión de acceso
accessReviewRescan
Realiza una reexploración de acceso.
Volver a analizar directivas de auditoría
auditPolicyRescan
Realiza una reexploración de directiva de auditoría.
Anular revisión de acceso
abortAccessReview
Termina una revisión de acceso.
Eliminar revisión de acceso
deleteAccessReview
Elimina una revisión de acceso.
Recuperar revisión de acceso
recoverAccessReview
Recupera los objetos de estado de revisión de acceso que faltan de los registros de auditoría.
Identity Manager Deployment ToolsEsta sección contiene las correcciones y los anexos a la documentación Identity Manager Deployment Tools:
- El capítulo “Using the Identity Manager IDE” (Incluido en versiones anteriores) se ha eliminado de este libro. Las instrucciones para instalar y configurar Identity Manager Integrated Development Environment (Identity Manager IDE) se ofrecen ahora en https://identitymanageride.dev.java.net. (ID-17700)
Uso del analizador de Identity Manager
Identity Manager ofrece un analizador que ayuda a solucionar problemas de rendimiento en formularios, Java, reglas, flujos de trabajo y XPRESS de la implementación.
Formularios, Java, reglas, flujos de trabajo y XPRESS pueden causar problemas de rendimiento y escala. El analizador calcula cuánto tiempo se invierte en distintas áreas de los formularios, Java, normas, flujos de trabajo u objetos XPRESS, lo que le permite determinar si provocan problemas de rendimiento y escala y, en tal caso, averiguar qué partes de dichos objetos producen los problemas.
En esta sección se explica cómo utilizar el analizador de Identity Manager se incluye un tutorial que le enseñará a solucionar problemas de rendimiento en la implementación. La información se ha dividido como sigue:
Descripción general
En esta sección se describen las características y la funcionalidad del analizador de Identity Manager. La información se ha dividido como sigue:
Funciones principales
Puede utilizar el analizador para:
- Los resultados de la instantánea pueden verse en cuatro vistas de datos distintas:
- Vista de llamadas en árbol proporciona una tabla de árbol con el control del tiempo de llamada y el recuento de invocaciones en todo el sistema.
- Vista de zonas activas ofrece una lista lineal de nodos con los controles acumulados de tiempo de llamadas, independientemente del elemento principal.
- Vista de retroseguimientos proporciona una pila de llamadas invertida con todas las cadenas de llamada desde las que se ha llamado el nodo (denominado nodo raíz).
- Vista de receptores de llamadas muestra un árbol de llamadas agregadas del nodo raíz, cualquiera que sea la cadena principal.
- Especificar qué tipo de información se incluye en la instantánea:
- Puede incluir cada elemento del formulario, flujo de trabajo y XPRESS o restringir el contenido a un conjunto determinado de elementos.
- Puede elegir métodos específicos y constructores de Java para incluir o excluir de la instrumentación. Es posible instrumentar clases de Identity Manager y clases personalizadas.
- Gestionar las instantáneas del proyecto así:
- Guardar la instantánea en el directorio nbproject/private/idm-profiler del proyecto o en una ubicación arbitraria externa al proyecto.
Nota
Puede ver una lista de todas las instantáneas guardadas en la sección Saved Snapshots de la vista del analizador de IDM.
- Abrir instantáneas desde el proyecto o cargarlas desde una ubicación arbitraria externa.
- Borrar instantáneas.
- Buscar nodos específicos por nombre.
Búsqueda y gestión del orígenes en el analizador
En esta sección se explica cómo el analizador busca y gestiona el origen de los siguientes objetos de Identity Manager:
Objetos de formularios, reglas, flujos de trabajo y XPRESS Cuando se toma una instantánea con el analizador, el servidor evalúa todos los datos del análisis y averigua de qué orígenes dependen. A continuación, el servidor recupera todos esos orígenes del repositorio y los incluye en la instantánea. Por tanto, puede tener la certeza de que los objetos de Identity Manager mostrados en la instantánea reflejan con exactitud el punto en que se ha capturado ésta.
Este proceso aumenta el tamaño de la instantánea, pero el tamaño del origen es una fracción relativamente pequeña del tamaño total. En consecuencia, puede enviar una instantánea al servicio de asistencia al cliente de Sun sin necesidad de remitir los archivos de origen por separado.
Orígenes Java Cuando se toma una instantánea de origen Java, el cliente la descarga y luego la examina para capturar todos los orígenes Java referenciados del proyecto. Al guardar la instantánea, el cliente aplica zip a los orígenes y los anexa al final de la instantánea.
Después, cuando se visualiza la instantánea y se accede al origen Java, el cliente comprueba primero el contenido de la instantánea. Si no lo encuentra, comprueba el contenido del proyecto. Este proceso permite enviar una instantánea que contenga todos los datos del análisis tanto del código Java personalizado como del código de Identity Manager.
Nota
En una instantánea con origen Java no se debe asumir que el origen está actualizado con el servidor ni que siempre está disponible.
Advertencias sobre estadísticas
En las secciones siguientes se incluye información que conviene tener en cuenta al evaluar los resultados del analizador:
Estadísticas de tiempo propio Para calcular la estadística del tiempo propio de un nodo raíz, el analizador resta los tiempos de todos los nodos secundarios al tiempo total del nodo raíz.
Por tanto, el tiempo de un nodo secundario no instrumentado se refleja en el tiempo propio del nodo raíz. Si un nodo raíz tiene un tiempo propio considerable, conviene indagar la razón. Quizá no haya instrumentado los métodos adecuados y, por tanto, no esté usando el lugar correcto.
Por ejemplo, supongamos que el método A llama al método B.
El método A tarda un tiempo total de 10 segundos (tiempo total que incluye la llamada a B) y la llamada a B tarda un tiempo total de 10 segundos.
Si están instrumentados A y B, la pila de llamadas refleja dicha información. Observará que A tiene un tiempo propio de 0 segundos y que B tiene un tiempo propio de 10 segundos (10 segundos invertidos realmente en B). Sin embargo, si B no está instrumentado, sólo observará que la llamada a A dura 10 segundos y que el tiempo propio de A es 10 segundos. En consecuencia, tal vez asuma que el problema reside directamente en A, no en B.
En concreto, se podrían apreciar largos tiempos propios durante la compilación inicial de JSP. Si restablece los resultados recogidos y vuelve a presentar la página, el tiempo propio será muy inferior.
Llamadas de constructor Dadas las limitaciones de la estrategia de instrumentación de de Java, las llamadas iniciales a this() o super() resultan similares para la llamada de constructor, en lugar de secundarias. Consulte el ejemplo siguiente:
class A
{
public A()
{
this(0);
}
public A(int i)
{
}
}
and:
class B
{
public static void test()
{
new A();
}
}
El árbol de llamadas será así:
B.test()
-A.<init>(int)
-A.<init>()
En lugar de así:
B.test()
-A.<init>()
-A.<init>(int)
Threads de daemon No se confunda con la aparente gran cantidad de tiempo invertida en diversos threads de daemon de Identity Manager, como ReconTask.WorkerThread.run() o TaskThread.WorkerThread.run(). La mayor parte de este tiempo es inactivo, en espera de eventos. Hay que explorar estos rastros para constatar cuánto tiempo se tarda realmente al procesar un evento.
Primeros pasos
En esta sección se explica cómo iniciar el analizador y cómo utilizar las diversas funciones de su interfaz gráfica. Esta información se ha dividido como sigue:
Antes de empezar
Como el analizador acapara mucha memoria, conviene realizar una considerable ampliación de memoria tanto en el servidor como en la máquina virtual de Java (JVM) donde está Netbeans.
- Para ampliar la memoria del servidor:
- Abra la ventana de Netbeans y seleccione la ficha Runtime.
- Expanda el nodo Servers, haga clic con el botón secundario en Bundled Tomcat y seleccione Properties en el menú.
- En el cuadro de diálogo Server Manager, desactive la casilla Enable HTTP Monitor de la ficha Connection.
- Seleccione la ficha Platform, defina VM Options en -Xmx1024M y haga clic en Close.
- Para ampliar la memoria de la JVM que tiene Netbeans:
Cuando termine, puede iniciar el analizador como se indica en la siguiente sección.
Inicio del analizador
Utilice uno de estos métodos para iniciar el analizador desde la ventana de Identity Manager IDE:
- Haga clic en el icono Iniciar analizador de Identity Manager en proyecto principal.
ubicado en la barra de menús.
Nota
El icono Iniciar analizador de Identity Manager en proyecto principal está disponible si la versión principal del proyecto de Identity Manager es 7.1 Actualización 1 o posterior.
- En la barra de menús, seleccione Window > IDM Profiler.
Al iniciar el analizador, aparece el cuadro de diálogo Profiler Options, donde puede especificar las opciones de análisis que desea utilizar. Las instrucciones para definir estas opciones se encuentran en Especificación de las opciones del analizador.
Uso del analizador
En esta sección se describen las funciones de la interfaz gráfica del analizador y cómo utilizarlas. La información se ha dividido como sigue:
Especificación de las opciones del analizador
El cuadro de diálogo Profiler Options contiene las fichas:
Use las opciones de estas fichas para indicar qué objetos se analizan y qué elementos aparecen en el análisis.
Tras especificar las opciones del analizador, haga clic en OK para iniciarlo. Según la configuración del proyecto, el analizador realiza uno de estos dos procesos:
- Si utiliza un proyecto normal de Identity Manager con una instancia incrustada de Identity Manager, el analizador efectúa una compilación completa, la implementa en el servidor de aplicaciones de NetBean e inicia el analizador.
- Si utiliza un proyecto normal de Identity Manager con una instancia externa de Identity Manager o el proyecto remoto de Identity Manager, el analizador se conecta a la instancia de Identity Manager configurada para el proyecto.
Mode La ficha Mode ofrece las siguientes opciones:
- IDM Objects Only: Seleccione esta opción para analizar objetos de formulario, regla, flujo de trabajo y XPRESS. Excluye los objetos de Java del análisis.
- Java and IDM Objects: Seleccione esta opción para analizar objetos de formulario, Java, regla, flujo de trabajo y XPRESS.
Notas
- La opción Java and IDM Objects no está disponible cuando se utiliza un proyecto normal de Identity Manager con una instancia externa de Identity Manager o si se utiliza un proyecto remoto de Identity Manager.
- No es posible cambiar la opción Mode mientras se ejecuta el analizador. Para ello debe detener el analizador.
IDM Object Filters La ficha IDM Object Filters ofrece las siguientes opciones:
Java Filters Seleccione la ficha Java Filters para:
Los filtros de Java se suministran en patrones de métodos y se expresan mediante patrones que incluyen o excluyen aplicando un nombre de método canónico. Un nombre de método canónico es:
fully-qualified-class-name.method-name(parameter-type-1, parameter-type-2, ...)
He aquí algunos ejemplos:
Si es preciso, puede instrumentar otros jar modificando como interese las líneas siguientes en build.xml. Por ejemplo:
<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>
De forma predeterminada, la configuración incluye todas las clases personalizadas y la mayoría de las clases de Identity Manager. Se excluyen forzosamente diversas clases de Identity Manager, ya que su habilitación interrumpiría el analizador.
Por ejemplo, se excluyen las clases de los motores de flujo de trabajo, formularios y XPRESS, porque de lo contrario el analizador generaría una instantánea ininteligible al analizar objetos de Java e Identity Manager.
Los filtros de Java ofrecen mucha más granularidad de filtrado que los de objeto de IDM. La instrumentación de Java sobrecarga significativamente el tiempo de ejecución, lo que puede sesgar radicalmente los resultados del análisis. Como los objetos de Identity Manager se interpretan en lugar de compilarse, apenas hay sobrecarga de instrumentación. De ahí que, por ejemplo, no haya razones básicas para excluir el flujo de trabajo A e incluir el flujo de trabajo B, etc.
Nota
No es posible modificar los filtros de Java mientras se ejecuta el analizador. Antes debe detener el analizador.
Misceláneo La ficha Miscellaneous ofrece las siguientes opciones:
- Prune snapshot nodes where execution time is 0:
- Automatically Open Browser Upon Profiler Start:
- Include Java Sources in Snapshot:
- Active esta opción (valor predeterminado) para incluir orígenes Java con todos los métodos Java referenciados por los datos del análisis en la instantánea. Siempre debe aplicarse esta opción a las instantáneas del campo. El código Java personalizado es relativamente pequeño y muy valioso por su utilidad.
- Desactive esta opción si va a analizar Identity Manager y tiene disponible el origen completo de Identity Manager.
En tales circunstancias, no interesa incluir el origen de Identity Manager, ya que puede generar instantáneas gigantescas. (Para obtener más información, consulte Búsqueda y gestión del orígenes en el analizador.)
Uso de la vista del analizador de IDM
La vista del analizador de IDM contiene las áreas:
Área Current Project El área Current Project consta de un menú descendente que contiene todos los proyectos actuales. Use este menú para seleccionar el proyecto que desea analizar.
Área Controls El área Controls contiene cuatro iconos, descritos en la tabla siguiente:
Icono
Función
![]()
Iniciar analizador de Identity Manager
Inicia el analizador y abre el cuadro de diálogo Profiler Options.
![]()
Detener analizador de Identity Manager
Detiene el analizador.
![]()
Restaurar resultados recogidos
Restaura todos los resultados del análisis recogidos hasta ese momento.
![]()
Modificar análisis
Vuelve a abrir el cuadro de diálogo Profiler Options para que pueda cambiar las opciones que desee a fin de modificar los resultados del análisis actual.
Área Status El área Status le indica si está conectado al sistema principal y le ofrece información de estado conforme el analizador se inicia, se ejecuta y se detiene.
Área Profiling Results El área Profiling Results contiene dos iconos, descritos en la tabla siguiente:
Icono
Función
Iniciar analizador de Identity Manager
Inicia el analizador y abre el cuadro de diálogo Profiler Options.
![]()
Restaurar resultados recogidos
Restaura todos los resultados del análisis recogidos hasta ese momento.
Área Saved Snapshots El área Saved Snapshots contiene una lista de todas las instantáneas guardadas.
Nota
Las instrucciones para guardar instantáneas se encuentran en Guardar una instantánea.
Además, puede usar uno de los botones siguientes para administrar esas instantáneas:
- Open: Sirve para abrir las instantáneas guardadas en la ventana de vista de instantáneas.
Sugerencia
También se puede hacer doble clic en una instantánea de la lista Saved Snapshots para abrirla.
- Delete: Para eliminar una instantánea, selecciónela en la lista Saved Snapshots y después haga clic en este botón.
- Save As: Para guardar una instantánea en una ubicación externa arbitraria, selecciónela en la lista y después haga clic en este botón.
- Load: Sirve para abrir en la ventana de vista de instantáneas una instantánea situada en una ubicación arbitraria.
Uso de la vista de instantáneas
Al abrir una instantánea, los resultados aparecen en la ventana de vista de instantáneas, situada en el lado superior derecho de Identity Manager IDE.
Una instantánea ofrece varias vistas de los datos, que se describen en las secciones siguientes:
Vista de llamadas en árbol La vista de llamadas en árbol contiene una tabla de árbol con el control del tiempo de llamada y el recuento de invocaciones en todo el sistema.
Esta tabla contiene tres columnas:
Los nodos de nivel superior son uno de los siguientes:
Por ejemplo, si observa la URL idm/login.jsp, observará una entrada de nivel superior para idm/login.jsp. Los datos mostrados en la columna Time de esta entrada representan el tiempo total de esa solicitud o solicitudes. Los datos mostrados en la columna Invocations representan el número total de invocaciones a esa página. Puede estudiar mejor esos datos para averiguar qué llamadas han intervenido en su tiempo.
Nota
El árbol de llamadas también contiene nodos con tiempo propio. Los valores de tiempo propio indican cuánto tiempo se ha invertido en el nodo en sí. (Para obtener más información, consulte Estadísticas de tiempo propio.)
Vista de zonas activas La vista de zonas activas ofrece una lista lineal de nodos con los controles acumulados de tiempo de llamadas, independientemente del elemento principal.
Esta vista contiene las siguientes columnas:
Vista de retroseguimientos La vista de retroseguimientos proporciona una pila de llamadas invertida con todas las cadenas de llamada desde las que se ha llamado el nodo.
Puede usar estas estadísticas para responder a la pregunta: ¿Cuánto tiempo ahorraría si eliminase esta cadena de llamada concreta de este nodo?
Puede acceder a la vista de retroseguimientos desde cualquiera de las demás vistas de instantáneas haciendo clic con el botón secundario en un nodo (denominado nodo raíz) y seleccionando Show Back Traces en el menú emergente.
Notas
Los valores de datos de Time e Invocations tienen un significado distinto en la vista de retroseguimientos:
Vista de receptores de llamadas La vista de receptores de llamadas muestra un árbol de llamadas agregadas de un nodo (denominado nodo raíz), cualquiera que sea la cadena principal.
Estas estadísticas resultan útiles cuando hay un área problemática que se llama desde muchos lugares mediante el árbol de llamadas maestro y se desea ver el análisis global del nodo.
Puede acceder a la vista de receptores de llamadas desde cualquiera de las demás vistas de instantáneas haciendo clic con el botón secundario en un nodo (denominado nodo raíz) y seleccionando Show Callees en el menú emergente.
Nota
Los valores de datos de Time e Invocations de la vista de receptores de llamadas tienen el mismo significado que los de la vista de llamadas en árbol.
Uso de las opciones de menú emergente
Al hacer clic con el botón secundario en una vista de llamadas en árbol o de zonas activas, aparece un menú emergente con las opciones descritas en la tabla siguiente:
Opción de menú
Descripción
GoTo Source
Seleccione esta opción para ver el origen XML de un nodo que corresponda a un método Java, flujo de trabajo, formulario, regla o XPRESS. Para obtener más información sobre esta vista, consulte Búsqueda y gestión del orígenes en el analizador
Show Back Traces
Seleccione esta opción para acceder a la vista de retroseguimientos. Para obtener más información sobre esta vista, consulte Vista de retroseguimientos
Show Callees
Seleccione esta opción para acceder a la vista de receptores de llamadas. Para obtener más información sobre esta vista, consulte Vista de receptores de llamadas
Find In Hotspots
Seleccione esta opción para buscar un nodo en la vista de zonas activas. Para obtener más información sobre esta vista, consulte Vista de zonas activas
List Options > Sort >
Seleccione esta opción para ordenar por:
List Options > Change Visible Columns
Seleccione esta opción para cambiar las columnas mostradas en la lista de árbol de llamadas o zonas activas.
En el cuadro de diálogo Change Visible Columns puede especificar una o varias de las opciones siguientes:
Búsqueda en una instantánea
Use el icono de búsqueda
, situado en la parte superior de la ventana de la vista de instantáneas, para buscar nodos por su nombre en las vistas de llamadas en árbol o de zonas activas.
Otra posibilidad es hacer clic con el botón secundario en la vista de llamadas en árbol o de zonas activas y seleccionar Find in Call Tree o Find in Hotspots (respectivamente) en el menú emergente para buscar un nodo.
Guardar una instantánea
El analizador ofrece varias opciones para guardar una instantánea. Encontrará una descripción de estas opciones en la tabla siguiente:
Icono
Función
Icono Guardar instantánea en el proyecto (ubicado en la parte superior de la ventana de vista de instantáneas)
Guarda la instantánea en el directorio nbproject/private/idm-profiler del proyecto. Las instantáneas guardadas en el proyecto aparecen en la sección Saved Snapshots de la vista del analizador.
![]()
Icono Guardar instantánea externamente (ubicado en la parte superior de la ventana de vista de instantáneas)
Guarda la instantánea en una ubicación externa arbitraria.
![]()
Botón Save As (situado en el área Saved Snapshots)
Guarda la instantánea en una ubicación externa arbitraria.
Tutorial: Solución de problemas de rendimiento
Identity Manager ofrece un tutorial (profiler-tutorial.zip) que le ayuda a usar el analizador para solucionar problemas con formularios, Java, reglas, flujos de trabajo y XPRESS.
Paso 1: Creación de un proyecto de Identity Manager
Siga estos pasos para crear un proyecto de Identity Manager:
- Seleccione File > New Project.
- Cuando aparezca el asistente New Project, especifique lo siguiente y luego haga clic en Next:
- Rellene los campos siguientes del panel Name and Location y luego haga clic en Next:
- Cuando Identity Manager aparezca el panel Identity Manager 8.0 WAR File Location, introduzca la ubicación del archivo war. Normalmente, al descomprimir este archivo se crea un archivo idm.war en el mismo directorio.
- Haga clic en Next para pasar al panel Repository Setup.
Como no debe ser necesario cambiar la configuración predeterminada de este panel, basta con hacer clic en Finish. Cuando vea el mensaje BUILD SUCCESSFUL en la ventana Identity Manager IDE, puede extraer los archivos de tutorial del analizador. Consulte las instrucciones en Paso 2: Extracción del tutorial del analizador.
Paso 2: Extracción del tutorial del analizador
Descomprima profiler-tutorial.zip en el directorio raíz del proyecto. Los archivos extraídos incluyen:
<raíz proyecto>/custom/WEB-INF/config/ProfilerTutorial1.xml
<raíz proyecto>/custom/WEB-INF/config/ProfilerTutorial2.xml
<raíz proyecto>/src/org/example/ProfilerTutorialExample.java
<raíz proyecto>/ PROFILER_TUTORIAL_README.txt
Ahora ya puede iniciar el analizador.
Paso 3: Inicio del analizador
Para iniciar el analizador:
- Siga las instrucciones de Antes de empezar para ampliar la memoria del servidor y de la JVM donde está Netbeans.
- Utilice uno de estos métodos descritos en Descripción general para iniciar el analizador.
- Cuando aparezca el cuadro de diálogo Profiler Options, puede especificar las opciones de análisis.
Paso 4: Especificación de las opciones del analizador
Nota
Para obtener más información sobre todas las opciones del analizador, consulte Especificación de las opciones del analizador.
Para realizar este tutorial, especifique las siguientes opciones del analizador:
- En la ficha Mode, seleccione Java and IDM Objects para analizar objetos de formulario, Java, regla, flujo de trabajo y XPRESS.
- Seleccione la ficha Java Filters.
Siga los pasos indicados a continuación para desactivar todas las clases Java de Identity Manager excepto sus clases Java personalizadas (en este caso, org.example.ProfilerTutorialExample):
- Haga clic en OK para ejecutar el analizador.
Nota
El analizador tarda unos minutos la primera vez que se ejecuta en un proyecto o si se ha realizado hace poco una acción Limpiar un proyecto.
Cuando el analizador termine el proceso, se le pedirá que inicie la sesión.
- Introduzca la contraseña configurator, marque la casilla Recordar contraseña y haga clic en Aceptar para continuar.
- Cuando aparezca la ventana de Identity Manager, inicie la sesión.
Nota
Típicamente debe iniciar la sesión de Identity Manager como otro usuario, no de nuevo como configurator. Ya ha iniciado una sesión del analizador como configurador y sólo se admite una entrada por usuario en el grupo de sesiones de Identity Manager. Si utiliza varias entradas, se puede interrumpir el grupo de sesiones y sesgar los resultados del análisis con problemas de rendimiento más granulares.
Sin embargo, como en este sencillo ejemplo no importa el grupo de sesiones, puede iniciar la sesión como configurator/configurator.
- En Identity Manager, seleccione Tareas de servidor > Ejecutar tareas y después haga clic en ProfilerTutorialWorkflow1.
El tutorial quizá tarde un poco en responder.
- Aunque ahora podría capturar una instantánea, lo que hará será restablecer los resultados, ejecutar el analizador, volver a ejecutarlo y después tomar una instantánea.
Nota
Es mejor ejecutar el analizador un par de veces antes de tomar una instantánea, para asegurarse de que se ceben todas las cachés, se compilen todos los JSP, etc.
La ejecución repetida del analizador le permite concentrarse en los problemas de rendimiento reales. La única excepción a esta regla es cuando un problema acapara las propias cachés.
- Vuelva a la vista del analizador de IDM en Identity Manager IDE. Haga clic en el icono Restaurar resultados recogidos.
de la sección Profiling Results (o de Controls) para restablecer todos los resultados recogidos hasta ahora.
- En Identity Manager, vuelva a seleccionar Tareas de servidor > Ejecutar tareas y haga clic en ProfilerTutorialWorkflow1.
- Cuando aparezca el diagrama de procesos, vuelva al Identity Manager IDE y haga clic en el icono Capturar instantánea de la sección Profiling Results.
- El Identity Manager IDE descarga la instantánea y muestra los resultados en el lado derecho de la ventana.
Esta área es la vista de llamadas en árbol. En la parte superior de la vista de llamadas en árbol, debe aparecer un archivo /idm/task/taskLaunch.jsp con un tiempo indicado en la columna Time. Debe mostrar que la solicitud completa tardó seis+ segundos.
- Expanda el nodo /idm/task/taskLaunch.jsp, verá que ProfilerTutorialWorkflow1 tardó seis segundos.
- Expanda el nodo ProfilerTutorialWorkflow1. Observe que activity2 tardó cuatro segundos y activity1 dos.
- Expanda activity2.
Observe que action1 tardó dos segundos y action2 también dos.
- Expanda action1 y observará que <invoke> también tardó dos segundos.
- Haga doble clic en <invoke> para abrir ProfilerTutorialWorkflow1.xml y resalte la línea siguiente:
<invoke name='example' class='org.example.ProfilerTutorialExample'/>
Deberá ver que una llamada al método ProfilerTutorialExample tardó dos segundos.
Nota
Está examinando un origen XML que se capturó en la instantánea, no el origen en el proyecto. Las instantáneas son totalmente autocontenidas. (Para obtener más información, consulte Búsqueda y gestión del orígenes en el analizador.)
- Seleccione la ficha CPU:<date><time> para volver a la instantánea.
- Expanda el nodo <invoke> y observe que el analizador tardó dos segundos en el método de Java ProfilerTutorialExample.example().
- Haga doble clic en el nombre del método para abrir el origen ProfilerTutorialExample.java y resalte la línea siguiente:
- Si vuelve a la vista de llamadas en árbol, verá que todas las rutas de dos segundos conducen a este método. (Debe ver tres rutas, con un total de seis segundos.)
- Seleccione la ficha Hotspots (situada en la parte inferior del área de llamadas en árbol) para abrir la vista de zonas activas. Fíjese en que ProfilerTutorialExample.example() tiene un tiempo propio total de seis segundos.
(Para obtener más información sobre zonas activas, consulte Vista de zonas activas.)
- Haga clic con el botón secundario en ProfilerTutorialExample.example() y seleccione Show Back Traces en el menú emergente.
Aparece una nueva ficha Back Traces en la parte inferior del área.
- Expanda el nodo ProfilerTutorialExample.example() de la ficha Back Traces para comprobar que este método se ha llamado desde tres sitios y que ha tardado dos segundos desde cada sitio.
(Para obtener más información sobre Back Traces, consulte Vista de retroseguimientos.)
- Haga clic en el icono Guardar instantánea en el proyecto.
para guardar la instantánea y cerrarla.
Si observa la sección Saved Snapshots de la ficha IDM Profiler, verá la instantánea. (Quizá tenga que desplazarse hacia abajo.)
- Seleccione la instantánea guardada y después haga clic en Open para volver a abrirla.
Nota
Puede utilizar el botón Save As para guardar las instantáneas externamente, y el botón Load para cargar instantáneas desde fuera del proyecto.
- Vuelva a cerrar la instantánea.
Uso del analizador con acciones manuales de flujo de trabajo
En la siguiente parte de este tutorial se explica cómo analizar una acción manual de flujo de trabajo.
- En Identity Manager, seleccione Tareas de servidor > Ejecutar tareas y después haga clic en ProfilerTutorialWorkflow2.
Al cabo de unos instantes aparecerá un formulario vacío.
- Haga clic en Guardar y aparecerá el diagrama de procesos.
- Vuelva a seleccionar Tareas de servidor > Ejecutar tareas.
- Regrese a la vista del analizador de IDM en Identity Manager IDE y haga clic en el icono Restaurar resultados recogidos de la sección Profiling Results.
- Ahora, haga clic sobre ProfilerTutorialWorkflow2 en Identity Manager.
- Cuando aparezca de nuevo el formulario vacío, haga clic en Guardar.
- En la vista del analizador de IDM, haga clic en Capturar instantánea.
Al cabo de unos segundos debe aparecer una instantánea en el área de llamadas en árbol. Observará que /idm/task/workItemEdit.jsp tardó seis+segundos. (Este resultado corresponde a la acción manual en el flujo de trabajo.)
- Expanda el nodo /idm/task/workItemEdit.jsp, verá que se tardó un total de seis segundos en ejecutar todas las derivaciones del formulario de acción manual (ManualAction).
- Expanda los nodos Derivation, displayNameForm, variables.dummy y <block>.
Observará que <block> tardó seis segundos, de los cuales el analizador empleó dos segundos en cada una de las tres invocaciones al método ProfilerTutorialExample.example().
- Puede hacer doble clic en <block> para ver el origen.
Identity Manager IDE Preguntas frecuentes
En esta sección se responden algunas de las preguntas frecuentes sobre el uso del Identity Manager Integrated Development Environment (Identity Manager IDE). La información se ha dividido como sigue:
Utilización de NetBeans
P: ¿Qué versión de Netbeans debo utilizar?
R: Use la versión de Netbeans indicada en la documentación de producto de Identity Manager suministrada para la versión de complemento de Netbeans que está usando.
Nota
Utilice siempre exactamente la versión indicada, ya que incluso los parches pueden anular funcionalidades principales.
P: El complemento Netbeans funcionaba, hice algo y dejó de funcionar. ¿A qué puede deberse este problema?
R: Este problema suele deberse a un archivo dañado en el directorio .netbeans. Normalmente, basta con borra el directorio .netbeans y reinstalar el complemento NetBeans para solucionar el problema. (Al borrar el directorio .netbeans se desinstala el complemento NetBeans. Se pierde toda la configuración de usuario, pero el contenido del proyecto queda a salvo.)
Los pasos son:
Trabajar con proyectos
P: Se tarda mucho en compilar y ejecutar un proyecto y parece que el Identity Manager IDE copia un montón de archivos. ¿A qué puede deberse este problema?
R: Este problema puede tener varias causas:
Cuando se utiliza Clean Project o Clean And Build Project, el Identity Manager IDE borra el directorio image completo, que contiene varios miles de archivos. El Identity Manager IDE debe copiar todos esos archivos de idm-staging durante la siguiente compilación.
Para utilizar el Identity Manager IDE eficazmente, debe saber cuándo usar los comandos Clean. Para obtener más información, consulte la sección “When to Use Clean” del archivo README.txt de Identity Manager IDE.
P: Ahora que he creado un proyecto de Identity Manager, ¿qué archivos deben registrarse en control de origen?
R: Para obtener información, consulte la sección “CVS Best Practices” del archivo README.txt de Identity Manager IDE.
P: ¿Cuáles son las prácticas recomendadas para gestionar proyectos en CVS?
R:Para obtener información, consulte la sección “CVS Best Practices” del archivo README.txt de Identity Manager IDE.
P: ¿Cuándo se importan objetos al repositorio?
R: Para obtener información, consulte Uso del repositorio.
P: ¿Cómo se añade un nuevo JAR al proyecto?
R: Consulte la sección “How to add a new JAR dependency” del archivo README.txt de Identity Manager IDE.
Uso del repositorio
P: ¿Qué repositorio debo utilizar para mi zona protegida?
R: Use el repositorio incrustado para su zona protegida, sobre todo si utiliza Identity Manager 7.1 (o superior), que tiene disponible un repositorio HsSQL. Se pierde funcionalidad cuando no se utiliza el repositorio incrustado.
Para obtener más información, consulte la sección “Working with the Repository” del archivo README.txt de Identity Manager IDE.
P: ¿Cuándo se importan objetos automáticamente?
R: Hay que configurar Identity Manager IDE para importar objetos automáticamente.
Los pasos son:
- En el menú de IdM, seleccione Repositorio > Manage Embedded Repository.
- Active la opción Automatically Publish Identity Manager Objects en el cuadro de diálogo Manage Embedded Repository.
Nota
Esta opción no está disponible para Identity Manager Project (Remote) ni cuando se especifica un repositorio propio.
- Seleccione Project > Run Project o Project > Debug Project.
El Identity Manager IDE importa automáticamente todos los objetos que han cambiado desde la última vez que se ejecutó el proyecto.
P: ¿Cuál es el medio más eficaz de transferir objetos?
R:Utilice uno de estos métodos para transferir objetos modificados:
- Haga clic con el botón secundario sobre uno o más objetos editados en el árbol del proyecto y seleccione Upload Object en el menú emergente.
Sugerencia
Para transferir varios objetos, mantenga pulsada la tecla Control mientras selecciona los objetos en la lista.
- Seleccione uno o más objetos editados y después elija Repository > Upload Objects en el menú de IdM. Aparece un cuadro de diálogo donde seleccionar objetos para transferir.
Con cualquiera de estos métodos se transfieren los objetos directamente al servidor, lo que evita problemas de latencia en caché y resulta mucho más rápido que Run Project o Debug Project. La función Upload Objects está disponible con independencia del repositorio utilizado.
Uso del depurador del Identity Manager IDE
P: El depurador del Identity Manager IDE es muy lento. ¿A qué puede deberse este problema?
R: Para aumentar el rendimiento del depurador:
P: No puedo definir un punto de interrupción en el depurador. ¿A qué puede deberse este problema?
R: Las condiciones siguientes pueden impedir que se defina un punto de interrupción:
El Identity Manager IDE omite básicamente cualquier archivo que empiece con un elemento de empaquetador <Waveset>, ya que el Identity Manager IDE analiza dicho elemento como un archivo de varios objetos.
Las funciones siguientes no funcionan con archivos de varios objetos:
Básicamente, todo lo que se puede hacer con archivos de varios objetos es importarlos. Los únicos archivos que deben contener elementos de empaquetador <Waveset> son los archivos de importación de nivel superior del proyecto.
P: He definido un punto de interrupción en el depurador y no suspende en dicho punto. ¿A qué puede deberse este problema?
R: Hay que comprobar dos cosas:
Uso de reglas
P: Cuando se desarrollan reglas en Netbeans, ¿por qué no está disponible el modo de diseño para una biblioteca de reglas?
R: La funcionalidad del modo de diseño está disponible desde el árbol del explorador en la vista del proyecto. Siga estos pasos:
Ajuste, solución de problemas y mensajes de error en Identity ManagerEsta sección contiene información nueva y corregida relacionada con el documento Sun Identity Manager Tuning, Troubleshooting, and Error Messages.
- Algunas tareas se han trasladado desde el adaptador hasta el paquete de tareas. Estas rutas se tienen que actualizar cuando se habilita el seguimiento de cualquiera de las tareas siguientes o cuando existen definiciones de tareas personalizadas que hacen referencia a estos paquetes.
Nombre de paquete anterior
Nombre de paquete nuevo
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
- La información de solución de problemas para “Unable to Delete Errors” suministrada anteriormente en la sección “Troubleshooting Identity Manager IDE” ya no es aplicable y se ha eliminado de libro. El servidor de aplicaciones incrustado en Netbeans ahora se cierra automáticamente siempre que se realiza cualquiera de las siguientes operaciones de proyecto: (ID-16851)
- La sección “Debugging PasswordSync” se ha desplazado del capítulo “PasswordSync“ de Identity Manager Administration al capítulo “Tracing and Troubleshooting Identity Manager” de Identity Manager Tuning, Troubleshooting, and Error Messages. (ID-17340)
Ámbito de localizaciónHistóricamente, en Identity Manager no se localizan las funciones y los objetos de recurso, porque son principalmente ejemplos que se cargan (mediante init.xml) durante la inicialización de Identity Manager y porque los atributos de tipo de objeto pueden variar de una a otra implementación de cliente según el nivel de personalización. A continuación se indican áreas que pueden aparecer en inglés: (ID-16349)
Ayuda en líneaEsta sección contiene correcciones de documentación a la ayuda en línea.