Configuring Redirection to the Oracle Adaptive Access Manager Server Interface

6-34 Oracle Fusion Middleware Developers Guide for Oracle Adaptive Access Manager registerQuestions.do Response header Rules-Result has value block Either the application did not accept the login credentials or the Oracle Adaptive Access Manager rules evaluated to block the login. The proxy should log off the session in the application, if login was successful. Then a Login Blocked message should be sent to the browser. changePassword.do Response contains headers password, newpassword and confirmpassword Save the passwords from the response headers and post to the application loginFail.do To display error message in OAAM Server page, like to display login blocked message Redirect to this URL with appropriate action query parameter, like loginFail.do?action=block In most cases control is not given to the proxy via a response header in a block situation. Instead, the user is taken to the following URL with a query parameter action set to the error code block. This presents the user with the OAAM Server login page with a message stating the reason they are there. error.do?action=block Alternatively it is possible to get the same result with the following URLs. loginFail.do?action=block loginPage.jsp?action=block logout.do On completion of application session logout Redirect to this URL to log out the OAAM Server session logout.do On receiving response Redirect to application logout URL to log off the application session, if it is not already off resetPassword.do Response contains headers newpassword and confirmpassword Save the passwords from the response headers and post to the application getUserInput.do Response contains headers BH_ UserInput Save the user input and take appropriate action like post to application, etc. changeUserId.do On receiving request Add newUserId header changeUserId.do On receiving response Redirect to the appropriate application page or send back the saved application response updateForgotPasswordStatus.do Phase-2 only: After validating the forgot- password-credentials entered by the user. Redirect to this URL to update the status in Oracle Adaptive Access Manager and run appropriate risk rules. updateForgotPasswordStatus.do Phase-2 only: On receiving request Set BH_FP-Status header to one of the following: success, wrong_ password, invalid_user, user_ disabled, system_error. Table 6–17 Cont. OAAM Server Interface URL Condition Action Oracle Adaptive Access Manager Proxy 6-35

6.7 Application Discovery

Two flags in the settings are used for application discovery. One flag instructs the proxy to ignore its configuration XML and act as a reverse-proxy only. The other flag instructs the proxy to capture all the HTTP traffic and print it to the logs. The first flag is used for application discovery to capture the HTTP traffic and analyze it. The second flag would be kept on during the configuration XML development phase to debug the configuration XML itself. Application discovery is the process of studying an existing Web application to author the proxy configuration to add multifactor authentication using the UIO Proxy. A few logins attempts to the application would be made via the proxy to capture the HTTP traffic in each attempt. The captured HTTP traffic would then be analyzed to author the proxy configuration. The UIO Proxy should be set up to dump all the HTTP traffic to a file. Then a few loginslogin attempts to the application should be made via the proxy. The captured HTTP traffic should then be analyzed to author the proxy configuration.

6.7.1 Application Information

For the application discovery process it is preferable to work with the Web application in the customers test environment, rather than the production application being used by users. If the test environment is not available, the live application can be used. The following information is needed from the client for the application discovery process: 1. URL to log in to the application. 2. Test user account credentials, including the data required in the forgot password scenario. It will be best to get as many test accounts as possible, preferably at least five accounts, for uninterrupted discovery and testing. Note that during the discovery process some accounts could become disabled, due to multiple invalid login attempts. updateForgotPasswordStatus.do challengeForgotPasswordUser.do Response header BH_FP-Rules-Result has value allow The Oracle Adaptive Access Manager rules evaluated to permit the forgot-password flow. The proxy can permit continuation to the forgot-password flow to reset the password or allow the user login, depending on the application. updateForgotPasswordStatus.do challengeForgotPasswordUser.do Response header BH_FP-Rules-Result has value block Either the application did not accept the forgot-password credentials or the Oracle Adaptive Access Manager rules evaluated to block the forgot-password flow. A login blocked message should be sent to the browser. Any request to OAAM Server page If the proxy needs to get a property value from OAAM Server. On receiving request BH_PropKeys request header should be set to list of property names separated by a comma. OAAM Server will return the values in multiple response headers, one for each property. The return response header names will be of format: BH_ Property-name Table 6–17 Cont. OAAM Server Interface URL Condition Action 6-36 Oracle Fusion Middleware Developers Guide for Oracle Adaptive Access Manager 3. Contact phone, email to enablereset test accounts

6.7.2 Setting Up the UIO ISA Proxy

The Microsoft ISA server should be set up to publish the Web application under discovery, for example, creating a Web site publishing rule with appropriate parameters. During the application discovery process, the application will be accessed via Microsoft ISA, which hosts the UIO ISA Proxy. Refer to the Microsoft ISA configuration document for details of setting up Microsoft ISA. The UIO ISA Proxy settings registry values under HKLM\SOFTWARE\Bharosa\Proxy key should be set as given in Table 6–18 for the proxy to capture the HTTP traffic to the specified file. This HTTP traffic captured will later be used for analysis to author the proxy configuration. It might be useful to capture the HTTP traffic for each scenario for example, successful login attempt, wrong password, wrong user name, disabled user, and other scenarios in separate files. TraceFilename setting should be updated to the desired filename before the start of the scenario. After application discovery is performed, the proxy settings should be set as given in Table 6–19 to restore the default UIO ISA Proxy behavior.

6.7.3 Setting Up the UIO Apache Proxy

For application discovery, the HTTP traffic needs to be captured through the proxy. Table 6–20 shows the settings in UIO_Settings.xml to enable this mode of operation. Table 6–18 Setting up the proxy Setting Value IgnoreUrlMappings 1 CaptureTraffic 1 TraceFilename filename TraceLevel 0x87 TraceToFile 1 Table 6–19 Proxy settings after application discovery Setting Value IgnoreUrlMappings CaptureTraffic TraceFilename filename TraceLevel 0x7 TraceToFile 1 Table 6–20 Settings for Capturing HTTP Settings Value IgnoreUrlMappings 1 CaptureTraffic 1 Oracle Adaptive Access Manager Proxy 6-37 The IgnoreUrlMappings setting is used to disable URL interception of the HTTP traffic through the proxy. The CaptureTraffic setting captures the HTTP traffic through the logger name HTTP set to log level of info. It might be useful to capture the HTTP traffic for each scenario like successful login attempt, wrong password, wrong user name, disabled user, and so on in separate files. The log file name setting should be updated to the desired filename before the start of the scenario. After application discovery is performed, the proxy settings should be set, as shown in Table 6–21 , to restore the default UIO Apache Proxy behavior.

6.7.4 Scenarios

Collect information for the following scenarios during the discovery process. You must create interceptors in the TestConfig.xml file that look for certain URLs and conditions in the HTTP traffic. The proxy listens to the HTTP traffic and when it sees a URL that matches a URL in its TestConfig.xml file, it evaluates the interceptors that have a URL match and it evaluates the conditions block in the interceptor. If they match, the UIO Proxy executes the filter block and condition block. Login 1. URL that starts the login process 2. URL that contains the login form 3. Names of the input fields like user name, password used to submit the credentials 4. URL to which the login form submits the credentials 5. Identifying successful login. The HTTP traffic dump needs to be studied carefully to derive this information. Here are few ways applications respond on successful login: a. by setting a specific cookie in the credential submit response b. by redirecting to a specific URL like account summary, Welcome page, and so on c. by responding with specific text 6. Identifying failure login with the reason for failure. This would often be derived by looking for certain text in the response to credential submit request. Logout 1. URL that starts the logout process 2. URL that completes the logout process. In most cases the logout completes on receiving the response to the logout start URL. Change password 1. URL that starts the change password process Table 6–21 Settings to restore default proxy behavior Settings Value IgnoreUrlMappings CaptureTraffic