SecureLogin Wizard does not recognize change password fields in IDM UserAPP

  • 7011609
  • 10-Jan-2013
  • 10-Jan-2013

Environment

NetIQ SecureLogin
NSL7.0.3
NetIQ IDM 4.x
Identity Manager Roles Based Provisioning Module Version 4.0
 

Situation

SecureLogin Wizard does not detect fields on the "Change Password" screen in NetIQ IDM UserApp.
NSL7 wizard sees the change password page as one field in RBPM UserApp
NSL7 wizard cannot differentiate between fields on UserApp change password screen.
"The selected control field is invalid" returned when pointing at password fields with the Wizard.
The NSL7 Wizard detect and acts upon the UserAPP login page, but not the change password page.
Navigating to "old password" field with keystrokes takes 25 tabs with IE, 17 tabs with FireFox.
Script configured through the Wizard using keystrokes does not execute

Resolution

Manally create a new application definition for the Change password page.  Steps:
 
1. Using either the workstation "manage logins" utility, or the directory utility (iManager, MMC, or SLManager), right click on "Applications" and select "New."

2. Click the button for "New Application Definition,"

3. From the drop down box for "Type," select "Web Wizard Script." 
NOTE: If you select the wrong type the script will not work.

4. Enter the URL for UserApp, a description of your choice and click OK.

5. Go to the definition tab and copy in the script below.

6. Click OK.

##########################################################
###  Script for IDM UserApp Login and Password Change Screens       ###
##########################################################

#=============================================================
# EXE/ID:  (URL for Password change page)
# Name:   UserApp Password Change
# Type:   Web (Type Web Wizard, but manually created)
# Version:  1
# Created By: dsailesh
#=============================================================
## BeginSection: "Login Form"
Site "jquery" -initial
MatchForm #1 -name "loginForm"
MatchField #1:3 -type "text" -name "userName"
MatchField #1:4 -type "password" -name "password"
MatchField #1:5 -type "submit" -name "login"
EndSite
SetPrompt "Username:"                                                                              "
FocusInput #1:3
TextInput #1:3 -value "$username"
SetPrompt "Password:"
FocusInput #1:4
TextInput #1:4 -value "$password"
SetPrompt "Please edit your login variables."
FocusInput #1:5
PressInput #1:5
EndScript
## EndSection: "Login Form"

## BeginSection: "Login Form"
Site "jquery" -recent 5000
MatchForm #1 -name "loginForm"
MatchField #1:3 -type "text" -name "userName"
MatchField #1:4 -type "password" -name "password"
MatchField #1:5 -type "submit" -name "login"
EndSite
if -exists $username
 Displayvariables  $username $password
Endif
SetPrompt " Username:"
FocusInput #1:3
TextInput #1:3 -value "$username"
SetPrompt "Password:"
FocusInput #1:4
TextInput #1:4 -value "$password"
SetPrompt "Please edit your login variables."
FocusInput #1:5
PressInput #1:5
EndScript
## EndSection: "Login Form"

## BeginSection: "Login Form"
Site "jquery" -subsequent
MatchForm #1 -name "loginForm"
MatchField #1:3 -type "text" -name "userName"
MatchField #1:4 -type "password" -name "password"
MatchField #1:5 -type "submit" -name "login"
EndSite
MessageBox "Do you wish to re-login?" -YesNo ?Result -DefaultNo
If ?Result Eq "No"
 EndScript
EndIf
SetPrompt "Username:"
FocusInput #1:3
TextInput #1:3 -value "$username"
SetPrompt "Password:" 
FocusInput #1:4
TextInput #1:4 -value "$password"
SetPrompt "Please edit your login variables."
FocusInput #1:5
PressInput #1:5
EndScript
## EndSection: "Login Form"
## BeginSection: "Login Form Subroutines"
## EndSection: "Login Form Subroutines"
## BeginSection: "Change Password Form"
Site "Change Password" -initial -events create
MatchForm #1 -noform
MatchField #1:1 -type "password"
MatchField #1:2 -type "password"
MatchField #1:3 -type "password"
EndSite

ReLoadPlat
ChangePassword ?passwordnew "Enter"
#MessageBox "Initial"
SetPrompt "Password:"
FocusInput #1:1
TextInput #1:1 -value "$password"
SetPrompt "passwordnew"
FocusInput #1:2
TextInput #1:2 -value "?passwordnew"
SetPrompt "passwordnew"
FocusInput #1:3
TextInput #1:3 -value "?passwordnew"
SetPrompt "Please edit your login variables."
#MessageBox "Initial"
Type -raw \t
Type -raw \n  
Set ?LastChangePassTime ?CurrTime(system)
MessageBox "Has the password been successfully changed?" -YesNo ?ChangeResult
If ?ChangeResult Eq "Yes"
 Set $password ?passwordnew
EndIf
EndScript
## EndSection: "Change Password Form"

## BeginSection: "Change Password Form"
Site "Change Password" -recent 5000 -events create
MatchForm #1 -noform
MatchField #1:1 -type "password"
MatchField #1:2 -type "password"
MatchField #1:3 -type "password"
EndSite

ReLoadPlat
MessageBox "Do you wish to re-try the change password?" -YesNo ?Result -DefaultNo
If ?Result Eq "No"
 EndScript
EndIf
#MessageBox "Recent"
ChangePassword ?passwordnew "Enter"
SetPrompt "Password:"
FocusInput #1:1
TextInput #1:1 -value "$password"
SetPrompt "passwordnew"
FocusInput #1:2
TextInput #1:2 -value "?passwordnew"
SetPrompt "passwordnew"
FocusInput #1:3
TextInput #1:3 -value "?passwordnew"
SetPrompt "Please edit your login variables."
Type -raw \t
Type -raw \n
Set ?LastChangePassTime ?CurrTime(system)
MessageBox "Has the password been successfully changed?" -YesNo ?ChangeResult
If ?ChangeResult Eq "Yes"
 Set $password ?passwordnew
EndIf
EndScript
## EndSection: "Change Password Form"

## BeginSection: "Change Password Form"
Site "Change Password" -subsequent -events create
MatchForm #1 -noform
MatchField #1:1 -type "password"
MatchField #1:2 -type "password"
MatchField #1:3 -type "password"
EndSite
ReLoadPlat
ChangePassword ?passwordnew "Enter"
#MessageBox "Subsequent"
SetPrompt "Password:"
FocusInput #1:1
TextInput #1:1 -value "$password"
SetPrompt "passwordnew"
FocusInput #1:2
TextInput #1:2 -value "?passwordnew"
SetPrompt "passwordnew"
FocusInput #1:3
TextInput #1:3 -value "?passwordnew"
SetPrompt "Please edit your login variables."
Type -raw \t
Type -raw \n
Set ?LastChangePassTime ?CurrTime(system)
MessageBox "Has the password been successfully changed?" -YesNo ?ChangeResult
If ?ChangeResult Eq "Yes"
 Set $password ?passwordnew
EndIf
EndScript
## EndSection: "Change Password Form"
## BeginSection: "Change Password Form Subroutines"
## EndSection: "Change Password Form Subroutines"