Apps To Fusion

.......Our Journey from Apps To Fusion

 
  • Increase font size
  • Default font size
  • Decrease font size



How to login to APEX with EBS login credentials (Authentication Scheme)

E-mail
User Rating: / 4
PoorBest 

Application Security is one of the prime focuses when designing web applications, as they are prone to many security vulnerabilities. Oracle Application Express (APEX) has many built in security features like Authentication, Authorization i.e. access level of the user, session state protection etc.

This article helps you understand Authentication schemes in APEX and how to use EBS login credentials in APEX. Authentication is a mechanism to securely identify a trusted user. It may be really simple (just enter username) or complex hash algorithm to validate username and password entered by the user.

Authentication scheme verifies user's identify before they can access your application. Once the user has been identified, APEX keep track of each user by setting the value of built-in substitution string APP_USER. You can access APP_USER using the following syntax:

  • From PL/SQL: v('APP_USER')
  • As a bind variable from either PL/SQL or SQL: :APP_USER

APEX Authentication Schemes are created/managed in Shared Components > Authenication Schemes (Security section) in your application. Below screenshot shows navigation to authentication schemes.

APEX comes with Preconfigured authentication schemes. When you select a preconfigured authentication scheme, APEX follows a standard behavior for authentication and session management. Preconfigured authenication schemes available are:

  • Open Door Credentials: It enables anyone to access your application using a built-in
    login page that captures a user name. This authentication method is useful during
    application development.
  • Oracle Application Express Account Credentials: It uses APEX username and password. For example, your apex.oracle.com login credentials have to be entered to run the application if you use this authentication method.
  • Database Account Credentials: It utilizes database scheme accounts. This authentication scheme requires that a database user (schema) exist in apex database.
  • LDAP Credentials Verification: You can configure any authentication scheme that uses a login page to use Lightweight Directory Access Protocol (LDAP) to verify the user name and password submitted on the login page.
  • DAD Credentials Verification: This authentication scheme gets the user name from the DAD configuration or, if the account information is not stored in the DAD configuration, as the user name captured using the basic authentication challenge. This scheme also known as No Authenication.
  • Single Sign-On Server Verification: Oracle Application Server Single Sign-On verification delegates authentication to the Oracle AS Single Sign-On (SSO) Server. To use this authentication scheme, your site must have already been registered as a partner application with the SSO server.

Below screenshot shows preconfigured authentication scheme when creating authentication scheme.


If your Oracle EBS is not integrated with Oracle SSO, you will have to create custom authentication scheme from scratch. Creating from scratch gives you complete control over your authentication interface. When defining your custom authentication scheme the following points should be noted:

1. Building a login page.

When you create a new application in APEX, a login page (page 101) is created. You can use this page as the "Invalid session page" in authentication scheme, i.e. when user session is stale or invalid, APEX redirects user to Invalid session page. You may build a custom login page instead of using default login page, and assign it to authentication scheme.

Default login page (Pg. 101) is shown below. This page has user name, password text fields, a login button and few processes to complete login process.

The Login process takes values of entered username and password, validates them based of authentication scheme attached to APEX application, and finally redirects user to a page i.e. P_FLOW_PAGE parameter (default is 1) on successful validation. If you wish to redirect user to page n, change P_FLOW_PAGE parameter. Below is code for login procedure.

wwv_flow_custom_auth_std.login(
P_UNAME => :P101_USERNAME,
P_PASSWORD => :P101_PASSWORD,
P_SESSION_ID => v('APP_SESSION'),
P_FLOW_PAGE => :APP_ID||':1'
);

In the login API call, you can optionally specify a p_preserve_case boolean argument. Set this to true if you don't want the username converted to upper case during credentials verification and session registration.

2. Custom Authentication Function.

This function will check the username/password and return boolean. APEX engine expects this function to have the signature (p_username in varchar2, p_password in varchar2) return boolean. The value of the username and password fields passed to the login API, which is called by the login page, will be passed to your function.

Suppose your authentication function is custom_ebs_auth, you enter return custom_ebs_auth in authentication function field during creation. Below Code for custom_ebs_auth uses fnd_web_sec package to validate against Oracle EBS users.

CREATE OR REPLACE function custom_ebs_auth (p_username IN VARCHAR2, p_password IN VARCHAR2)
return boolean
as
begin
if fnd_web_sec.validate_login(p_username, p_password) = 'Y' then
return true;
else
return false;
end if;
end;

3. Logout URL

This URL is used to redirect the user when logout button is clicked. Use the below URL.
wwv_flow_custom_auth_std.logout?p_this_flow=&APP_ID.&p_next_flow_page_sess=&APP_ID.:101:&SESSION.:LOGOUT


Steps for Creating an Authentication Scheme from Scratch

As I cannot integrate my apex.oracle.com account with local Oracle EBS server, I will mimic login functionality of Sample Application (App. 100) which uses custom authentication by calling custom_auth function. This function checks username/password in DEMO_USERS table. Password column in DEMO_USERS is encrypted using DBMS_OBFUSCATION package and an encryption key (l_salt variable in custom_hash function). Remember this approach is only for demonstration of custom authentication function, not to be used for production.

1. Insert users in DEMO_USERS table.

custom_auth function encrypts entered password using key in custom_hash function, and compares it to password column in DEMO_USERS. So when inserting users in DEMO_USERS, use same custom_hash function to encrypt password. Code for inserting a2f_admin and a2f_user in demo_users table. a2f_admin user has ADMIN_FLAG set to 'Y'.

declare
l_username varchar2(4000) := 'A2F_ADMIN';
l_password varchar2(4000) := 'welcome1';
l_username1 varchar2(4000) := 'A2F_USER';
l_password1 varchar2(4000) := 'welcome2';
l_salt varchar2(4000) := '4BS4EJ1R3L4UNRWZKPCX0HK6MTJ5YB';
begin
-- ADMIN User
l_password := custom_hash(l_username, l_password);
insert into demo_users values (DEMO_USERS_SEQ.nextval, l_username, l_password, SYSDATE, NULL, 'Y', NULL, 'Y');
-- Trigger BI_DEMO_USERS overrides admin_flag to 'N' for new users
-- So update is required for A2F_ADMIN
update demo_users set admin_user = 'Y'
where user_name = 'A2F_ADMIN';
-- User
l_password1 := custom_hash(l_username1, l_password1);
insert into demo_users values (DEMO_USERS_SEQ.nextval, l_username1, l_password1, SYSDATE, NULL, 'Y', NULL, 'N');
commit;
end;


2. Create custom authentication scheme.

Go to Shared Components > Authentication Scheme (Security Scheme) > Create. Select From scratch in create scheme.

3. Make authentication scheme Current

Once the authentication scheme is created, it has to be assigned to application. This is done from Change Current section in Authentication Scheme.

4. Run the application. I've changed login page to include some html text.

URL for the application:

My application can be accessed using the url http://apex.oracle.com/pls/apex/f?p=62577:1

Packaged Application:

My Packaged applications are created using APEX 3.2 version, you can only import them into APEX with same version. This packaged application has supporting objects i.e. table and sample data, along with apex application. You can import and run it without going through the above steps.

Download Packaged Application

The zip file has sql files for application (apex_tut03_app.sql) and image (apex_tut03_img.sql).

Video for deploying packaged application (2:41 min). This video is applicable for deploying packaged applications for my next articles as well.

The next article will be on Authentication vs Authorization, how Authorization is used in APEX.

Comments (21)add
Video
written by emil , May 18, 2009
video not working. I tried several articles and the same problem
report abuse
vote down
vote up
Votes: +0
Re: Video
written by Kishore Ryali , May 18, 2009
Emil,

I did not see any problem with videos. If you see issue with all videos, please check if you have flash installed.
Please let us know if it works.

Kishore
report abuse
vote down
vote up
Votes: +0
...
written by sachin , June 19, 2009
Hi Kishore

Have u been able to integrate R12 and APEX? I need to get this working. do u have the detailed steps ?
Thanks.

Regards
sachin
report abuse
vote down
vote up
Votes: +0
...
written by sachin , June 19, 2009
Hi Kishore

Because i believe mod_plsql is no longer available in R12. Would you know how to perform the integration so that a user logged into R12 seamlessly accesses the web application developed in APEX using all the session state management facilities that EBs provides.
Thanks.

Regards
sachin
report abuse
vote down
vote up
Votes: +0
Re: APEX integration with R12
written by Kishore Ryali , June 19, 2009
Sachin,

R12 application server doesnt support mod_plsql. Alternatively, you can install APEX on a separate application server other than R12's. You've create custom authentication scheme to use R12 user credentials to login to APEX. This is no different from 11i integration.

Kishore
report abuse
vote down
vote up
Votes: +2
How to Incorporate apex page in oracle E-business
written by Furqan , March 24, 2010
Very good article and i have learned new things but i have develope a page in apex but i want to know how to deploy this page in oracle e-business suit,is there any possibility

Thanks.
report abuse
vote down
vote up
Votes: +1
Re: How to Incorporate apex page in oracle E-business
written by Kishore Ryali , March 24, 2010
Frugan,

I read an article to register apex forms/reports in Oracle EBS menus. I've not done it personally. This link might help you.
http://www.oracle.com/technology/p******s/database/application_express/pdf/Extend_Oracle_Applications_11i.pdf

Kishore
report abuse
vote down
vote up
Votes: +0
Use your own database instead of using demo_users
written by Michael Fernihough , May 04, 2010
Hey guys,

I'm pretty novice when it comes to apex, but how do I change the login system to use my own database(smd_login) instead of demo_users?

If you could get back to me asap it would be greatly apprieciated!

Thanks in advance!

Michael f
report abuse
vote down
vote up
Votes: +2
installing the application (apex_tut03_app.sql) and image (apex_tut03_img.sql)
written by Ife Olu , February 01, 2011
I get this error when I try to install application (apex_tut03_app.sql) and image (apex_tut03_img.sql).

These files were exported from a different workspace. The files cannot be installed in this workspace.

What workspace or workspace privilege do I need
report abuse
vote down
vote up
Votes: +0
Regarding Apex..!!
written by Ranchod , February 16, 2011
Hi.. Do you have any procedures for changing pwd and steps for forgot pwd..?? if so.,please share it.

Thanks in Advance..!!!

Regards,
Ranchod
report abuse
vote down
vote up
Votes: +0
answer this post
written by LeliaHill , June 27, 2011
Various people in every country get the loan from different banks, because that is fast and easy.
report abuse
vote down
vote up
Votes: +0
Thanks
written by Maryabc , August 03, 2011
You've create custom authentication scheme to use R12 user credentials to login to APEX. This is no different from 11i integration.
club penguin cheats

report abuse
vote down
vote up
Votes: +0
imitation Watches
written by imitation Watches , September 01, 2011
smilies/cheesy.gif smilies/cheesy.gifYour username has been blocked
report abuse
vote down
vote up
Votes: +0
block machine
written by block machine , September 01, 2011
Thanks a lot for sharing the article on cash. That's a awesome article. I enjoyed the article a lot while reading. Thanks for sharing such a wonderful article. I want to say very thank you for this great informations, now I understand about it,thank you!Plastic mold
report abuse
vote down
vote up
Votes: +0
Tiffany jewelry
written by Tiffany jewelry , September 08, 2011
I'm the contents of such have to the thumbs up, very good article pls vist

our web:Tiffany jewelry
report abuse
vote down
vote up
Votes: -1
GHD straighteners australia
written by ghd australia , September 13, 2011
If you have not yet tried pink GHD straightener, it's time to own one and feel the difference it can make to your personality. These are just brilliant and fabulous ghd straighteners pink.
report abuse
vote down
vote up
Votes: +0
Top Quality Replica Watches
written by zhangailin , September 14, 2011
Long time no reading such a good article, thanks to the webmaster to provide such a good article.
report abuse
vote down
vote up
Votes: +0
Top Quality Replica Watches
written by zhangailin , September 14, 2011
Long time no reading such a good article, thanks to the webmaster to provide such a good article.
report abuse
vote down
vote up
Votes: +1
sell C***p wedding d***s
written by Mori Lee , November 07, 2011
It was really strange that even before I finished reading your article about this Demetrios 1405 I began to feel that you were a kind-hearted person. Your article is very interesting and helped me a lot as I'm going to wear this Demetrios 1406. I am looking forward to better articles from you, introducing to us various styles of Demetrios 1407 and want to make friends with you. Recently I have been promoting this Demetrios 1408.
report abuse
vote down
vote up
Votes: +0
electronic ballast
written by electronic ballast , November 17, 2011
Ningbo Zhengjia Electric Appliance Co., Ltd is a professional R & D manufacturer and exporter of electronic ballast for fluorescent lamps(FL) and Compact Fluorescent Lamps(PL).

report abuse
vote down
vote up
Votes: +0
block machine
written by block machine , January 11, 2012

Ningbo Yinzhou Nuoya Cement Block Machine Factory, a professional manufacturer and exporter of all kinds of Single and Multi Spring brick machine,concrete brick machine,block machine,We are a member of Building Block Association with excellent and advanced technology.
report abuse
vote down
vote up
Votes: +0
Write comment
quote
bold
italicize
underline
strike
url
image
quote
quote
smile
wink
laugh
grin
angry
sad
shocked
cool
tongue
kiss
cry
smaller | bigger

security image
Write the displayed characters


busy
Last Updated ( Wednesday, 01 December 2010 20:40 )