Home > Oracle Application Express ... > Managing Environment Settings > Configuring Security Settings
Previous |
Next |
Oracle Application Express administrators can configure security settings, such as turning off cookies used to populate the login form in Application Express, controlling access to accounts, and setting up password policies.
Topics:
Turning Off Cookies Used to Populate the Login Form for Application Express
Disabling Access to Oracle Application Express Administration Services
Disabling Access to Oracle Application Express Internal Applications
Restricting Access to Oracle Application Express by Database Access Descriptor (DAD)
Oracle Application Express administrators can control if a convenience cookie is sent to the user's computer whenever a developer or administrator logs in to a workspace from the Application Express Login page. By default, the Set Workspace Cookie option is set to Yes.
If selected, Oracle Application Express sends a persistent cookie that:
combines the last used workspace name and user name
has a lifetime of six months
is read to populate the Application Express Workspace Login form (but not the Oracle Application Express Administration Services Login form)
Note: If your computer has received this cookie, you can physically remove it from its persistent location on disk using browser tools or system utilities. The cookie is namedORA_WWV_REMEMBER_UN. In older releases of Oracle Application Express, this cookie was named ORACLE_PLATFORM_REMEMBER_UN . It may exist for each Oracle Application Express service accessed having distinct hostname and path components. |
To prevent a cookie from being sent to the user's computer when logging in:
Log in to Oracle Application Express Administration Services. See "Logging in to Oracle Application Express Administration Services".
Click Manage Service.
Under Manage Environment Settings, click Security.
Locate the Security section.
For Set Workspace Cookie, select No.
Click Apply Changes.
Oracle Application Express administrators can restrict user access to Oracle Application Express Administration Services. This prevents any user from logging in to Oracle Application Express Administration Services.
To disable user access to Oracle Application ExpressAdministration Services:
Log in to Oracle Application Express Administration Services. See "Logging in to Oracle Application Express Administration Services".
Click Manage Service.
Under Manage Environment Settings, click Security.
Locate the Security section.
For Disable Administrator Login, select Yes.
Click Apply Changes.
Setting this value and logging out prevents anyone from logging in to Oracle Application Express Administration Services.
To reverse this setting and enable administrator login:
Connect in SQL*Plus and connect to the database where Oracle Application Express is installed as SYS
, for example:
On Windows:
SYSTEM_DRIVE:\ sqlplus /nolog
connect sys as sysdba
On UNIX and Linux:
$ sqlplus /nolog connect sys as sysdba
When prompted enter the appropriate password.
Run the following statement:
ALTER SESSION SET CURRENT_SCHEMA = APEX_030200;
Run the following statements:
BEGIN APEX_INSTANCE_ADMIN.SET_PARAMETER('DISABLE_ADMIN_LOGIN', 'N'); commit; END; /
The applications that constitute Oracle Application Express (such as Application Builder and SQL Workshop) exist within a workspace named Internal. To restrict user access to Internal applications, select Yes from Disable Workspace Login. Selecting Yes in production environments prevents all users from running applications (such as Application Builder and SQL Workshop) in the Internal workspace. Administrators who use this feature should also consider disabling user access to Oracle Application Express Administration Services.
To disable user access to the Internal workspace:
Log in to Oracle Application Express Administration Services. See "Logging in to Oracle Application Express Administration Services".
Click Manage Service.
Under Manage Environment Settings, click Security.
Locate the Security section.
From Disable Workspace Login, select Yes.
Selecting Yes prevents users from logging in to the Internal workspace.
Click Apply Changes.
Use the Allow Public File Upload attribute to control whether unauthenticated users can upload files in applications that provide file upload controls.
To control file upload:
Log in to Oracle Application Express Administration Services. See "Logging in to Oracle Application Express Administration Services".
Click Manage Service.
Under Manage Environment Settings, click Security.
Locate the Security section.
From Allow Public File Upload, select one of the following:
Yes enables unauthenticated users to upload files in applications in the Internal workspace.
No prevents unauthenticated users from uploading files in applications in the Internal workspace.
Click Apply Changes.
Oracle Application Express administrators can restrict user access to an Oracle Application Express instance by creating a Runtime setting named RESTRICT_IP_RANGE
.
To restrict user access by IP address:
Log in to Oracle Application Express Administration Services. See "Logging in to Oracle Application Express Administration Services".
Click Manage Service.
Under Manage Environment Settings, click Security.
Locate the Security section.
For Disable Administrator Login, select No.
In Restrict Access by IP Address, enter a comma-delimited list of IP addresses. Use an asterisk (*) to specify a wildcard.
You can enter IP addresses from one to four levels. For example:
141, 141.* ... 192.128.23.1 ...
Note: When using wildcards, do not include additional numeric values after wildcard characters. For example,138.*.41.2 . |
Click Apply Changes.
Secure Socktets Layer (SSL) is a protocol for managing the security of data transmitted on the Internet. For Web applications, SSL is implemented by using the HTTPS protocol. Oracle recommends that you run Oracle Application Express applications using SSL (HTTPS protocol) to prevent any sensitive data from being sent over an unencrypted (cleartext) communication channel.
You can configure both your Oracle Application Express instance and all related applications to require HTTPS by setting the Require HTTPS attribute to Yes on the Manage Service page.
Note: If you set Require HTTPS to Yes, you will only be able to log in to an Oracle Application Express workspace or Oracle Application Express Administration Services over HTTPS. |
To require HTTPS for an Oracle Application Express instance:
Log in to Oracle Application Express Administration Services. See "Logging in to Oracle Application Express Administration Services".
Click Manage Service.
Under Manage Environment Settings, click Security.
Locate the Security section.
For Require HTTPS, select Yes.
Click Apply Changes.
To reverse the Require HTTPS instance-level requirement:
Connect in SQL*Plus or SQL Developer with the Application Express engine schema as the current schema, for example:
On Windows:
SYSTEM_DRIVE:\ sqlplus /nolog
connect sys as sysdba
On UNIX and Linux:
$ sqlplus /nolog connect sys as sysdba
When prompted enter the appropriate password.
Run the following statement:
ALTER SESSION SET CURRENT_SCHEMA = APEX_030200;
Run the following statements:
BEGIN APEX_INSTANCE_ADMIN.SET_PARAMETER('REQUIRE_HTTPS', 'N'); commit; end; /
Use the attributes under Session Timeout to reduce exposure to abandoned computers with an open Web browser at the application level.
To manage session settings for an Oracle Application Express instance:
Log in to Oracle Application Express Administration Services. See "Logging in to Oracle Application Express Administration Services".
Click Manage Service.
Under Manage Environment Settings, click Security.
Under Session Timeout For Application Express, specify the following attributes:
Maximum Session Length in Seconds - Enter a positive integer representing how many seconds a session can exist for Oracle Application Express applications (that is, Application Builder, SQL Workshop, and so on). Leave the value NULL
to revert the value to the default of 28800 seconds (or 8 hours). This session duration may be superseded by the operation of the job that runs every eight hours which deletes sessions older than 24 hours.
Maximum Session Idle Time in Seconds - Enter a positive integer representing how many seconds a session may remain idle for Oracle Application Express applications (that is, Application Builder, SQL Workshop, and so on). Leave the value null to revert the value to the default of 1 hour (3600 seconds).
Click Apply Changes.
It is possible to restrict regions of type URL and Web services for the entire Oracle Application Express instance. The Oracle Application Express administrator defines excluded domains and regions of type URL. If a Web reference or region of type URL contains an excluded domain, an error displays informing the user that it is restricted.
To exclude a domain from regions of type URL and Web services:
Log in to Oracle Application Express Administration Services. See "Logging in to Oracle Application Express Administration Services".
Click Manage Service.
Under Manage Environment Settings, click Security.
In Domain Must Not Contain, enter a colon-delimited list of excluded domains.
Click Apply Changes.
By default, no login controls are enabled across an Oracle Application Express instance. Oracle Application Express administrators can enable login controls for all accounts in all workspaces across an entire development instance. Account login controls include:
Require user account expiration and locking
Set up a maximum number of failed login attempts
Set the lifetime of a password before prompted for a new one
If the Oracle Application Express administrator does not enable login controls for an entire instance then each Workspace administrator can enable the following controls on a workspace-by-workspace basis. See "Enabling Login Controls for a Workspace".
Note that Account Login control affect applications that use the Application Express user account creation facilities and authentication against those accounts.
To enable login controls for all workspaces:
Log in to Oracle Application Express Administration Services. See "Logging in to Oracle Application Express Administration Services".
Click Manage Service.
Under Manage Environment Settings, click Security.
Scroll down to Account Login control.
Under Account Login Control:
Require User Account Expiration and Locking - Select Yes to enable this feature for all workspaces across an entire Oracle Application Express instance. This feature applies to end-user accounts created using the Application Express end-user account management interface.
Select No to relinquish control to each Workspace administrator.
Maximum Login Failures Allowed - Enter a number for the maximum number of consecutive unsuccessful authentication attempts allowed before a developer or administrator account is locked. If you do not specify a value in this field, the default value is 4.
This setting applies to Application Express administrator and developer accounts. It does not apply to end user accounts.
The value you enter is used as the default for the workspace-level Maximum Login Failures Allowed preference, if the Workspace administrator does not specify a value. That preference is used for end-user accounts within the respective workspace.
Account Password Lifetime (days) - Enter a number for the maximum number of days a developer or administrator account password may be used before the account expires. If you do not specify a value in this field, a default value is 45 days.
This setting applies to accounts used to access the Application Express administration and development environment only. It does not apply to end-user accounts used by applications developed in Application Express.
The value you enter is used as the default workspace-level End User Account Lifetime preference, if the Workspace administrator specifies no value. That preference is used for end-user accounts within the respective workspace.
Click Apply Changes.
Tip: This feature applies only to accounts created using the Application Express user creation and management facilities. It provides additional authentication security for applications. See "Managing Application Express Users". |
Oracle Application Express administrators can enable password policies for:
All users across all workspaces (that is, Workspace administrators, developers, and end users).
Oracle Application Express administrators can set up restrictions for all users, including password characters, lengths, words, and differences in consecutive passwords.
Users logging in to Oracle Application Express Administration Services
Turning on the strong password requirement for Oracle Application Express adds another layer of security to prevent hackers from determining an administrator's password. When this option is selected, passwords must meet these requirements:
consist of at least six characters
contain at least one lowercase alphabetic character, one uppercase alphabetic character, one numeric digit, and one punctuation character
cannot include the username
cannot include the word Internal
cannot contain any words shown in the Must Not Contain Workspace Name field in this section
To configure password policies:
Log in to Oracle Application Express Administration Services. See "Logging in to Oracle Application Express Administration Services".
Click Manage Service.
Under Manage Environment Settings, click Security.
To set up a password policy for Workspace administrators, developers, and end users, scroll down to Workspace Password Policy and specify the attributes described in Table: Workspace Password Policy Attributes.
Workspace Password Policy Attributes
Attribute | Description |
---|---|
Minimum Password Length |
Enter a number for the minimal character length for passwords. |
Minimum Password Differences |
Enter a positive integer or 0. When users change their password, the new password must differ from the old password by this number of characters. The old and new passwords are compared, character-by-character, for differences such that each difference in any position common to the old and new passwords counts toward the required minimum difference. |
Must Contain At Least One Alphabetic Character |
Select Yes to require that user passwords contain at least one alphabetic character. The Alphabetic Characters field lists the letters considered alphabetic characters. |
Must Contain At Least One Numeric Character |
Select Yes to require that user passwords contain at least one numeric character: 0,1,2,3,4,5,6,7,8, 9. |
Must Contain At Least One Punctuation Character |
Select Yes to require that user passwords contain at least one punctuation character. The Punctuation Characters field lists the symbols considered punctuation characters. |
Must Contain At Least One Upper Case Character |
Select Yes to require that user passwords contain at least one uppercase alphabetic character. |
Must Contain At Least One Lower Case Character |
Select Yes to require that passwords for users contain at least one lowercase alphabetic character. |
Must Not Contain Username |
Select Yes to prevent user passwords from containing the username, regardless of case. |
Must Not Contain Workspace Name. |
Select Yes to prevent user passwords from containing the workspace name, regardless of case. |
Must Not Contain |
Enter words, separated by colons, that may not be included in user passwords. These words may not appear in the password in any combination of uppercase or lowercase. This feature improves security by preventing the creation of some simple, easy-to-guess passwords based on words like hello, guest, welcome, and so on. |
Alphabetic Characters |
Enter new text or edit the existing text. This is the set of characters used in password validations involving alphabetic characters. |
Punctuation Characters |
Enter new text or edit the existing text. This is the set of characters used in password validations involving punctuation characters. |
Next, set up a password policy for service administrators.
Scroll down to the Service Administrator Password Policy and specify one of the following:
Use policy specified in Workspace Password Policy - Applies the password rules specified above in Workspace Password Policy to service administrator passwords.
Use default strong password policy - Applies the default strong password policy to service administrator passwords. To learn more, see item Help.
Click Apply Changes.
mod_plsql
and the embedded PL/SQL gateway support a directive which enables you to name a PL/SQL function which will be called for each HTTP request. You can use this functionality to restrict the procedures that can be invoked through the embedded PL/SQL gateway or mod_plsql
. The function returns TRUE
if the named procedure in the current request is allowed and FALSE
if it is not allowed. You can use this function to enforce access restrictions for Oracle Application Express on a per-database access descriptor (DAD) basis.
Oracle Application Express ships with a request validation function named wwv_flow_epg_include_modules.authorize
. This function specifies access restrictions appropriate for the standard DAD configured for Oracle Application Express.
During installation, the installer also creates a PL/SQL function in the Oracle Application Express product schema (APEX_030200
). You can change and recompile this function to restrict access. The source code for this function is not wrapped and can be found in the Oracle Application Express product core directory in the file named wwv_flow_epg_include_local.sql
. The source code is as follows
CREATE OR REPLACE FUNCTION wwv_flow_epg_include_mod_local( PROCEDURE_NAME IN VARCHAR2) RETURN BOOLEAN IS BEGIN RETURN FALSE; -- remove this statement when you add procedure names to the "IN" list IF UPPER(procedure_name) IN ( '') THEN RETURN TRUE; ELSE RETURN FALSE; END IF; END wwv_flow_epg_include_mod_local; /
To add names of procedures that should be allowed:
Remove or comment out the RETURN FALSE
statement that immediately follows the BEGIN
statement:
... BEGIN RETURN FALSE; -- remove this statement when you add procedure names to the "IN" list ...
Add names to the clause representing procedure names that should be allowed to be invoked in HTTP requests. For example to allow procedures PROC1
and PROC2
the IN
list you would write IN ('PROC1', 'PROC2')
.
After changing the source code of this function, alter the Oracle Application Express product schema (APEX_030200
) and compile the function in that schema.
To alter the product schema, APEX_030200
Log in to SQL Command Line (SQL*Plus) as SYS
.
Alter the product schema (APEX_030200
) by entering the following command:
ALTER SESSION SET CURRENT_SCHEMA APEX_030200;
Compile the function wwv_flow_epg_include_local.sql
.
The wwv_flow_epg_include_mod_local
function is called by Oracle Application Express's request validation function which itself is called by the embedded PL/SQL gateway or mod_plsql. The Oracle Application Express function first evaluates the request and based on the procedure name, approves it, rejects it, or passes it to the local function, wwv_flow_epg_include_mod_local
, which can evaluate the request using its own rules.
When you create new Database Access Descriptors for use with Oracle Application Express, the request validation function directive should be specified. Specifically, the function wwv_flow_epg_include_modules.authorize
should be named in the directive PlsqlRequestValidationFunction
in the Database Access Descriptor entry in dads.conf
.
If you have no additional restrictions beyond those implemented in the wwv_flow_epg_include_modules.authorize
function, there is no need to take any action with respect to the source code for the wwv_flow_epg_include_mod_loca
l function.
The PL/SQL Request Validation Function directive is only available in Oracle Application Server 10g and Oracle HTTP Server 11g or later, as well as the embedded PL/SQL gateway in Oracle Database 11g or later. This directive is not available in Oracle HTTP Server Release 9.0.3.