Sunday, October 07, 2012

External WebTier for iRecruitment with Reverse Proxy Alone in DMZ

A complex terminology to listen or read the topic.But practically, this is the best and practical approach for hosting the iRecruitment Portal on internet using the external web tier.

a) iRecruitment Module is fully configured and it is working with the internal Tier

b) All the required patches are successfully applied.

c) Hostname of the server is successfully registered over intetrnet

d) Company has got pre-configured Firewall and Reverse Proxy Setup to handle the External Tier.

This example covers the topology of having a separate Webtier and the Reverse Proxy alone in the DMZ.

i) Run the adpreclone.pl on Appstier and copy the Apps Tier into the External WebTier.

                             Internal AppsTier - internal.xxxx.com

                              External AppsTier - external.xxxx.com

ii) Run the Adcfgclone.pl AppsTier and configure the AppsTier.

Target System Hostname (virtual or normal) [mscorisup1] :external

Target System Database SID :PROD

Target System Database Server Node [mscorisup1] :internal

Target System Base Directory : /d03/erp/appl/PROD

Target System Tools ORACLE_HOME Directory [/d03/erp/appl/PROD/apps/tech_st/10.1.2] :

Target System Web ORACLE_HOME Directory [/d03/erp/appl/PROD/apps/tech_st/10.1.3] :

Target System APPL_TOP Directory [/d03/erp/appl/PROD/apps/apps_st/appl] :

Target System COMMON_TOP Directory [/d03/erp/appl/PROD/apps/apps_st/comn] :

Target System Instance Home Directory [/d03/erp/appl/PROD/inst] :

Target System Root Service [enabled] :

Target System Web Entry Point Services [enabled] :

Target System Web Application Services [enabled] :

Target System Batch Processing Services [enabled] :

Target System Other Services [enabled] :

Do you want to preserve the Display [external:0.0] (y/n) ? : n

Target System Display [external:0.0] : external:7

Do you want the the target system to have the same port values as the source system (y/n) [y] ? : n

Target System Port Pool [0-99] : 7

Checking the port pool 7

done: Port Pool 7 is free

UTL_FILE_DIR on database tier consists of the following directories.

    /usr/tmp

Choose a value which will be set as APPLPTMP value on the target node [1] : 1

Creating the new APPL_TOP Context file from :

The new APPL_TOP context file has been created :

/d03/erp/appl/PROD/inst/apps/PROD_external/appl/admin/PROD_external.xml                     



iii) Stop all the services, and make the changes in the context file to configure the external tier to run only the Web Services.:

            <oa_service_status oa_var="s_concstatus">disabled</oa_service_status>

<oa_system_config>

         <TIER_DB oa_var="s_isDB">NO</TIER_DB>

         <TIER_ADMIN oa_var="s_isAdmin">NO</TIER_ADMIN>

         <TIER_WEB oa_var="s_isWeb">YES</TIER_WEB>

         <TIER_FORMS oa_var="s_isForms">NO</TIER_FORMS>

         <TIER_NODE oa_var="s_isConc">NO</TIER_NODE>

         <TIER_FORMSDEV oa_var="s_isFormsDev">NO</TIER_FORMSDEV>

         <TIER_NODEDEV oa_var="s_isConcDev">NO</TIER_NODEDEV>

         <TIER_ADADMIN oa_var="s_isAdAdmin">NO</TIER_ADADMIN>

         <TIER_ADNODE oa_var="s_isAdConc">NO</TIER_ADNODE>

         <TIER_ADNODEDEV oa_var="s_isAdConcDev">NO</TIER_ADNODEDEV>



iv)Update the Hierarchy Type for the following profile options to Responsibility+Server:

      User Profile Name
   

Internal Name

1. Applications Web Agent
   

APPS_WEB_AGENT

2. Applications Servlet Agent
   

APPS_SERVLET_AGENT

3. Applications JSP Agent
   

APPS_JSP_AGENT

4. Applications Framework Agent
   

APPS_FRAMEWORK_AGENT

5. ICX:Forms Launcher
   

ICX_FORMS_LAUNCHER

6. ICX: Oracle Discoverer Launcher
   

ICX_DISCOVERER_LAUNCHER

7. ICX: Oracle Discoverer Viewer Launcher
   

ICX_DISCOVERER_VIEWER_LAUNCHER

8. Applications Help Web Agent
   

HELP_WEB_AGENT

9. Applications Portal
   

APPS_PORTAL

10. BOM:Configurator URL of UI Manager
   

CZ_UIMGR_URL

11. QP: Pricing Engine URL
   

QP_PRICING_ENGINE_URL

This can be updated using the script :

sqlplus apps/<apps_pwd> @$FND_TOP/patch/115/sql/txkChangeProfH.sql SERVRESP

Copyright (c) 1982, 2005, Oracle.  All rights reserved

Connected to:

Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - 64bit Production

With the Partitioning, OLAP and Data Mining options

Changing the hierarchy type for the  Profile APPS_WEB_AGENT

Profile APPS_WEB_AGENT hierarchy type has been

successfully changed to SERVRESP

Changing the hierarchy type for the  Profile APPS_SERVLET_AGENT

Profile APPS_SERVLET_AGENT hierarchy type has been

successfully changed to SERVRESP

Changing the hierarchy type for the  Profile APPS_JSP_AGENT

Profile APPS_JSP_AGENT hierarchy type has been

successfully changed to SERVRESP

Changing the hierarchy type for the  Profile APPS_FRAMEWORK_AGENT

Profile APPS_FRAMEWORK_AGENT hierarchy type has been

successfully changed to SERVRESP

Changing the hierarchy type for the  Profile ICX_FORMS_LAUNCHER

Profile ICX_FORMS_LAUNCHER hierarchy type has been

successfully changed to SERVRESP

Changing the hierarchy type for the  Profile ICX_DISCOVERER_LAUNCHER

Profile ICX_DISCOVERER_LAUNCHER hierarchy type has been

successfully changed to SERVRESP

Changing the hierarchy type for the  Profile ICX_DISCOVERER_VIEWER_LAUNCHER

Profile ICX_DISCOVERER_VIEWER_LAUNCHER hierarchy type has been

successfully changed to SERVRESP

Changing the hierarchy type for the  Profile HELP_WEB_AGENT

Profile HELP_WEB_AGENT hierarchy type has been

successfully changed to SERVRESP

Changing the hierarchy type for the  Profile APPS_PORTAL

Profile APPS_PORTAL hierarchy type has been

successfully changed to SERVRESP

Changing the hierarchy type for the  Profile CZ_UIMGR_URL

Profile CZ_UIMGR_URL hierarchy type has been

successfully changed to SERVRESP

Changing the hierarchy type for the  Profile QP_PRICING_ENGINE_URL

Profile QP_PRICING_ENGINE_URL hierarchy type has been

successfully changed to SERVRESP

Changing the hierarchy type for the  Profile TCF:HOST

Profile TCF:HOST hierarchy type has been

successfully changed to SERVRESP

v)Update the node trust level:

-          Login to Oracle E-Business Suite as sysadmin user using the internal URL

-          Select the System Administrator Responsibility

-          Select Profile / System

-          From the 'Find system profile option Values' window, select the server that you want to designate as the external web tier – find and select server erpapps4

-          Query for %NODE%TRUST%. You will see a profile option named 'Node Trust Level'. The value for this profile option at the site level will be Normal. Leave this setting unchanged.

-          Set the value of this profile option to External at the server level. The site level value should remain set to Normal

-          Save.

vi) Update the list of responsibilities :

-       Query for %RESP%TRUST%. You will see a profile option named 'Responsibility trust level'. The value for this profile option at site level will be Normal.  Leave this setting unchanged.

-       Set the value of this profile option for the chosen responsibility to External at the responsibility level. The site-level value should remain Normal.

-       Repeat for all responsibilities that you want to make available from the external web tier.

-       Save

-       Add the responsibilities to the Guest User.

-       The above setting should be enabled for the following Responsibilities:

i)                    iRecruitment External Site Visitor

ii)                  iRecruitment External Candidate.

vii) Run the auoconfig on all nodes and check the accessibility of the iRecruitement Portal internally.

viii)Configuring the Reverse Proxy:

                     The Following entry needs to be added inside the Reverse Proxy Server to translate the external url to internal and visa-versa i.e.  irec.groovy.com <--> external.xxxxx.com




<VirtualHost *:80>

        ServerName irec.groovy.com

        ProxyPreserveHost on

        ProxyPass / http://external.xxxxx.com:8007

        ProxyPassReverse / http://external.xxxxx.com:8007

</VirtualHost>



ix) Configure the External webTier to be accessible on the registered URL:

Backup the External Tier context file and edit the following parameters as :

i)              s_webentryhost, to the reverse proxy server hostname – irec

ii)             s_webentrydomain, to the domain name of the reverse proxy server – groovy.com:80

iii)            s_active_webport, to the reverse proxy listener port – 80

iv)            s_webentryurlprotocol, to the webentry point protocol – http

v)             s_login_page, to <webentry protocol>://<webentry point>.<webentry domain>:<active webport> -http://irec.groovy.com:/OA_HTML/IrcVisitor.jsp

Before:

<webentryhost oa_var="s_webentryhost">external</webentryost>
<webentrydomain oa_var="s_webentrydomain">xxxxx.com</webentrydomain>
<activewebport oa_var="s_active_webport" oa_type="DUP_PORT" base="8000" step="1" range="-1" label="Active Web Port">8007</activewebport>
<externURL oa_var="s_external_url">http://external.xxxxx.com:8007/OA_HTML/IrcVisitor.jsp</externURL>
<login_page oa_var="s_login_page">http://external.xxxxx.com:8007/OA_HTML/IrcVisitor.jsp</login_page>



After:

<webentryhost oa_var="s_webentryhost">irec</webentryhost>
<webentrydomain oa_var="s_webentrydomain">groovy.com</webentrydomain>
<activewebport oa_var="s_active_webport" oa_type="DUP_PORT" base="8000" step="1" range="-1" label="Active Web Port">80</activewebport>
<externURL oa_var="s_external_url">http://irec.grrovy.com:80</externURL>
<login_page oa_var="s_login_page">http://irec.groovy.com:80/OA_HTML/IrcVisitor.jsp</login_page>


x)Run Autoconfig on External tier to effect the changes made in the context file and start the web Services using the command adopmnctl.sh startall.


xi) Access the URL over internet i.e. http://irec.xxxxx.com


xii) After successful access, enable the firewall for external tier:

 

An inbuilt URL based firewall is enabled by default, once the node is set as EXTERNAL. This can be enabled or disabled based on the context value :

BEFORE:
<urlfirewall oa_var="s_enable_urlfirewall"/>

AFTER:
<urlfirewall oa_var="s_enable_urlfirewall">#</urlfirewall>

Edit the /d03/erp/appl/PROD/inst/apps/PROD_external/ora/10.1.3/Apache/Apache/conf/url_fw.conf and uncomment all the IRC related links and comment all the other links.so, that this server can be used only for iRecruitment purpose:





#==============================================================

#Include the initial default start page

# INITIAL PAGE

#==============================================================



#RewriteRule ^/$ /OA_HTML/AppsLocalLogin.jsp [R,L]

#RewriteRule ^/$ /OA_HTML/AppsLogin.jsp [R,L]

#RewriteRule ^/$ /OA_HTML/AppsLogin [R,L]



#Re-direct to the iRecruitment home page

RewriteRule ^/$ /OA_HTML/IrcVisitor.jsp [R,L]

#Re-direct to the iStore home page

#RewriteRule ^/$ /OA_HTML/ibeCZzpHome.jsp [R,L]





#==============================================================

#Include all static files (wildcarded)

# STATIC Patterns

#==============================================================



RewriteRule ^/OA_MEDIA/.*\.(gif|jpg|jpeg|bmp)$ - [L]

RewriteRule  ^/OA_HTML/.*\.(gif|jpg|jpeg|bmp)$ - [L]

RewriteRule  ^/OA_HTML/.*\.(js|css|xss)$ - [L]

RewriteRule  ^/OA_HTML/.*\.(xls|avi)$ - [L]

RewriteRule  ^/OA_HTML/.*\.(htm|html)$ - [L]

#RewriteRule  ^/OA_HTML/.*\.(HTM|HTML)$ - [L]   # Only if needed

RewriteRule  ^/robots.txt$ - [L]

RewriteRule  ^/favicon.ico$ - [L]

#================================================================

#Include URLs for product IRC (iRecruitment)

# IRC Product Pages

# jsp - external only

#================================================================

RewriteRule  ^/OA_HTML/IrcVisitor\.jsp$  - [L]

RewriteRule  ^/OA_HTML/xdo_doc_display\.jsp$  - [L]

RewriteRule ^/OA_HTML/JobPositionSeeker\.xsl$ - [L]

RewriteRule ^/OA_HTML/IRCRESUMEUK1\.xsl$ - [L]

RewriteRule ^/OA_HTML/IRCRESUMEUK2\.xsl$ - [L]

RewriteRule ^/OA_HTML/IRCRESUMEUS1\.xsl$ - [L]

RewriteRule ^/OA_HTML/IRCRESUMEUS2\.xsl$ - [L]

RewriteRule ^/OA_HTML/IRCRESUMEUS3\.xsl$ - [L]

xiii) Restart the Services and try to access the page other than the iRecruitment portal.It should be denied by the firewall.

cd $ADMIN_SCRIPTS_HOME



sh adopmnctl.sh stopall

sh adopmnctl.sh startall



Troubleshooting the External Tier:



i) Unable to access the external URL

                           check the status of opmn services using the command: adopmnctl.sh status.

If the services are down, restart the services using the adopmnctl.sh stopall - adopmnctl.sh startall


ii) Gone:Access to the requested URI has been blocked by URL firewall

              

When a user tries to access other than iRecuitment pages over the internet gets this error. As all these URI’s and different page accesses are controlled from the file url_fw.conf which is in /d03/erp/appl/PROD/inst/apps/PROD_external/ora/10.1.3/Apache/Apache/conf

Whenever the autoconfig is run on EXTERNAL is ran, the custom settings inside this file are overwritten, hence need to reconfigure the firewall.Need to reconfigure this after running the Autoconfig.

Redirection of URL to Login Page

i)                    Either the Login Page value in the external tier context file changed to default value(default value is http://external.xxxxx.com:8007/OA_HTML/AppsLogin). Which should be manually changed from the default value to

<login_page oa_var="s_login_page">http://irec.groovy.com.ng:80/OA_

HTML/IrcVisitor.jsp</login_page>

ii)                  Or the Default Login Page IrcVisitor.jsp is blocked by the Firewall Configuration file, which happens when you run the Autoconfig on external Tier.After running the autoconfig on external WebTier it is mandatory to copy the url_fw.conf.irc to url_fw.conf and restart the opmn services.


No comments: