How Can I Restrict Applications Users To Be Signed In Only Once At Any Time .
Reference Doc: (Doc ID 375403.1)
GOAL : How to prevent Applications user from login twice?
As Per Oracle Support:
if XYZ has a previously established session, when he or she wants to log in from another computer, the login screen should send a message type “sorry, you already have an open session”. However, given the nature of HTTP, this is not possible due to the following reasons:
- Browsers can crash, leaving the existing session open and the user without any chance to log in
- Users close the browser window instead of logging off as intended
- Computers can crash
An enhancement to this behavior can be considered in the future, however it is unlikely that could be approved.
- But If XYZ logs in, all the previous existing sessions for this user will be automatically invalidated.
How to implement this behavior
Use the following SQL to confirm if the event already exists and is enabled
SQL > select name, status from wf_events evt where name = ‘oracle.apps.icx.security.session.created’;
If the event does not exist, follow the steps in Note 304209.1 to load both the Event itself and also the Event Subscription like below.
IN MY CASE:
select name, status from wf_events evt where name = ‘oracle.apps.icx.security.session.created’;
No rows selected
Run below commands to create Event.
Release 12:
java oracle.apps.fnd.wf.WFXLoad -u <apps_un> <apps_pw> <apps_dbserver.+fqdn>:<db_port>:<SID> thin US $FND_TOP/patch/115/xml/US/icxevte.wfx
Run below commands to create Event Subcription
Release 12: java oracle.apps.fnd.wf.WFXLoad -u <apps_un> <apps_pw> <apps_dbserver.+fqdn>:<db_port>:<SID> thin US $FND_TOP/patch/115/xml/US/icxevts.wfx
Bounce your application to check the affect.
Note: By default this policy will not applied on “SYSADMIN,GUEST,ANONYMOUS” because oracle not recommend this.
Run below command If you want to allow any user to start more than one user session .
Take a backup of table wf_event_subscriptions.
update wf_event_subscriptions set parameters =’excludedUsers=SYSADMIN,GUEST,ANONYMOUS, <TESTUSER>‘
where EVENT_FILTER_GUID = ‘8FD5D7F235A83E41E03408002092A95D’;
commit;
IF You Want to Enable or disable the policy manually then you can do this by below method.
- Login to E-Business and navigate to Workflow Administrator Web Application > Business Event.Search for oracle.apps.icx.security.session.created
- Then click on clock symbol under the Subscription column. Use the pencil beside subscription icx_sec.doNewSessionEvent to access its definition and enable or disable it.
- Shutdown and restart the Workflow Agent Listener Service.
Note : Must use sysadmin user to enable or disable the event.
Oracle Solutions We believe in delivering tangible results for our customers in a cost-effective manner