Overriding Struts Definitions Terminology

Customizing User Flow 9-5

9.6 Struts Configuration File

The Struts framework drives the navigation between the user interface pages.

9.6.1 Action Path

The action definition includes the path, which defines what the URL will be. The login page example is shown. action path=login type=com.bharosa.uio.actions.LoginAction forward name=success path=updateLoginStatus.do redirect=true forward name=loginJump path=loginJumpPage.jsp redirect=true forward name=password path=password forward name=challenge path=challengeUser.do redirect=true action

9.6.2 Action Type

In login page example, the URL is http:server nameoaam_ serverlogin.do. The login.do comes from the path definition of login. The type parameter defines the class that performs the action.The following classes are provided with the sample user pages. Table 9–1 Action Type Classes Class Name Description com.bharosa.uio.actions.LoginAction com.bharosa.uio.actions.LoginFailAction Displays error message in OAAM Server page. For example, the page could display a login blocked message. com.bharosa.uio.actions.ActivityAction com.bharosa.uio.actions.PasswordAction com.bharosa.uio.actions.UpdateAuthStatusAction Updates the user authentication status and, if appropriate, it triggers pattern data processing. com.bharosa.uio.actions.ValidateTrxAction com.bharosa.uio.actions.FlashFingerprintAction com.bharosa.uio.actions.LogoutAction Logs out the user session and redirects to login page com.bharosa.uio.actions.SignOnAction com.bharosa.uio.actions.RegisterQuestionsAction Displays sets of questions which the user can choose and register the correct answer for each. com.bharosa.uio.actions.ChangePasswordAction com.bharosa.uio.actions.ForgotPasswordAction com.bharosa.uio.actions.UserInputAction com.bharosa.uio.actions.UserPreferencesDoneAction com.bharosa.uio.actions.ChallengeUserAction Challenges the user by displaying a question-pad with one of the questions already registered by the user com.bharosa.uio.actions.ChangeUserNameAction 9-6 Oracle Fusion Middleware Developers Guide for Oracle Adaptive Access Manager

9.6.3 Struts Configuration File

This section shows a struts-config.xml file. struts-config -- ========== Global Forward Definitions ============================== -- global-forwards forward name=session_expired path=error.do?action=session_expired redirect=true forward name=emptyLoginId path=error.do?action=empty redirect=true forward name=fail path=error.do?action=fail redirect=true forward name=invalid_user path=error.do?action=invalid_user redirect=true forward name=error path=error.do?action=error redirect=true forward name=block path=error.do?action=block redirect=true forward name=challenge_block path=error.do?action=block redirect=true forward name=cookieDisabled path=error.do?action=cookieDisabled redirect=true forward name=accessDenied path=error.do?action=accessDenied redirect=true forward name=invalid_request path=error.do?action=accessDenied redirect=true forward name=user_disabled path=error.do?action=disabled redirect=true forward name=wrong_answer path=error.do?action=wrong_answer redirect=true forward name=login path=error.do redirect=true global-forwards -- ========== Action Mapping Definitions ============================== -- action-mappings -- action mappings for login -- action path=login type=com.bharosa.uio.actions.LoginAction forward name=success path=updateLoginStatus.do redirect=true forward name=loginJump path=loginJumpPage.jsp redirect=true forward name=password path=password forward name=passwordFT path=password forward name=challenge path=challengeUser.do redirect=true action action path=loginFail type=com.bharosa.uio.actions.LoginFailAction forward name=success path=loginFail action action path=activity type=com.bharosa.uio.actions.ActivityAction forward name=success path=loginSuccess redirect=true action com.bharosa.uio.actions.MessageAction com.bharosa.uio.actions.ExitAction com.bharosa.uio.actions.ErrorAction Table 9–1 Cont. Action Type Classes Class Name Description Customizing User Flow 9-7 -- validate password -- action path=password type=com.bharosa.uio.actions.PasswordAction forward name=success path=exit.do forward name=invalid_user path=updateLoginStatus.do forward name=noproxy path=updateLoginStatus.do forward name=resetPassword path=expiredPassword.do redirect=true action action path=updateLoginStatus type=com.bharosa.uio.actions.UpdateAuthStatusAction forward name=success path=exit.do forward name=challenge path=challengeUser.do redirect=true forward name=registerUser path=registerQuestions.do redirect=true forward name=registerAuthenticator path=registerImage.do redirect=true forward name=registerQuestions path=registerQuestions.do redirect=true forward name=registerQuestionsHTML path=registerQuestions.do redirect=true forward name=registerUserInfo path=registerUserInfo.do redirect=true forward name=signon path=signon redirect=true action action path=updateForgotPasswordStatus type=com.bharosa.uio.actions.UpdateAuthStatusAction parameter=ForgotPassword forward name=success path=resetPassword.do redirect=true forward name=challenge path=challengeUserForgotPassword.do redirect=true forward name=registerUser path=registerQuestions.do redirect=true forward name=registerQuestions path=registerQuestions.do redirect=true forward name=registerQuestionsHTML path=registerQuestions.do redirect=true forward name=registerUserInfo path=registerUserInfo.do redirect=true forward name=signon path=signon redirect=true action action path=validateTrx type=com.bharosa.uio.actions.ValidateTrxAction forward name=success path=exit.do forward name=challenge path=challengeUserTrx.do redirect=true action action path=flashFingerprint type=com.bharosa.uio.actions.FlashFingerprintAction forward name=success path=flashFingerprint.jsp action -- action mappings for logout -- action path=logout type=com.bharosa.uio.actions.LogoutAction forward name=success path=loginPage.jsp action -- action mappings for signon -- 9-8 Oracle Fusion Middleware Developers Guide for Oracle Adaptive Access Manager action path=signon type=com.bharosa.uio.actions.SignOnAction forward name=securityProfile path=securityProfile.jsp redirect=true forward name=securityDone path=activity.do redirect=true action -- action mappings for security QA -- action path=registerQuestions type=com.bharosa.uio.actions.RegisterQuestionsAction forward name=qaExists path=qaExists redirect=true forward name=registerAuthenticator path=registerAuthenticator forward name=registerQuestions path=registerQuestions forward name=registerQuestionsHTML path=registerQuestionsHTML forward name=registerInfo path=registerInfo forward name=registerUserInfo path=registerUserInfo forward name=skip path=exit.do forward name=success path=exit.do action action path=registerImage type=com.bharosa.uio.actions.RegisterQuestionsAction parameter=RegisterImage forward name=registerAuthenticator path=registerAuthenticator forward name=success path=exit.do action action path=registerUserInfo type=com.bharosa.uio.actions.RegisterQuestionsAction parameter=RegisterUserInfo forward name=registerUserInfo path=registerUserInfo forward name=success path=exit.do action action path=userPreferences type=com.bharosa.uio.actions.RegisterQuestionsAction parameter=UserPreferences forward name=registerAuthenticator path=userPreferences forward name=registerInfo path=userPreferences forward name=registerQuestions path=registerQuestions forward name=registerQuestionsHTML path=registerQuestionsHTML forward name=registerUserInfo path=registerUserInfo forward name=changePassword path=changePassword.do forward name=success path=userPreferences forward name=registrationRequired path=registrationRequired forward name=exit path=exit.do action action path=changePassword type=com.bharosa.uio.actions.ChangePasswordAction forward name=changePassword path=changePassword forward name=success path=userPreferences.do redirect=true forward name=exit path=exit.do action action path=resetPassword type=com.bharosa.uio.actions.ChangePasswordAction parameter=ResetPassword forward name=changePassword path=changePassword forward name=success path=exit.do forward name=updateStatus path=updateLoginStatus.do redirect=true action Customizing User Flow 9-9 action path=expiredPassword type=com.bharosa.uio.actions.ChangePasswordAction parameter=ExpiredPassword forward name=changePassword path=changePassword forward name=success path=exit.do forward name=updateStatus path=updateLoginStatus.do redirect=true action action path=forgotPassword type=com.bharosa.uio.actions.ForgotPasswordAction forward name=forgotPassword path=forgotPassword forward name=challenge path=challengeUserForgotPassword.do forward name=success path=exit.do forward name=noproxy path=updateForgotPasswordStatus.do action action path=getUserInput type=com.bharosa.uio.actions.UserInputAction forward name=showAuthenticator path=userInput forward name=success path=exit.do action action path=userPreferencesDone type=com.bharosa.uio.actions.UserPreferencesDoneAction forward name=success path=exit.do forward name=exit path=exit.do action -- action mappings for challenge user -- action path=challengeUser type=com.bharosa.uio.actions.ChallengeUserAction forward name=success path=exit.do forward name=challenge path=challengeUser forward name=registerUser path=registerQuestions.do redirect=true forward name=registerAuthenticator path=registerImage.do redirect=true forward name=registerQuestions path=registerQuestions.do redirect=true forward name=registerQuestionsHTML path=registerQuestions.do redirect=true forward name=registerUserInfo path=registerUserInfo.do redirect=true forward name=wait path=challengeWait action action path=challengeUserTrx type=com.bharosa.uio.actions.ChallengeUserAction parameter=transaction forward name=success path=exit.do forward name=challenge path=challengeUser forward name=registerUser path=registerQuestions.do redirect=true forward name=registerAuthenticator path=registerImage.do redirect=true forward name=registerQuestions path=registerQuestions.do redirect=true forward name=registerQuestionsHTML path=registerQuestions.do redirect=true forward name=registerUserInfo path=registerUserInfo.do redirect=true forward name=wait path=challengeWait action 9-10 Oracle Fusion Middleware Developers Guide for Oracle Adaptive Access Manager action path=challengeUserForgotPassword type=com.bharosa.uio.actions.ChallengeUserAction parameter=ForgotPassword forward name=success path=resetPassword.do redirect=true forward name=forgotPassword path=forgotPassword forward name=challenge path=challengeUserForgotPassword forward name=wait path=challengeWait action action path=changeUserId type=com.bharosa.uio.actions.ChangeUserNameAction forward name=success path=exit.do action -- action mappings for message -- action path=message type=com.bharosa.uio.actions.MessageAction forward name=success path=message action action path=exit type=com.bharosa.uio.actions.ExitAction forward name=success path=empty.jsp action action path=error type=com.bharosa.uio.actions.ErrorAction forward name=login path=loginPage.jsp redirect=true action action-mappings --The Tiles Request Processor for processing all the Tile requests-- controller processorClass=org.apache.struts.tiles.TilesRequestProcessor -- message resources -- message-resources parameter=proxyweb null=false -- tiles plug-in -- plug-in className=org.apache.struts.tiles.TilesPlugin set-property property=definitions-config value=WEB-INFtiles-def.xml,WEB-INFtiles-def-extension.xml set-property property=definitions-debug value=0 set-property property=definitions-parser-details value=0 set-property property=definitions-parser-validate value=true set-property property=moduleAware value=true plug-in struts-config 10 Using Virtual Authentication Devices 10-1 10 Using Virtual Authentication Devices Oracle Adaptive Access Manager includes unique functionality to protect end users while interacting with a protected web application. The virtual authentication devices are used to protect users during the process of entering and transmitting authentication credentials and provide them with verification they are authenticating on the valid application. Each virtual authentication device VAD has its own unique set of security features that make it much more than a mere image on a web page. This chapter contains the following sections: ■ Terminology ■ Virtual Authentication Devices and Set of Background Images ■ Virtual Authentication Types ■ Authenticator Composition ■ Virtual Authentication Device Properties ■ Displaying Virtual Authentication Devices ■ Enabling Accessible Versions of Authenticators ■ Localizing Virtual Authentication Device in OAAM 11g

10.1 Terminology

This section defines terms used in this chapter. Table 10–1 VAD Terminology Term Description Authenticator Authentipad A control for user input included in OAAM that provides a keyboard and enables personalization. Personalization Assigning an image and generated phrase during registration. The phrase and image provide end users with verification they are authenticating on the valid application. Virtual KeypadKeyboard A method for user input where the user clicks screen keys instead of an external keyboard. Jitter The act of moving key location slightly on each time the authenticator is generated. Offset The act of moving a whole key set on screen. Key Randomization The act of randomizing the key order. Timestamp A string generated from the current system time or client side time. Masking Replacing characters in an HTML input field. 10-2 Oracle Fusion Middleware Developers Guide for Oracle Adaptive Access Manager

10.2 Virtual Authentication Devices and Set of Background Images

Virtual authentication devices are provided with Oracle Adaptive Access Manager as samples to use if you choose to. These samples are provided in English only. Source art and information in this chapter are provided to allow you to develop your own custom virtual authentication device frames, keys, personalization images and phrases. Alteration of these samples is considered custom development.

10.3 Virtual Authentication Types

The following authentication devices are described in this section: ■ TextPad ■ PinPad ■ QuestionPad ■ Keypad

10.3.1 TextPad

TextPad is a personalized device for entering a password or PIN using a regular keyboard. This method of data entry helps to defend against phishing primarily. TextPad is often deployed as the default for all users in a large deployment. Then, each user individually can upgrade to another device if he wishes. The personal image and phrase a user registers and sees every time he logs in to the valid site serves as a shared secret between the user and server. If this shared secret is not presented or presented incorrectly, the users will notice. An example TextPad is shown in Figure 10–1 . Figure 10–1 TextPad Using Virtual Authentication Devices 10-3

10.3.2 PinPad

PinPad is a lightweight authentication device for entering a numeric PIN. An example PinPad is shown in Figure 10–2 . Figure 10–2 PinPad

10.3.3 QuestionPad

QuestionPad is a personalized device for entering answers to challenge questions using a regular keyboard. The QuestionPad is capable of incorporating the challenge question into the Question image. Like other Adaptive Strong Authentication devices, QuestionPad also helps in solving the phishing problem. An example QuestionPad is shown in Figure 10–3 . 10-4 Oracle Fusion Middleware Developers Guide for Oracle Adaptive Access Manager Figure 10–3 QuestionPad

10.3.4 Keypad

KeyPad is a personalized graphics keyboard, which can be used to enter alphanumeric and special character that can be enter using a traditional keyboard. KeyPad is ideal for entering passwords and other sensitive data. For example, credit card numbers can be entered. An example KeyPad is shown in Figure 10–4 . Figure 10–4 KeyPad Using Virtual Authentication Devices 10-5

10.4 Authenticator Composition

An authenticator is comprised of a number of elements. These elements are combined at runtime to produce the Authenticator for display on the client side.

10.5 Virtual Authentication Device Properties

Details on the virtual authentication device properties are provided in this chapter for your reference.

10.5.1 Property Files Used in the Authenticators Configuration

Virtual authentication devices uses the following files: ■ bharosa_server.properties - file where custom properties would be added for virtual authentication devices, KeySet definitions used in the KeyPad and PinPad devices, and configuration properties that are not localized translated. ■ client_resource_locale.properties - files to be created by the administrator customizing the application to contain locale-specific properties such as translated displayed messages. The locale identifier consists of at least a language identifier, and a region identifier if required. For example, the custom properties file for US English is client_resource_en_US.properties.

10.5.2 TextPad Authenticator Properties

Table 10–3 lists the TextPad Authenticator Properties Table 10–2 Elements of an authenticator Element Description Personalized Image An image selected by the user during registration. This is stored in the user repository in OAAM. Authenticator Frame An image that forms the frame of the authenticator. It contains graphics to represent user controls. Timestamp, Phrase and Keyset Image elements that are generated to build the personalization of the authenticator. HTML Controls A set of JavaScript controlled HTML elements for data entry and submission of data. Note: Many of the properties related to the virtual authentication devices are in resource bundles so that they are capable of being localized. If the default value is in a resource file, then the override value should be placed in the client override file for resource bundle values client_resource.properties.