Skip Headers

Oracle® Application Server Portal Configuration Guide
10g (9.0.4)

Part Number B10356-01
Go To Documentation Library
Home
Go To Product List
Solution Area
Go To Table Of Contents
Contents
Go To Index
Index

Go to previous page Go to next page

6 Securing OracleAS Portal

One of the most important aspects of any portal solution is security. The ability to control user access to Web content and to protect your site against people breaking into your system is critical. This chapter describes the architecture of OracleAS Portal security in the following topics:

6.1 About OracleAS Portal Security

The sections that follow provide an overview of OracleAS Portal security and how it works with the OracleAS Security Framework.

6.1.1 OracleAS Portal Security Model

When you make content available on the Web, it is very likely that you need to restrict access to at least some parts of it. For example, it is unlikely that you want every user to be able to see every document on your site. It is even less likely that you want every user to be able to change every document on your site. OracleAS Portal provides a comprehensive security model that enables you to completely control what users can see and change on your Web site.

Before a user logs on to OracleAS Portal, they can only view the content that the content contributors designate as public. Public content can be viewed by any user who knows the URL of a portal object (for example, a page) and can connect to the machine where it is stored. The user sees only those aspects of the object that are designated as public, such as the public portlets. If the object has no public contents, then the user is denied access to it.

Once the user logs in to the portal, they may or may not be able to see and change content depending upon their access privileges. Typically, an authenticated user can see and do more in the portal than a public user. For example, an authenticated user might see items or portlets on the page that the public user cannot view. An authenticated user might also be able to add and edit content, and change properties, privileges that would typically be denied to a public user. In the portal, you can control access to objects (pages, items, or portlets) by user and group. That is, you might grant access privileges for a page to specific named users, user groups, or a combination of both.

To support this flexible approach to controlling access to Web content, OracleAS Portal leverages the other components of Oracle Application Server and Oracle9i Database Server to provide strong protection for your portal. OracleAS Portal interacts with all of the following components to implement its security model:

OracleAS Portal Architecture

Figure 6-1 illustrates the components and relationships of the OracleAS Portal security architecture.

Figure 6-1 OracleAS Portal Security Architecture

Text description of cg_sec_arch.gif follows.

Text description of the illustration cg_sec_arch.gif

The OracleAS Portal architecture consists of three basic tiers, including the client browser, the middle-tier server, and the infrastructure servers and repositories. By default, Oracle Internet Directory and OracleAS Single Sign-On are installed on the same host as part of the infrastructure installation. This tier is subsequently used for the OracleAS Portal installation.

While the default installation has all three servers and repositories installed on the same host, we recommend that you install these functions on separate servers.

If you used releases prior to 9.0.2, notice that the middle and infrastructure tier components have changed. The DAD and mod_plsql combination still exists on the infrastructure tier but is now joined by DAS running in Oracle Application Server Containers for J2EE (OC4J). Similarly, the Parallel Page Engine appears on the middle-tier also running in OC4J.

Furthermore, the OracleAS Single Sign-On model has expanded to include the addition of mod_osso, which allows any URL to participate in OracleAS Single Sign-On. Even if the application was not written as a partner application, mod_osso is now the recommended method to introduce third party applications into OracleAS Single Sign-On. Any application capable of reading HTTP headers may avail itself of the OracleAS Single Sign-On capability.

OracleAS Web Cache front ends these middle-tier components and thus optimizes the throughput of OracleAS Portal. When a page request comes from the browser, OracleAS Web Cache takes it. If possible, the page is delivered from the cache. If not, the request goes through to the origin Oracle HTTP Server.

As with Release 1.x, if the requested page is not a public page, the user is challenged for a username and password. This function is still carried out through a redirection to OracleAS Single Sign-On for authentication. (Note that the single sign-on DAD has been renamed to orasso for this release.)

Unlike Release 1.x, OracleAS Single Sign-On does not compare the user credentials against to its own schema tables. It verifies them on the Oracle Internet Directory through LDAP. The credentials are compared to those found within the Directory (LDAP compare) and the result returned to OracleAS Single Sign-On. Upon successful authentication, OracleAS Single Sign-On creates a single sign-on cookie.

Once the user is authenticated and an appropriate OracleAS Portal session created, she may access pages and other objects. It is necessary to determine which pages and objects the user has the necessary privileges to access. As in Release 1.x, the Access Control Lists for all portal objects are held in the OracleAS Portal Repository.

The difference in Release 2 is that all user and group membership information is stored in the Oracle Internet Directory. When a user first logs in to OracleAS Portal, the group memberships of the user are copied to the portal node and cached on that tier. This process allows for fast lookup of object privileges. Once the object and page privileges of the user are known, the Parallel Page Engine can go on to generate the page from the appropriate pieces.

In Release 2, all user provisioning is performed against the Oracle Internet Directory rather than the OracleAS Single Sign-On schema. The interface between the middle-tier and the LDAP server is the DAS servlet. The calls to the DAS servlet are protected by the mod_osso plug-in, which verifies that the user has been properly authenticated before providing access to the Oracle Internet Directory.

One important feature of the security architecture is the ability to keep the local cached group membership list synchronized with the Oracle Internet Directory. The Oracle Directory Integration Platform automatically keeps the locally cached information up to date with changes in the Oracle Internet Directory.

If you need to authenticate against an external repository, the Oracle Internet Directory performs this step rather than OracleAS Single Sign-On server as in Release 1.x. Just as the Oracle Directory Integration Platform keeps the local cache synchronized with the Oracle Internet Directory, it also keeps the Oracle Internet Directory synchronized with any external repository.

6.1.2 Classes of Users and Their Privileges

OracleAS Portal provides a number of user accounts and groups by default.

6.1.2.1 OracleAS Portal Default, Seeded User Accounts

Table 6-1 describes the user accounts created by default when OracleAS Portal is installed.

Table 6-1  Default OracleAS Portal Users
User Description

PUBLIC

Is the user account that identifies unauthenticated access to the OracleAS Portal. Once a user logs in, the username changes from PUBLIC to the username by which the user authenticated herself/himself. When granting Portal privileges on individual objects that do not have an explicit checkbox for granting the object to Public, this user can be identified as the grantee of the privilege to grant access to it for unauthenticated users.

PORTAL

Is the super-user for the portal. In a standard installation, the user name is PORTAL. This user account has the highest privileges because it is granted all the global privileges available in the portal.

ORCLADMIN

Similar to portal, this account is granted the highest privileges in OracleAS Portal. This account is created for the Oracle Application Server administrators, and uses the password that is supplied during the Oracle Application Server installation.

PORTAL_ADMIN

Is a privileged OracleAS Portal user account with administrative privileges excluding those that would give the user the ability to obtain higher privileges or perform any database operations. This user cannot edit any group or manage privileges on any schema or shared object. This account is typically intended for an administrator who manages pages and provisions user accounts.

6.1.2.2 OracleAS Portal Default, Seeded Groups

Table 6-2 describes the groups created by default when OracleAS Portal is installed.

Table 6-2  Default OracleAS Portal Groups
GroupFoot 1 Description

AUTHENTICATED_USERS

Is the group that includes any authenticated, or logged in, user. The purpose of this group is to provide a means to assign the default privileges you want every logged in user to have in the portal.

By default, this group is given the following privileges:

  • Create Group

This group is a member of OracleDASCreateGroup.

DBA

Is a highly privileged group established for Oracle Application Server administrators. Components that are part of Oracle Application Server grant full component-specific privileges to members of this group.

The DBA group is a member of the PORTAL_ADMINISTRATORS group.

This group is also a member of the following Oracle Application Server privilege groups:

  • OracleDASCreateUser

  • OracleDASEditUser

  • OracleDASDeleteUser

  • OracleDASUserPriv

  • OracleDASCreateGroup

  • OracleDASEditGroup

  • OracleDASDeleteGroup

  • OracleDASGroupPriv

  • OracleDASConfiguration

PORTAL_ADMINISTRATORS

Is a highly privileged group established for OracleAS Portal.

By default, this group is given the following OracleAS Portal global privileges:

  • Manage All Page Groups

  • Manage All Pages

  • Manage All Styles

  • Manage All Providers

  • Manage All Portlets

  • Manage All Portal DB Providers

  • Manage All Portal User Profiles

  • Edit All Group Profiles

  • Manage All Logs

  • Execute All Transport Sets

This group is a member of the following Oracle Application Server privilege groups:

  • OracleDASCreateUser

  • OracleDASEditUser

  • OracleDASDeleteUser

  • OracleDASCreateGroup

  • OracleDASConfiguration

Members of PORTAL_ADMINISTRATORS do not have the necessary privileges to administer OracleAS Single Sign-On. If you want members of this group to administer OracleAS Single Sign-On, then you must grant them those privileges as described in the Oracle Application Server Single Sign-On Administrator's Guide.

PORTLET_PUBLISHERS

Is a privileged group established for users who need to publish portlets to other users of the portal.

By default, this group is given the following OracleAS Portal global privileges:

  • Publish All Portlets

PORTAL_DEVELOPERS

Is a privileged group established for users who are building portlets.

By default, this group is given the following OracleAS Portal global privileges:

  • Create All Portal DB Providers

  • Manage All Shared Components

If you want PORTAL_DEVELOPERS to create database providers and portlets, you need to give this group privileges that enable them to modify schema, for example, Modify Data on all schemas. For more information, refer to Table 6-5.

RW_ADMINISTRATOR

Is the group of users who administer OracleAS Reports Services reports, printers, calendars, and servers.

You must assign this group any desired object privileges (For example, Manage).

RW_DEVELOPER

Is the group of users who develop OracleAS Reports Services reports.

You must assign this group any desired object privileges (For example, Execute or Manage).

RW_POWER_USER

Is the group of users who can modify OracleAS Reports Services reports.

You must assign this group any desired object privileges (For example, Execute or Manage).

RW_BASIC_USER

Is the group of users who use OracleAS Reports Services reports.

You must assign this group any desired object privileges (For example, Execute).

1 All groups shown in this table are located in cn=<portal_group_container>,cn=Groups,dc=MyCompany,dc=com. Note that identity management realm name is determined by the domain name of the server on which the system is installed. For example, if the domain name of the server was oracle.com, the default identity management realm name would be dc=oracle,dc=com. If the domain name of the server could not be determined, Oracle Internet Directory defaults to the domain specified during installation by the administrator. The OracleDASxxxxx groups are Oracle Internet Directory privilege groups that reside under cn=groups,cn=OracleContext,dc=MyCompany,dc=com. These groups provide the privileges to perform operations in Oracle Internet Directory, such as creating or editing of users and groups, and their privileges.

6.1.3 Resources Protected

Within OracleAS Portal, you decide at what level of granularity you want to control access. You can assign privileges to any object on a per-user or per-group basis. For example, you can assign access privileges on a per-user basis for each and every item in your portal, but this approach creates considerable overhead for your content contributors.

If you want to lessen the burden on contributors, then you can assign privileges on a per-group basis at the page level and simply ensure that all of the items that you place on any given page have similar security requirements. With this approach, the security that items receive through the page that contains them is usually sufficient and content contributors only need to assign privileges for items that require higher security than the page.

See Also:

For information about how you might model privileges, see Section 6.1.6.9, "DAS Public Roles".

More On OTN

For information about how you might model privileges, refer to the white paper, Strategies for Administering Privileges in OracleAS Portal Release 2, on the Oracle Technology Network, http://otn.oracle.com.

6.1.3.1 Global Privileges

Use global privileges to give a user or group a certain level of privileges on all objects of a particular type.


Note:

Global privileges confer a great deal of power on the user to whom they are granted. As a result, they should be granted very cautiously and only to users or groups who truly require them. You should only have a small number of users with global privileges.


There are three types of privilege groups:

Table 6-3  Page Group Privileges
Object Type Privileges

All Page Groups

None: No global page group privileges are granted.

Manage All: Perform any task on any page group. This privilege supersedes any other privilege in the other global page group privileges. For example, this also allows managing of any page.

Manage Classifications: Create, edit, and delete any category, perspective, custom attribute, custom page type, or custom item type in any page group.

Manage Templates: Create, edit, and delete any page template in any page group. Grant access to any page template.

Manage Styles: Create, edit, and delete any style in any page group.

View: View any page in any page group.

Create: Create page groups, and create any page group object in those page groups. Users or groups with these privileges can also edit and delete the page groups and page group objects they create. Note: These users cannot create any objects in the existing page groups.

All Pages

None: No global page privileges are granted.

Manage: Create, edit, customize, or delete any page in any page group. Grant access to any page in any page group.

Manage Content: Add, edit, hide, show, share, or delete any item, portlet, or tab on any page in any page group.

Manage Items With Approval: Create new items on any page in any page group. These items are not published until approved through a specified approval process. Users or groups with these privileges can also edit the items they create. Users with these privileges cannot add portlets to a page.

Manage Styles: Apply an available or new style to any page in any page group. Create, edit, and delete new styles. Note: Only allows editing of styles created by user (cannot modify or delete other user's styles).

Customize Portlets (Full): Customize any page in any page group to add, show, hide, delete, move, or rearrange portlets. Customize any page to show, hide, delete, or rearrange tabs, or add tabs to existing tabbed regions. Customize any page in any page group to use a different style.

Customize Portlets (Add-only): Customize any page in any page group to add portlets or add tabs to existing tabbed regions. Users or groups with these privileges can also delete the portlets they add. Customize any page in any page group to use a different style.

Customize Portlets (Hide-Show): Customize any page in any page group to show or hide portlets or tabs. Customize any page in any page group to use a different style. Arrange portlets in any page in any page group.

Customize (Style): Customize any page in any page group to use a different style.

View: View any page in any page group.

Create: Create sub-pages in any page group. Users or groups with these privileges can also edit and delete the sub-pages they create. Note: You must have Manage privileges on the root page in a page group in which you want to create the pages.

All Styles

None: No global style privileges are granted.

Manage: Create, edit, and delete any style in any page group.

View: View any style in any page group.

Publish: Make any style in any page group public for other users to use.

Create: Create styles in any page group. Users or groups with these privileges can also edit and delete the styles they create.

All Providers

None: No global provider privileges are granted.

Manage: Register, edit, and deregister any provider, as well as display and refresh the Portlet Repository. Also allowed to grant edit abilities on any provider.

Edit: Edit any registered provider.

Publish: Register and deregister any provider.

Execute: View the contents of any provider.

Create: Register portlet providers. On the provider the user (or group) creates, the user gets a Manage privilege. Thus, he can do all the operations (including edit and deregister) on the particular provider that he has created.

All Portlets

None: No global portlet privileges are granted.

Manage: Create, edit, or delete any portlet in any provider.

Edit: Edit any portlet in any provider.

Execute: Execute any portlet in any provider. Users or groups with these privileges can see all portlets even if the portlet security is enforced. The Show link appears in the Navigator for all portlets.

Access: View any portlet in any provider.

Publish: Publish any page, navigation page, or Portal DB provider portlet to the portal, making it available for adding to pages.

Table 6-4  Portal DB Provider Privileges
Object Type Privileges

All Portal DB Providers

None: No global application privileges are granted.

Manage: Edit, delete, or export any Portal DB provider. Create, edit, delete, or export any portlet in any Portal DB provider. Grant access to any Portal DB provider and any portlet in any Portal DB provider.

Edit Contents: Edit or export any portlet in any Portal DB provider.

View Source: View the package specification and body and run any portlet in any Portal DB provider. Intended primarily for users or groups who may want to look at a portlet's source so they know how to call it.

Customize: Run and customize any portlet in any Portal DB provider.

Run: Run any portlet in any Portal DB provider.

Create: Create Portal DB providers. Users or groups with these privileges can edit, delete, and export the providers they create and create, edit, delete, and export any portlet in them.

All Shared Components

None: No global shared component privileges are granted.

Manage: Create, view, copy, edit, delete, and export any shared component in any Portal DB provider. View and copy any system shared component. Grant access to any non-system shared component.

Create: Create shared components in any Portal DB provider. View and copy any system shared component. View any shared component. Users and groups with these privileges can view, copy, edit, delete, and export the shared components they create.

Table 6-5  Administration Privileges
Object Type Privileges

All User Profiles

None: No global user profile privileges are granted.

Manage: Edit any user profile. Grant this privilege to other users and groups.

Edit: Edit any user profile.

All Group Privileges (profiles)

None: No global group profile privileges are granted.

Manage: Edit any group profile. Grant this privilege to other groups. The Privileges tab of the group profile allows the user to assign those privileges to the group. The Manage privilege provides the edit privilege and the ability to grant it to others.

Edit: Edit any portal group profile (setting the default home page and default mobile home page). Note: The ability to change any group's description, memberships, and owners is controlled by the Oracle Internet Directory access control policies, which are administered through membership in the OracleDASEditGroup group.

All Schemas

None: No global schema privileges are granted.

Manage: Create, edit, and drop any schema. Grant access to any schema. Create, edit, drop, and rename any database object in any schema. Query, update, delete, and insert data in any table or view in any schema. Compile any function, procedure, package, or view in any schema. Execute any function, procedure, or package in any schema. Grant access to any database object in any schema.

Modify Data: Create schemas. Query, update, delete, and insert data in any table or view in any schema. Compile any function, procedure, package, or view in any schema. Execute any function, procedure, or package in any schema. Users or groups with these privileges can edit, drop, and grant access to the schemas they create.

Insert Data: Create schemas. Query and insert data in any table or view in any schema. Users or groups with these privileges can edit, drop, and grant access to the schemas they create.

View Data: Create schemas. Query data in any table or view in any schema. Users or groups with these privileges can edit, drop, and grant access to the schemas they create.

Create: Create schemas. Users with these privileges can also edit, drop, and grant access to the schemas they create. Note: If you want a user or group to access the Schemas portlet on the Administer Database tab of the Builder page, either make the user or group a member of the DBA group, or explicitly grant the user or group View privileges on the Administer Database tab. If you do not grant these privileges, the user or group will still be able to use the Navigator to access schemas.

All Logs

None: No global log privileges are granted.

Manage: Edit or purge any log. Grant this privilege to others.

Edit: Edit or purge any log.

View: View any log.

All Transport Sets

None: No global transport set privileges are granted.

Execute: Export/Import objects that are not shared.

Manage: Edit or purge any import or export sets. Grant this privilege to others.

6.1.3.2 Object Privileges

You can assign access privileges to users or groups for all of the following objects within OracleAS Portal through the Access tab of the object's Edit Page:

Table 6-6  OracleAS Portal Objects with Privilege Control
Type of Object Available Privileges Inherited Privileges

Calendar

  • Manage

  • View

  • Customize

  • Execute

From Database Provider

Chart

(based on SQL query)

  • Manage

  • Edit

  • View

  • Customize

  • Execute

From Database Provider

Chart

(based on wizard)

  • Manage

  • Edit

  • View

  • Customize

  • Execute

From Database Provider

Data Component

  • Manage

  • Edit

  • View

  • Customize

  • Execute

From Database Provider

Data Component Cell

  • Edit

  • View

From Data Component

Database Provider

  • Manage

  • Edit

  • View Source

  • Customize

  • Execute

Not applicable

Document

  • Own

  • Manage

  • View Only

From page or item

Dynamic Page Component

  • Manage

  • Edit

  • View

  • Customize

  • Execute

From Database Provider

FormFoot 1

  • Manage

  • Edit

  • View

  • Customize

  • Execute

From Database Provider

Frame Driver

  • Manage

  • Edit

  • View

  • Customize

  • Execute

From Database Provider

Hierarchy

  • Manage

  • Edit

  • View

  • Customize

  • Execute

From Database Provider

Image Chart

  • Manage

  • Edit

  • View

  • Customize

  • Execute

From Database Provider

Link

  • Manage

  • Edit

  • View

  • Customize

  • Execute

From Database Provider

List of Values

  • Manage

  • Edit

  • View

  • Customize

  • Execute

From Database Provider

Menu

  • Manage

  • Edit

  • View

  • Customize

  • Execute

From Database Provider

OracleAS Reports Services printer

  • Manage

  • Edit

  • View

  • Execute

From Database Provider

OracleAS Reports Services report

  • Manage

  • Edit

  • View

  • Customize

  • Execute

From Database Provider

OracleAS Reports Services Server

  • Manage

  • Edit

  • View

  • Execute

From Database Provider

Page

  • Manage

  • Manage Content

  • Manage Items With Approval

  • Manage Style

  • Customize Portlets (Full)

  • Customize Portlets (Add-Only)

  • Customize Portlets (Hide-Show)

  • Customization (Style)

  • View

Not applicable

Page group

  • Manage All

  • Manage Classifications

  • Manage Templates

  • Manage Styles

  • View

Not applicable

Page Item

  • Own

  • Manage

  • View Only

From page

Portlet

  • Manage

  • Edit

  • Execute

  • Access

  • Publish

Not applicable

Provider

  • Manage

  • Edit

  • Publish

  • Execute

Not applicable

Query by example form

  • Manage

  • Edit

  • View

  • Customize

  • Execute

From Database Provider

ReportFoot 2

  • Manage

  • Edit

  • View

  • Customize

  • Execute

From Database Provider

Schema

  • Manage

  • Modify

  • Insert

  • View

Not applicable

URL

  • Manage

  • Edit

  • View

  • Customize

  • Execute

From Database Provider

XML

  • Manage

  • Edit

  • View

  • Customize

  • Execute

From Database Provider

1 You can have many different types of forms (stored procedure or table based, version 2 or version 3 based, and master-detail), but all of these types have the same available privileges and privilege inheritance.

2 You can have two different types of reports (SQL and table based), but all of these types have the same available privileges and privilege inheritance.

6.1.3.3 Privileges to Create and Edit Web Providers and Provider Groups

To create and manage Web providers and provider groups through the user interface, as opposed to working with files directly, you need to grant appropriate privileges to the administrative users. The access control list is implemented differently than for the OracleAS Portal repository resident objects described in Section 6.1.3.1, "Global Privileges" and Section 6.1.3.2, "Object Privileges". Rather, the grants for provider privileges are maintained in an XML file.


Note:

The privileges described here are for users developing new Web providers and pertain to authorizations that are enforced by the provider user interface. These privileges are not required to register Web providers.


To grant privileges to create, edit, and delete Web providers or provider groups, you need to manually make changes to the following file:

MID_TIER_ORACLE_HOME/j2ee/OC4J_
Portal/applications/portalTools/providerBuilder/WEB-INF/deployment_
providerui/provideruiacls.xml

An example of this file follows:


Note:

In this example, the user names any_provider_manage_user, any_provider_edit_user, and so on, are just sample user names used here to illustrate the privilege codes that correspond to the privileges implied by the corresponding user names. An actual user grant would have the OracleAS Single Sign-On user name as the value of the name attribute in the <user> element, and the privilege would be populated with the appropriate privilege code.


<providerui xmlns="http://www.oracle.com/portal/providerui/1.0">
    <objectType name="ALL_OBJECTS">
        <object name="ANY_PROVIDER" owner="providerui">
           <user name="any_provider_manager_user" privilege="500"/>
           <user name="any_provider_edit_user" privilege="400"/>
           <user name="any_provider_execute_user" privilege="300"/>
           <user name="any_provider_create_user" privilege="100"/>
        </object>
        <object name="ANY_PORTLET" owner="providerui">
           <user name="any_portlet_manage_user" privilege="500"/>
           <user name="any_portlet_edit_user" privilege="400"/>
           <user name="any_portlet_execute_user" privilege="300"/>
        </object>
   </objectType>
   <objectType name="PROVIDER">
        <object name="TEST_PROVIDER" owner="providerui">
           <user name="provider_manage_user" privilege="500"/>
           <user name="provider_edit_user" privilege="400"/>
           <user name="provider_execute_user" privilege="300"/>
      </object>
   </objectType>
   <objectType name="PORTLET">
        <object name="PORTLET_UNDER_TEST_PROVIDER" owner="TESTPROVIDER">
           <user name="portlet_manage_user" privilege="500"/>
           <user name="portlet_edit_user" privilege="400"/>
           <user name="portlet_execute_user" privilege="300"/>
        </object>
   </objectType>
</providerui>

This file allows for granting of the following types of privileges, described in the following sections:

6.1.3.3.1 Global Privileges

Table 6-7 describes the global object types and corresponding privilege codes that can be granted to users in the provideruiacls.xml file. When granting a privilege to the user, you should specify the numeric privilege code.

Table 6-7  Global Privilege Codes for provideruiacls.xml
Type of Object Available Privileges

ANY_PROVIDER

500 (Manage): Can create/edit/delete/open any provider or provider group and portlets under them.

400 (Edit): Can create/edit any provider or provider group and execute the portlets under them.

300 (Execute): Can open any provider or provider group and execute the portlets under them.

100 (Create): Can create any provider or provider group.

ANY_PORTLET

500 (Manage): Can edit/delete/execute any portlet under any provider.

400 (Edit): Can edit/execute any portlet under any provider.

300 (Execute): Can execute any portlet under any provider.

To add a privilege to a particular user, add an entry in the proper object type container, for example:

<objectType name="ALL_OBJECTS">
    <object name="ANY_PROVIDER" owner="providerui">
       <user name="jdoe" privilege="400"/>
        ...
    </object>
</objectType>

For these global privileges, the objectType name is set to ALL_OBJECTS, the object owner is set to providerui, and the object name should be ANY_PROVIDER or ANY_PORTLET depending on the type of grant you are setting.

You then set the user name and privilege to the values corresponding to the OracleAS Single Sign-On username of the grantee and the privilege code you wish to assign. This model does not support any grants to groups. It only supports grants directly to users.

6.1.3.3.2 Object Level Privileges

Table 6-8 describes the object level privileges that can be granted to users to give them privileges on specific object instances as referenced within the provideruiacl.xml XML file.

Table 6-8  Object Privilege Codes for provideruiacl.xml
Type of Object Available Privileges

PROVIDER

500 (Manage): Can edit/delete/open the specified provider or provider group and the portlets under it.

400 (Edit): Can edit the specified provider or provider group and execute the portlets under it.

300 (Execute): Can open the specified provider or provider group and execute the portlets under it.

PORTLET

500 (Manage): can edit/delete/execute the specified portlet under the specified provider.

400 (Edit): Can edit/execute the specified portlet under the specified provider.

300 (Execute): Can execute the specified portlet under the specified provider.

To add a privilege to a particular user, add an entry into the proper object type container, for example:

<objectType name="PORTLET">
    <object name="PORTLET_UNDER_TEST_PROVIDER" owner="TESTPROVIDER">
       <user name="jdoe" privilege="400"/>
        ...
     </object>
</objectType>

For the object level privileges, the objectType name is set to PROVIDER or PORTLET, depending upon to which object instances you are providing access. The object name is set to the provider name or the portlet name, respectively. The object owner is set to providerui or the name of the associated provider, again respectively for providers and portlets.

Table 6-9 summarizes these rules:

Table 6-9  Attribute values for Providers and Portlets
Attribute Provider Instance Grant Portlet Instance Grant

ObjectType name

PROVIDER

PORTLET

Object name

Provider or provider group name

Portlet name

Object owner

providerui

Provider name

User name

OracleAS Single Sign-On user name

OracleAS Single Sign-On user name

User privilege

Privilege code

Privilege code

6.1.3.4 Privileges to Create/Edit URL/XML Portlets in the Portlet Repository

To create and edit URL and XML portlets in the Portlet Repository, privileges need to be granted to the users. The URL and XML portlets are available from the Portlet Builders page in the Portlet Repository. To grant access, you need to manually make changes to following file:

MID_TIER_ORACLE_HOME/j2ee/OC4J_Portal/applications/jpdk/jpdk/WEB-INF/
deployment_providerui/provideruiacls.xml

The privileges are identical to those described earlier in Section 6.1.3.3, "Privileges to Create and Edit Web Providers and Provider Groups".

6.1.4 Authorization and Access Enforcement

When users attempt to log in to OracleAS Portal, OracleAS Single Sign-On must first verify their credentials against the directory. Once their identity has been verified, OracleAS Portal checks their access privileges in the directory to determine which objects they may see and use within the portal.

  1. From OracleAS Portal, the user requests to log in by clicking the Login link.

  2. The login request is forwarded to OracleAS Single Sign-On for authentication.

  3. OracleAS Single Sign-On verifies the user credentials against the information stored in the directory.

  4. If authentication is successful, OracleAS Single Sign-On creates an SSO cookie for the user. If authentication is not successful, the user is denied access and returned to the login page to re-enter their user name and password.

  5. Once the user's identity has been verified, control is returned to OracleAS Portal, which creates a portal session cookie. OracleAS Portal then connects to the directory and determines the user's group memberships and privileges.

  6. OracleAS Portal caches the user's membership and privilege information locally for the duration of their session.

  7. When the user attempts to access a page, OracleAS Portal performs the following checks:

6.1.5 Leveraging Oracle Application Server Security Services

OracleAS Portal leverages Oracle Application Server Security Services in the following ways:

6.1.6 Leveraging Oracle Identity Management Infrastructure

To provide a more comprehensive security solution, OracleAS Portal takes advantage of a variety of components in the Oracle Identity Management infrastructure:

OracleAS Portal also takes advantage of Oracle Identity Management when it creates users and groups. The most common way to create users and groups, and set global privileges and preferences for your portal is through the following portlets:

6.1.6.1 Relationship Between OracleAS Portal and OracleAS Single Sign-On

OracleAS Portal uses OracleAS Single Sign-On for user authentication, as discussed in Section 6.1.4, "Authorization and Access Enforcement".


Note:

OracleAS Portal Release 3.0.9.8.4 or later can be used with OracleAS Single Sign-On Release 9.0.Foot 1 You cannot use versions older than Release 3.0.9.8.4 with OracleAS Single Sign-On 9.0.


1 Refers to the release of OracleAS Single Sign-On that ships with Oracle Application Server Release 2.

OracleAS Single Sign-On manages the Single Sign-On sessions of users. In order for single sign-on security to function properly with OracleAS Portal, the following tasks must be completed:

The Oracle Universal Installer performs these two configuration steps for you upon installation. If you need to make changes to your configuration after installation, you can do so by:

6.1.6.2 Relationship Between OracleAS Portal and Oracle Internet Directory

Oracle Internet Directory is Oracle's highly scalable, native LDAP version 3 service and hosts the Oracle common user identity. As stated in the previous section, OracleAS Portal queries the directory to determine a user's privileges and what they are entitled to see and do in the portal. In particular, OracleAS Portal retrieves the group memberships of the user from the directory to determine what they may access and change.

Given this model, OracleAS Portal requires the following interactions with Oracle Internet Directory:

6.1.6.2.1 Directory Entries in Oracle Internet Directory for OracleAS Portal

In order for security to function properly, OracleAS Portal requires the following entries in the directory's Directory Information Tree (DIT) structure:

Figure 6-2 shows where the OracleAS Portal information is located in the directory's DIT structure.

Figure 6-2 OracleAS Portal DIT Structure

Text description of cg_sec_dit.gif follows

Text description of the illustration cg_sec_dit.gif

6.1.6.2.2 User Attributes Stored in Oracle Internet Directory

OracleAS Portal, like all other components of Oracle Application Server, relies upon the directory to store user information. All users in the directory are defined using the following object classes:

The subsequent tables show the various user attributes stored in Oracle Internet Directory. A complete list of these attributes is available in IETF RFC 2798.

Table 6-10  inetOrgPerson Attributes
inetOrgPerson (IETF) attributes Comment

cn

The common name of the user.

This attribute is mandatory.

employeeNumber

Number used to identify employees

sn

Last name. This attribute is mandatory. If nothing is explicitly specified for this attribute, the user's nickname is used.

givenName

First name

middleName

displayName

Preferred name

mail

e-mail address

telephoneNumber

homePhone

mobile

pager

facsimileTelephoneNumber

street

l

City of office

st

State of office

postalCode

Postal code of office

c

Country of office

homePostalAddress

Home address

jpegPhoto

Person's picture

o

Organization

title

manager

Employee's supervisor

uid

User ID

userPassword

preferredLanguage

Table 6-11  orclUserV2 Attributes
orclUserv2 attributes Comments

orclIsVisible

A flag to indicate whether the user should be hidden from all but administrators.

orclDisplayPersonalInfo

A flag to indicate whether a user's personal information should be hidden from all but administrators.

orclMaidenName

orclDateOfBirth

orclHireDate

orclDefaultProfileGroup

Default user group for the person

orclActiveStartDate

When account was activated

orclActiveEndDate

when account was (or will be) terminated

orclTimeZone

orclIsEnabled

A flag to indicate whether the user account is active. If not active, the user will not be allowed to log in.

For users who are familiar with the user properties from previous versions of OracleAS Portal, the following table maps the old user properties to the new Oracle Internet Directory attributes.

Table 6-12  Mapping of OracleAS Portal User Properties to Oracle Internet Directory
Previous OracleAS Portal user property inetOrgPerson or orclUserv2 attributes

ID

Not applicable because ID remains a local OracleAS Portal attribute that is linked to the corresponding directory entry by means of a globally unique identifier.

EMPNO

employeeNumber

LAST_NAME

sn

FIRST_NAME

givenName

MIDDLE_NAME

middleName

KNOWN_AS

displayName

EMAIL

mail

WORK_PHONE

telephoneNumber

HOME_PHONE

homePhone

MOBILE_PHONE

mobile

PAGER

pager

FAX

facsimileTelephoneNumber

OFFICE_ADDR(1,2,3)

street

OFFICE_CITY

l

OFFICE_STATE

st

OFFICE_ZIP

postalCode

OFFICE_COUNTRY

c

HOME_ADDR[1,2,3],CITY, STATE,ZIP,COUNTRY

homePostalAddress

IMAGE

jpegPhoto

ORGANIZATION

o

TITLE

title

MANAGER

manager

PASSWORD

userPassword

DISPLAY

orclIsVisible

DISPLAY_PERSONAL_INFO

orclDisplayPersonalInfo

NOTIFICATION_PREFERENCE

orclWorkflowNotificationPref

USER_NAME

orclCommonNickNameAttribute, which is the nickname used in place of the user's full Dn. The full Dn attribute is quite long (cn=name,dc=domain,dc=com), hence it is simpler for users to log in with this nickname. For more information, refer to the documentation on Oracle Internet Directory.

MAIDEN_NAME

orclMaidenName

DATE_OF_BIRTH

orclDateOfBirth

HIREDATE

orclHireDate

SUBSCRIBER_ID

Not applicable because the identity management realm identifier is obtained from the user's identity management realm node.

DEFAULT_GROUP

orclDefaultProfileGroup

6.1.6.2.3 Group Attributes Stored in Oracle Internet Directory

OracleAS Portal, like all other components of Oracle Application Server, relies upon the directory to store group information. All groups in the directory are defined using the following object classes:

Figure 6-3 shows where the OracleAS Portal information for groups is located in the directory's DIT structure.

Figure 6-3 DIT Structure for OracleAS Portal Groups

Text description of cg_sec_gdit.gif follows

Text description of the illustration cg_sec_gdit.gif

The subsequent tables show the various group attributes stored in Oracle Internet Directory:

Table 6-13  groupOfUniqueNames/groupOfNames Attributes
groupOfUniqueNames/groupOfNames (IETF) attributes Comment

cn

The common name of the group, which can be typed into places like the Edit Group field in the Group portlet to locate the group.

description

The text description of the group, which is displayed in lists of values where the group appears.

uniqueMember

A list of the distinguished names (DNs) of all of the members of the group. The member DNs can represent a user or another group.

owner

A list of the DNs of all of the users and groups that have the privilege of administering this group.

Table 6-14  orclGroup Attributes
orclGroup attributes Comment

orclGUID

The globally unique identifier (GUID) for this group.

orclIsVisible

A flag to indicate whether the group is public or private. Private groups only appear in lists of values for their owners. Other users cannot see them.

For users who are familiar with the group properties from previous versions of OracleAS Portal, the following table maps the old user properties to the new Oracle Internet Directory attributes:

Table 6-15  Mapping of OracleAS Portal Group Properties to Oracle Internet Directory
Previous OracleAS Portal group property groupOfUniqueNames or orclGroup attribute

ID

local ID for the group, which can be matched to the orclGUID in the directory by a new locally stored orclGUID.

HIDDEN_GROUP

orclIsVisible

SUBSCRIBER_ID

Subscriber id is no longer needed because the location of the group entry under an identity management realm base indicates the identity management realm.

NAME

Cn

DESCRIPTION

Description

group membership

uniqueMember

OWNER

Owner

6.1.6.2.4 Oracle Internet Directory Cache in OracleAS Portal

To improve performance, OracleAS Portal caches some directory information locally. In particular, OracleAS Portal caches the following:

The majority of the information cached by OracleAS Portal is fairly static (for example, directory connection information). For those items that are more dynamic, such as group memberships and default group, OracleAS Portal relies upon the Directory Synchronized Provisioning agent for updates. OracleAS Portal maintains a directory synchronization subscription in the directory that flags the agent to notify it of any change events that affect OracleAS Portal security (for example, adding or deleting a user from a group).

6.1.6.2.5 User and Group Lists of Values in OracleAS Portal

The User, Group, Portal User Profile, and Portal Group Profile portlets include lists of values for users or groups. These lists of values must be populated with information stored in the directory. By default, the list of values displays the groups contained under the OracleAS Portal group container in the OracleAS Portal DIT structure. You can, however, browse to any group in the tree to which you have access from the list of values.

The groups that are displayed in the list of values for groups depend on the privileges of the user viewing them. For example, if a user views the list of values from the Group portlet, the list only displays those groups that can be edited or deleted by that user.

In some cases, you may encounter problems in rendering these user and group lists of values. You can resolve these problems in one of two ways:

Defining a Common JavaScript Domain for DAS Lists of Values

If you have your directory and OracleAS Portal servers residing in different domains, you must explicitly set the JavaScript domain for OracleAS Portal such that it can resolve user and group lists of values. For example, suppose that your installation has OracleAS Portal configured to use a different Oracle HTTP Server than the DAS. In this situation, you need to have a common domain so that the values can be transferred from the list of values displayed by the DAS to the page displayed by OracleAS Portal.

To create a single domain in this case, do the following:

  1. Login to SQL*Plus as PORTAL.

  2. Run the following SQL script:

    secjsdom.sql <domain_name>
    
    

    where <domain_name> is something like abc.com.

Performing this procedure enables you to run directory lists of values from OracleAS Portal in either Netscape or Microsoft Internet Explorer. For more information about secjsdom.sql, refer to Section C.4, "Using the secjsdom.sql Script".

See Also:

Section 6.3.2.3.4, "Group Search Base Distinguished Name (DN)" for information about choosing where OracleAS Portal searches for groups.

Configuring DAS to Reside on the OracleAS Portal Middle-Tier

In the preceding section, Defining a Common JavaScript Domain for DAS Lists of Values, we described how to create a single domain for DAS lists of values using secjsdom.sql. In some cases, creating a single domain with secjsdom.sql is not sufficient to resolve the JavaScript cross-domain scripting restrictions. In these situations, listed subsequently, you may need to deploy DAS on OracleAS Portal's middle-tier:

To avoid the issues of cross-domain scripting and browser restrictions with support of the common domain directives in JavaScript, you can install DAS directly on the OracleAS Portal middle-tier. In this way, DAS can be used to support the lists of values that need to write values back to the OracleAS Portal forms. Implementing this configuration involves the following high-level steps:

Manually Deploy and Configure DAS on OracleAS Portal's Middle-Tier
  1. Navigate to the MID_TIER_ORACLE_HOME/dcm/bin directory.

  2. Create a new component using the following command:

    MID_TIER_ORACLE_HOME/dcm/bin/dcmctl createcomponent -verbose -debug -ct oc4j 
    -co OC4J_SECURITY
    
    
  3. Start the component by using the following command:

    MID_TIER_ORACLE_HOME/dcm/bin/dcmctl start -verbose -debug -co OC4J_SECURITY
    
    
  4. Deploy the oiddas.ear file using the following command:

    MID_TIER_ORACLE_HOME/dcm/bin/dcmctl deployApplication -debug -verbose 
    -a oiddas -f ORACLE_HOME/ldap/das/oiddas.ear -co OC4J_SECURITY
    
    
  5. Perform the following steps to add the LD_LIBRARY_PATH and DISPLAY environment variables to the opmn.xml file:

    1. Navigate to the MID_TIER_ORACLE_HOME/opmn/conf directory and open opmn.xml in a text editor.

    2. Add the following lines in the OC4J_SECURITY section of opmn.xml:

      For a UNIX environment:

      <environment> 
         <variable id="DISPLAY" value="localhost:0.0"/>
         <variable id="LD_LIBRARY_PATH" value="MID_TIER_ORACLE_HOME/lib"/>
      </environment>
      
      

      For a Windows environment:

      <environment>
         <variable id="PATH" value="MID_TIER_ORACLE_HOME\\bin"/>
      </environment>
      
      

      Replace hostname and MID_TIER_ORACLE_HOME with the appropriate values. Note the following example in the OC4J_SECURITY section of opmn.xml (MS Windows environment) :

      <process-type id="OC4J_SECURITY" module-id="OC4J">
         <environment>
            <variable id="PATH" value="D:\\oracle\\bin"/>
         </environment>
         <module-data>
            <category id="start-parameters">
               .....
               .....
            </category>
         </module-data>
         <start timeout="3500" retry="2"/>
         <stop timeout="120"/>
         <restart timeout="720" retry="2"/>
         <port id="ajp" range="3301-3400"/>
         .....
         .....
         <process-set id="default_island" numprocs="1"/>
      </process-type>
      
      
    3. Navigate to the MID_TIER_ORACLE_HOME/dcm/bin directory.

    4. Save the changes to the repository by using the following command:

      MID_TIER_ORACLE_HOME/dcm/bin/dcmctl updateconfig -verbose -debug 
      -ct opmn
      
      
    5. Restart OPMN by using the following command:

      MID_TIER_ORACLE_HOME/dcm/bin/dcmctl restart -verbose -ct opmn
      
      
    6. Stop and start the OC4J_SECURITY instance by using the following commands:

      MID_TIER_ORACLE_HOME/dcm/bin/dcmctl stop -verbose -debug -ct oc4j  
        -co OC4J_SECURITY
      MID_TIER_ORACLE_HOME/dcm/bin/dcmctl start -verbose -debug -ct oc4j 
        -co OC4J_SECURITY
      
      
    7. Through Oracle Directory Manager, set permissions/grant privilege to the Oracle Application Server instance where OracleAS Portal was installed by adding its DN entry (orclApplicationCommonName=OracleAS_instance_name,cn=IAS Instances,cn=IAS,cn=Products,cn=OracleContext) to the group entry under the DAS application that defines the associated middle-tiers.

      To perform this step, do the following:

    8. Verify that DAS is running by entering following URL in your browser:

      http://midtier_hostname:port_number/oiddas
      
      

      where midtier_hostname is the name of the computer on which the Oracle HTTP Server is running and port_number is the corresponding http port number. This URL should display the DAS home page.

Run secdaslc.sql

After you manually deploy and configure DAS on OracleAS Portal's middle-tier, you need to set the configuration setting that instructs OracleAS Portal to render the DAS list of values links as OracleAS Portal middle-tier URLs rather than using the DAS base URL value from Oracle Internet Directory. You do this step by running secdaslc.sql.


Note:

A prerequisite for this procedure is to have the OracleAS Portal middle-tier properly associated with an Oracle Application Server infrastructure home directory.


  1. From your operating system command prompt, go to MID_TIER_ORACLE_HOME/portal/admin/plsql/wwc and make it your current working directory.

  2. Using SQL*Plus, connect to the OracleAS Portal instance as the PORTAL schema user and run the following command:

    @secdaslc.sql Y
    commit; 
    exit; 
    
    

At this point, OracleAS Portal is configured to invoke DAS lists of values from the OracleAS Portal middle-tier. All other DAS operations will continue to be invoked on the infrastructure instance of DAS. The OracleAS Portal middle-tier based lists of values will not have any issues with cross-domain scripting problems.

6.1.6.3 Relationship Between OracleAS Portal and Oracle Internet Directory

As shown in Figure 6-4, the Oracle Directory Integration Platform provides important services to notify components of user and group change events and synchronize directories.

Figure 6-4 Oracle Directory Integration Platform Synchronization

Text description of cg_sec_dips.gif follows.

Text description of the illustration cg_sec_dips.gif

In the figure, the flow to and from the Oracle Internet Directory has two paths. The first path, labeled Oracle Directory Synchronization Service, illustrates the concept of synchronization. In this case, the Oracle Internet Directory acts as a gateway to some external directory or repository. The synchronization service ensures that changes are coordinated between the Oracle Internet Directory and its connected directories. Whenever a change occurs in one of the directories, a notification must be raised with the Oracle Internet Directory to appropriately reflect the change across all of the affected directories.

The second path, labeled Oracle Directory Provisioning Integration Service, illustrates the concept of provisioning. In provisioning, an application, such as OracleAS Portal, subscribes to changes to certain user or group information. For example, suppose that an administrator removes a user from a group through the DAS. As a result of this change, the user should no longer be allowed to access certain pages in OracleAS Portal. The Oracle Directory Integration Platform must notify OracleAS Portal to update its local cache and immediately prevent the user from accessing the pages to which she no longer should have access.

For provisioning services, components like OracleAS Portal subscribe to provisioning events (for example, deletion of a group) in order to keep their local caches of user and group information synchronized with the central user and group repository in the Oracle Internet Directory. When a change event occurs, all of the components that are subscribed to that change event are notified by the Directory Synchronized Provisioning agent of the Oracle Directory Integration Platform. OracleAS Portal sets the Portal directory synchronization subscription flag in the directory to indicate that it should be notified whenever a subscribed change event takes place. Table 6-16 shows the events to which OracleAS Portal subscribes and the actions it takes when those events occur:

Table 6-16  Directory Synchronized Events Handled By OracleAS Portal
Subscribed event OracleAS Portal action

USER DELETE

The local user profile entry is deleted, resulting in the deletion of the user's privileges. Pages associated with this user are invalidated in OracleAS Web Cache.

USER MODIFY

(orclDefaultProfileGroup)

The default group of the user is changed in the local user profile.

GROUP DELETE

The local group profile is deleted, resulting in the deletion of the privileges assigned to this group. The WWSEC_FLAT$ table is updated accordingly.

GROUP MODIFY

(uniqueMember, member)

The WWSEC_FLAT$ table is updated to reflect membership changes that affect OracleAS Portal.

If the membership changes involve a group being added or deleted from the modified group, the pages associated with the users of the added or deleted group are invalidated in OracleAS Web Cache. The reason for this action is that the security changes might affect what is visible on the page or the access privileges of the page itself.


Note:

OracleAS Portal does not need to subscribe to user and group creation events. The local user profile is created automatically when a new user first logs on or is assigned some privilege that causes the user to be referenced in an access control list of OracleAS Portal. Similarly, a local group profile is created automatically when a new group is first referenced in an access control list.


In order to function properly, OracleAS Portal requires the following for its integration with Oracle Directory Integration Platform:

6.1.6.3.1 Update Subscription Profiles for Groups Based on groupOfNames

By default, groups created in the Oracle Internet Directory by the DAS are based on the IETF object class groupOfUniqueNames. However, there is now support for handling groups created with the object class groupOfNames as well. If your portal has an existing Oracle Directory Integration Platform subscription profile in the Oracle Internet Directory (from 9.0.2), then it would be subscribing to group modifications and deletions based on groups using groupOfUniqueNames. If any existing groups in Oracle Internet Directory are based on the groupOfNames object class you must update the Oracle Directory Integration Platform subscription profile to subscribe to the events for groups based on groupOfNames in addition to groupOfUniqueNames.

If you need to change the subscription profile, we recommend you first delete the old subscription profile with this command:

ptlasst.csh -mode MIDTIER -type DIPUNREG 

And then re-create a new subscription profile with this command:

ptlasst.csh -mode MIDTIER -type DIPREG 

Only perform these operations during periods of downtime or no activity, so that changes pending in the change log are not lost as a result of deleting the old profile and starting the new one.

Details of the MIDTIER mode types DIPREG and DIPUNREG used to create/drop the Oracle Directory Integration Platform subscription profiles are as follows:

DIPREG

ptlasst.csh -i custom -mode MIDTIER -type DIPREG -s <portal_schema> -c <portal_
connect_string> -ldap_h <oid_host> -ldap_p <oid_port> -ldap_d <oid_admin_dn> 
-ldap_w <oid_admin_password> -silent -verbose 

DIPUNREG

ptlasst.csh -i custom -mode MIDTIER -type DIPUNREG -s <portal_schema> -c 
<portal_connect_string> -ldap_h <oid_host> -ldap_p <oid_port> -ldap_d <oid_
admin_dn> -ldap_w <oid_admin_password> -silent -verbose 

The resulting subscription profile will correctly subscribe to modifications and deletions for both types of group.

6.1.6.4 Relationship Between OracleAS Portal and DAS

In addition to querying the directory for user and group information, OracleAS Portal must provide users with the means to add and modify user and group information. To change information in the directory, use the DAS. OracleAS Portal provides links to the delegated administration server for users with the privileges to add and change users and groups.

6.1.6.4.1 Creating and updating information Stored in Oracle Internet Directory

The DAS provides a comprehensive interface for making updates to the directory. Authenticated users who have the appropriate privileges can access the delegated administration server through the User and Group portlets on the Administration tab in OracleAS Portal. To access these portlets, a user must be a member of the OracleDASCreateUser and OracleDASCreateGroup groups, respectively. The PORTAL and PORTAL_ADMIN users are members of both of these groups by default. AUTHENTICATED_USERS may also create groups by default.

6.1.6.4.2 Relationship Between DAS, mod_osso, and the OracleAS Single Sign-On

mod_osso protects URLs behind the OracleAS Single Sign-On environment by making the HTTP server effectively into a partner application. DAS functionality is single sign-on enabled by using mod_osso to get the user's identify from the OracleAS Single Sign-On session.

Figure 6-5 Relationship between DAS, mod_osso, and OracleAS Single Sign-On

Text description of cg_sec_dams.gif follows.

Text description of the illustration cg_sec_dams.gif

mod_osso is a module of the Oracle HTTP Server that is written as a partner application. You can use mod_osso to enable applications, including OC4J applications, for single sign-on. You achieve this by configuring mod_osso with Oracle HTTP Server directives to restrict access to the OC4J application URLs.

DAS is implemented as an OC4J application, which relies on mod_osso to authenticate users attempting access. When a user attempts to access a DAS dialog (for example, a list of users or groups, or the Create User form), mod_osso checks whether the user has been authenticated. mod_osso performs no authorization checks other than checking for authentication. If the user has not been authenticated, mod_osso, which is an OracleAS Single Sign-On partner application, redirects the user's request to OracleAS Single Sign-On. OracleAS Single Sign-On either:

Once the user has been properly authenticated, they are redirected by mod_osso to the requested DAS URL. DAS then becomes accessible to the user and enforces the user's privileges, typically relying on access control items in the Oracle Internet Directory.

DAS URLs

The first request to DAS from a user session in OracleAS Portal is redirected to the OracleAS Single Sign-On so that mod_osso, which acts as a partner application on behalf of DAS, can establish the identity of the user. OracleAS Single Sign-On constructs a URLC token that includes the requested DAS URL. There is about a 2K limit on the length of the URLC token imposed by Internet Explorer. As such, the length of the DAS URL is also limited. In order to provide a seamless integration with DAS, OracleAS Portal includes the URLs of the current portal page and the portal home page within this DAS URL. A typical DAS URL appears as follows:

http://myportal.us.abc.com:7777/oiddas/ui/oracle/ldap/das/group/AppCreateGroupIn
foAdmin?doneURL=https%3A%2F%2Fwebsvr.us.oracle.com%3A5001%2Fportal%2Fpage%3F_
pageid%3D6%2C1%2C6_12%3A6_18%26_dad%3Dportal_9_0_2_6_7%26_schema%3DPORTAL_9_0_2_
6_7&homeURL=https%3A%2F%2Fwebserver.us.abc.com%3A5001%2Fportal%2Fpage%3F_
pageid%3D6%2C1%2C6_12%3A6_18%26_dad%3Dportal_9_0_2_6_7%26_schema%3DPORTAL_9_0_2_
6_7&amp;parentDN=cn%3Dportal_9_0_2_6_
7.s901dev0.portalserver.us.abc.com%2Ccn%3Dgroups%2Cdc%3Dus%2Cdc%3Doracle%2Cdc%3D
com&amp;enablePA=true 

When this URL is included in the URLC token, which is then encrypted for security reasons, the length of the resulting token easily approaches the 2K threshold. If it exceeds this limit, the browser may show an error.

There is no fixed size for the URL. However, if you see browser errors when performing DAS operations, you should consider reducing the size of various parts that comprise the portal URL as this will help ensure that the URL doesn't exceed the 2k limit. For example, limit hostnames to 8 characters or less and DAD names to 6 characters or less.

In the event that you encounter this problem, the work around is to login to DAS first through a shorter URL, such as the Directory Administration link in the Services portlet. Any subsequent access to DAS will then not require SSO redirection, and will succeed.

6.1.6.5 User Portlet


Note:

Only a user who is a member of the OracleDASCreateUser, OracleDASEditUser, or OracleDASDeleteUser privilege groups can see the User portlet. The link to create new users is displayed only to users who are members of the OracleDASCreateUser group.


The User portlet on the Portal tab under Administration enables you to create and update users through DAS. To create a new user, click the Create New Users link in the User portlet. To update information for an existing user, type their user name in the Name field or choose it from the list of values and click Edit. To delete a user, type their user name in the Name field or choose it from the list of values and click Delete.

See Also:

Oracle Internet Directory Administrator's Guide

Figure 6-6 User Portlet

Text description of cg_sec_user.gif follows.

Text description of the illustration cg_sec_user.gif

6.1.6.6 Portal User Profile Portlet


Note:

The Portal User Profile portlet is only visible to users with Manage or Edit privileges for All User Profiles.


To set global user privileges and preferences that pertain specifically to the portal, use the Portal User Profile portlet. To update a user's portal preferences and privileges, type their user name in the Name field or choose it from the list of values. You can set all of the following for the user's profile:

Figure 6-7 Portal User Profile Portlet

Text description of cg_sec_uprf.gif follows.

Text description of the illustration cg_sec_uprf.gif

6.1.6.7 Group Portlet


Note:

Every user can see the Group portlet, but the link to create new groups is displayed only to users who are members of the OracleDASCreateGroup privilege group. Users can only edit or delete a group if they are the group's owner or a member of a group with appropriate access control information (ACI) to edit or delete the group. The following privilege groups are seeded in the Oracle Internet Directory:

  • OracleDASCreateGroup

  • OracleDASEditGroup

  • OracleDASDeleteGroup


The Group portlet on the Portal tab under Administration enables you to create and update user groups through DAS. To create a new group, click the Create New Groups link in the Group portlet. To update information for an existing group, type its name in the Name field or choose it from the list of values and click Edit. To delete a group, type the group name in the Name field or choose it from the list of values and click Delete.

See Also:

Oracle Internet Directory Administrator's Guide

Figure 6-8 Group Portlet

Text description of cg_sec_grp.gif follows.

Text description of the illustration cg_sec_grp.gif

6.1.6.8 Portal Group Profile Portlet


Note:

The Portal Group Profile portlet is displayed to all users, but only users with the Manage or Edit privilege for All Group Profiles, or the owner of a group can edit its profile.


To set global group preferences and privileges that pertain specifically to the portal, you need to use the Portal Group Profile portlet. To update a group's portal preferences and privileges, type the group name in the Name field or choose it from the list of values. You can set all of the following for the group's profile:

Figure 6-9 Portal Group Profile Portlet

Text description of cg_sec_grpr.gif follows.

Text description of the illustration cg_sec_grpr.gif

6.1.6.9 DAS Public Roles

In many cases, it is more efficient to use DAS roles to assign privileges rather than the more granular, per-user approach. When creating users, you might notice a section called Roles Assignment on the Create User page, shown in Figure 6-10.


Note:

In releases prior to 9.0.4, roles were called public groups.


Figure 6-10 OracleAS Portal Create User Page

Text description of cg_sec_crus.gif follows.

Text description of the illustration cg_sec_crus.gif

Roles provide a very convenient mechanism by which users can be created and granted a set of privileges simultaneously. When a check box for a role is checked for a given user, they are granted the designated role upon creation. As an administrator, you can create your own roles and pre-assign any combination of Oracle Internet Directory and OracleAS Portal privileges to them.

6.1.6.9.1 Example: Defining a User Administrator Role

Suppose that you want to create a role with the appropriate privileges for a user administrator. You could create such a role by following these steps:

Step 1: Create a group.

You begin by creating a group in the usual manner:

  1. From Portal Builder (the design time pages), click Administer, if you are not already on the Administer tab.

  2. Click Create New Group in the Group portlet and the Create Group page appears, as shown in the following image.

    Text description of cg_sec_crgr.gif follows.

    Text description of the illustration cg_sec_crgr.gif

  3. Enter the required fields (indicated by asterisks).

  4. On the Create Group page, click Privilege Assignment to go to that section and choose the following privileges, as shown in the following image:

  5. Click Submit.

Step 2: Assign the Manage privilege for all user profiles.

After you create the user administrator group, you need to assign it the Manage privilege for all user profiles. This privilege is the only global privilege that you need to assign to this group for user administration.

  1. From Portal Builder (the design time pages), click Administer, if you are not already on the Administer tab.

  2. From the Portal Group Profile portlet, enter the name of your newly created group and click Edit.

  3. Click Privileges to go to that tab.

  4. Scroll down to the Administration Privileges section, shown in the following image. From the list next to All User Profiles, choose Manage.

    Text description of cg_sec_grap.gif follows.

    Text description of the illustration cg_sec_grap.gif

  5. Click OK.

Step 3: Make the group a role.

Now that you have created a group representing the user administrator role, you need to enable it as a role so it appears in the list of roles on the Create User page.

  1. From Portal Builder (the design time pages), click Administer, if you are not already on the Administer tab.

  2. In the Services portlet, click Directory Administration.

  3. Click Configuration to display that tab.

  4. Click User Entry.

  5. Click Next until you reach Step 5 of 5, Configure Roles, of the wizard, as shown in the following image.

  6. Click Add Role to choose the new group and add it to the list of roles.

    Text description of cg_sec_adgr.gif follows.

    Text description of the illustration cg_sec_adgr.gif

  7. Click Finish. Your group will now appear in the list of public groups on the Create User page.

Step 4: Hide detailed privilege assignment section.

To encourage the usage of roles rather than direct privilege assignment, you can turn off the detailed privilege assignment section of the Create Users page. In order to implement this change, you need to update a configuration entry in the OracleAS Portal repository. This setting stops DAS from displaying the Privilege Assignment section in the Create/Edit User page when it is called from an OracleAS Portal administration page.

  1. Login to the PORTAL schema through SQL*Plus.


    Note:

    The PORTAL schema password is stored in the Oracle Internet Directory and the entry may be viewed by an administrator using the oidadmin utility with the following path under Entry Management:

    OrclResourceName=PORTAL,orclReferenceName=iasdb.myhost.au.oracle.com,cn=IAS Infrastructure Databases,cn=IAS,cn=Products,cn=OracleContext


  2. Invoke the following commands to set the das_enable_pa variable in OracleAS Portal's Oracle Internet Directory configuration preference store.

    $ sqlplus
    ...
    Enter user-name: portal
    Enter password: 
    ...
    SQL> set serverout on
    SQL> exec wwsec_oid.set_preference_value('das_enable_pa', 'N');
    
    PL/SQL procedure successfully completed.
    
    SQL> commit;
    
    Commit complete.
    
    SQL> exit
    ...
    
    
  3. Because the User Portlet is cached in OracleAS Web Cache as well as the OracleAS Portal middle-tier file system cache, you must invalidate the cached version of the portlet before you are done. Updating the configuration parameter changes the behavior of the portlet, but updating the parameter does not invalidate the cache. You can invalidate the cached version of the User Portlet by running secupoid.sql and specifying options to update the cache.

    See Also:

    Oracle Application Server Web Cache Administrator's Guide

Step 5: Validate your changes.

Once you have performed steps 1 through 4, go to the Create User page to verify that your user administrator group appears there. Note how the other OracleAS Portal administrative roles, or groups, are already pre-seeded into the Roles Assignment list on this page.

6.1.7 Security for Portlets

Portlets act as windows on your application, displaying summary information and providing a way to access the full functionality of the application. Portlets expose application functionality directly in your portal or provide deep links that take you to the application itself to perform a task. Since portlets format information for display on a Web page, the underlying application need not be Web enabled to be integrated with OracleAS Portal.

In OracleAS Portal, portlets are managed by providers. A provider is an application that you register with OracleAS Portal. OracleAS Portal supports two types of providers:

Portlet security consists of three major areas of functionality:

In order to make your Web providers truly secure, you need to make sure that they are secured in each of these areas. If you only implement security features for one or two out of three areas, then your providers cannot be considered secure. The effort you expend to secure a Web provider should be proportional to the confidentiality of the data the provider exposes.

6.1.7.1 Authentication

When a user first logs in to OracleAS Portal, they must enter their password to verify their identity before being permitted access. OracleAS Single Sign-On manages the login process. Refer to Section 6.1.7.4, "Single Sign-On" for more information.

6.1.7.2 Authorization

Authorization determines whether a particular user should view or interact with a portlet. There are two types of authorization checks:

6.1.7.3 Communication Security

Authentication and authorization are important components of securing your Web providers. They do not, however, check the authenticity of messages being received by a provider and are therefore not suitable on their own for securing access to a provider. If the communication is unsecured, someone could imitate OracleAS Portal and fool the Web provider into returning sensitive information.

Communication security focuses on securing communications between OracleAS Portal and a Web provider. These methods do not apply to database providers, which execute within the portal database. There are three types of communication security:

6.1.7.3.1 Portal Server Authentication

Portal Server Authentication restricts access to a provider to a small number of recognized machines. This method compares the IP address or the hostname of an incoming HTTP message with a list of trusted hosts. If the IP address or hostname is in the list, the message is passed to the provider. If not, it is rejected before reaching the provider.

6.1.7.3.2 Message Authentication

Message authentication works by appending a checksum based on a shared key to provider messages. When a message is received by the provider, the authenticity of the message is confirmed by calculating the expected value of the checksum and comparing it with the actual value received. If the values are the same, the message is accepted. If they are different the message is rejected without further processing. The checksum includes a time stamp to reduce the chance of a message being illegally recorded in transit and resent later.

6.1.7.3.3 Message encryption

Message encryption relies on the use of the HTTPS protocol for communication between the provider and OracleAS Portal. Messages are strongly encrypted to protect the data therein. While encryption provides a high level of security, it also of necessity impacts performance.

6.1.7.4 Single Sign-On

Portlets act as windows into an application by displaying a summary of content and a method for accessing the full functionality of the application. Portlets can expose application functionality directly in the portal or provide deep links into the application itself to perform a task.

If the application is not confidential (that is, public), then users need not be authenticated to see and use it or its associated portlets. For more restricted applications, you need to authenticate the user who is accessing the application:

6.1.7.4.1 Partner Application

A partner application shares the same OracleAS Single Sign-On as OracleAS Portal for authentication. Sharing OracleAS Single Sign-On instances means that when a user is already logged into OracleAS Portal, their identity can be asserted to the partner application without logging in again.

Partner applications tightly integrate with OracleAS Single Sign-On. When a user attempts to access a partner application, the partner application delegates the authentication of the user to OracleAS Single Sign-On. Once authenticated with a valid username and password, a user need not provide a username or password when accessing other partner applications that share the same OracleAS Single Sign-On instance. OracleAS Single Sign-On determines that the user was successfully authenticated and indicates successful authentication to the other partner applications.

Partner application providers expose portlets that integrate a partner application's content with OracleAS Portal. The partner application provider trusts OracleAS Portal to authenticate the user on the provider's behalf. This relationship is possible because OracleAS Portal is, itself, a partner application.

Partner application providers must trust OracleAS Portal to authenticate the user in this way because the provider cannot perform the authentication itself. Authenticating the user directly requires the provider to redirect the browser to OracleAS Single Sign-On and provide success and failure URLs. This method is not possible due to the provider architecture. The primary reason for it is that the authentication occurs in response to an API call from OracleAS Portal to the provider. OracleAS Single Sign-On cannot imitate that call upon successful authentication to the initSession()/dologin() method to complete its normal processing.

Authentication of users in partner applications differs from conventional applications. Partner applications delegate user authentication to OracleAS Single Sign-On. If the user has not been authenticated, OracleAS Single Sign-On displays a login page prompting the user to enter a username and password. The login page submits the username and password back to tOracleAS Single Sign-On.

If successfully authenticated, OracleAS Single Sign-On creates a special cookie containing information about the user. For security, OracleAS Single Sign-On encrypts the contents of the cookie. The cookie is sent back to the user's browser but is scoped such that only OracleAS Single Sign-On can access it. It is not passed to any other listeners. After creating the cookie, OracleAS Single Sign-On redirects the Web browser to the success URL specified by the partner application. At this point, the partner application creates an application session cookie which contains information the application needs to reestablish the session later. The contents may be encrypted using the Single Sign-on SDK. Upon making subsequent requests to the partner application, it detects the presence of the partner application session cookie and from it knows that the user is already authenticated.

If the user later accesses another partner application, that application looks for its application specific session cookie. If the cookie is not found, the application redirects the request to OracleAS Single Sign-On as described previously. This time OracleAS Single Sign-On detects the presence of the user's OracleAS Single Sign-On cookie. This cookie indicates that the user is already authenticated and OracleAS Single Sign-On redirects the browser to the success URL of the second partner application without prompting the user for credentials again. At this point, the partner application creates its own application specific session cookie. To secure the application session cookies, the content may be encrypted using the Single Sign-On SDK.

Advantages

Disadvantages

Implementation Techniques

You make an application a partner application through either of the following mechanisms:

mod_osso

mod_osso is a general purpose Oracle HTTP Server module and a partner application of OracleAS Single Sign-On. It uses OracleAS Single Sign-On to do the authentication. The module does all the communication and handling of cookies between the Oracle HTTP Server and OracleAS Single Sign-On. If mod_osso is configured to protect the URLs of a Web application, then the application effectively becomes a partner application.

OracleAS Portal is also a partner application and uses OracleAS Single Sign-On to authenticate users. Provided OracleAS Portal and mod_osso use the same OracleAS Single Sign-On instance, the user can access either the Web application or OracleAS Portal by logging into either one, that is, they need only login once to be able to access both the Web application and OracleAS Portal.

Advantages

Disadvantages

Single Sign-On SDK

The Single Sign-On SDK enables programmers to integrate their application with OracleAS Single Sign-On. This SDK consists of a number of database packages that communicate with OracleAS Single Sign-On when an application wants to authenticate a user. These packages make an application a partner application. It also includes methods to encrypt/decrypt information, which are used to secure information stored in the application cookie. The Single Sign-On SDK also has Java class wrappers to the PL/SQL packages, which enable Java applications to become either partner or external applications.

OracleAS Portal is a partner application and uses OracleAS Single Sign-On to authenticate users. Provided OracleAS Portal and the Single Sign-On SDK are configured to use the same OracleAS Single Sign-On instance, the user can access either OracleAS Portal or the application by logging into either one, that is, they need only login once to be able to access both the Web application and OracleAS Portal.

Advantages

Disadvantages

6.1.7.4.2 External Application

An External Application is an application that uses a different authentication mechanism than OracleAS Portal. The application may use a different instance of OracleAS Single Sign-On than the used by OracleAS Portal or some other authentication method. In either case, OracleAS Single Sign-On stores user name mappings, passwords, and any other required credentials to authenticate the user in each external application. When a user is already logged into OracleAS Portal, they will be logged into the external application without having to type in their username or password.

Applications that manage their own authentication of users can be loosely integrated with OracleAS Single Sign-On by registering as external applications. An external application can be exposed as a provider using the Oracle Application Server Portal Developer Kit so that it may be accessed from a portlet on a page. External application providers are only available to Web providers.

See Also:

For more information about the External Applications portlet, see Oracle Application Server Portal User's Guide.

When a previously authenticated user accesses an external application for the first time, OracleAS Single Sign-On attempts to authenticate the user with the external application. The authentication is performed by submitting an HTTP request that combines the registration information and the user's username and password for the application. If the user has not yet registered their username and password for the external application, OracleAS Single Sign-On prompts the user for the required information before making the authentication request. When a user supplies a username and password for an external application, OracleAS Single Sign-On maps the new username and password to the user's OracleAS Portal username and stores them. The next time the user needs to access the external application the stored credentials are used.

Advantages

Disadvantages

6.1.7.4.3 No Application Authentication

In this case, the provider trusts the portal sending the requests. The provider can determine if the user is logged in and the portal user name, but the application has not authenticated the user.

Advantages

Disadvantages

6.1.7.5 Access Control Lists

When you login to OracleAS Portal, OracleAS Single Sign-On authenticates you. OracleAS Portal then uses Access Control Lists (ACLs) to determine if you are authorized to view each piece of content, including providers and portlets. If you do not belong to a group that has been granted a specific privilege, OracleAS Portal prevents you from performing the actions associated with that privilege.

ACLs are managed by the following:

6.1.7.5.1 Advantages

6.1.7.5.2 Disadvantages

ACLs are applied at the provider or portlet level. You cannot vary the security rules for a portlet depending on the portal page on which the portlet is placed.

6.1.7.6 Programmatic Portlet Security

You can implement portlet security methods within a provider to verify that given users may access portlet instances. These security methods work at the portlet level, that is, each portlet may have its own user access control. By implementing access control methods in the provider, content may only be retrieved from a portlet if the user's credentials pass the authorization logic. If you do not implement portlet security methods in the provider, any username may be passed in, even a fictitious, unauthenticated one.

A provider can implement two portlet security methods:

These methods have access to the following information about authorization level:

Portlets can also access the OracleAS Portal user privileges and group memberships:

6.1.7.6.1 Advantages

With portlet security methods, you can have a portlet produce different output depending on the user's level of authorization.

6.1.7.6.2 Disadvantages

Most security manager implementations use the authorization level or some other user specific element in an incoming message. A check of this type could be bypassed by an entity imitating OracleAS Portal.

6.1.7.7 OracleAS Portal Server Authentication

One way you can prevent unauthorized access to providers is to restrict access to the provider to known client machines at the server level. This method goes some way towards defending against denial of service attacks.

In the Oracle HTTP Server, you can permit or deny directives in the httpd.conf file based on hostnames or IP addresses. If hostnames are used as discriminators, the server needs to look them up on its Domain Name Server, which incurs overhead to the processing of each request. Using the IP address prevents this added overhead, but the IP address may change without warning.

6.1.7.7.1 Advantages

6.1.7.7.2 Disadvantages

6.1.7.8 Message Authentication

The Oracle Application Server Portal Developer Kit supports message authentication to limit access to a specified provider instance or group of provider instances. A provider is registered with a secret shared key known only to the Portal and provider administrators.

An OracleAS Portal instance sends a digital signature, calculated using a Hashed Message Authentication Code (HMAC) algorithm, with each message to a provider. A provider may authenticate the message by checking the signature with its own copy of the shared key. This technique may be used in SSL communication with a provider instead of client certificates.

An OracleAS Portal instance calculates a signature based on user information, a shared key, and a time stamp. The signature and time stamp are sent as part of the SOAP message. The time stamp is based on UTC (coordinated universal time, the scientific name for Greenwich Mean Time) so that time stamps can be used in messages between computers in different time zones.

When the provider receives this message it will generate its own copy of the signature. If the signatures agree, it will then compare the message time stamp with the current time. If the difference between the two is within an acceptable value the message is considered authentic and processed accordingly.

A single provider instance cannot support more than one shared key. Multiple keys could cause security and administration problems if several clients sharing a provider use the same key. For instance, if one copy of the shared key is compromised in some way, the provider administrator has to create a new key, distribute it to all of the clients, and the clients must then update their provider definition. The way around this issue is to deploy different provider services, specifying a unique shared key for each service. Each provider service has its own deployment properties file so that each service is configured independently of the others. The overhead of deploying multiple provider services within the same provider adapter is relatively small.

If a provider does not have an OracleAS Web Cache in front of it, the use of the same signature cookie over the lifetime of a provider session means you must trade off between performance and the security provided by authenticating the requests. The signature cookie value is calculated only once after the initial SOAP request establishes the session with the provider. The shorter the provider session timeout, the more often a signature will be calculated to provide greater security against an illegal show request. However, the SOAP request required to establish a session takes more time.

In a provider that uses OracleAS Web Cache to cache show request responses, you make a similar trade-off. Cached content is secured in the sense that incoming requests must include the signature cookie to retrieve the cached content, but caching content for an extended period of time leaves the provider open to illegal show requests.

The signature element provides protection against interception and the resending of messages, but it does nothing to prevent the interception and reading of message contents. Messages are still transmitted in plain text. If you are concerned about the content of messages being read by unauthorized people, you should use message authentication in conjunction with SSL.

6.1.7.8.1 Advantages

Message authentication ensures that the message received by a provider comes from a legitimate OracleAS Portal instance.

6.1.7.8.2 Disadvantages

6.1.7.9 HTTPS Communication

Normal communication between OracleAS Portal and a provider uses HTTP, a network protocol that transmits data as plain text using TCP as the transport layer. An unauthorized agent can read an intercepted message. HTTPS uses an extra security layer (SSL) on top of TCP to secure communication between a client and a server.

Each entity (for example, an OracleAS Web Cache instance) that receives a communication using SSL has a freely available public key and a private key known only to the entity itself. Any messages sent to an entity are encrypted with its public key. A message encrypted by the public key may only be decrypted by the private key so that even if a message is intercepted it cannot be decrypted.

Certificates are used to sign communications, thereby ensuring that the public key does in fact belong to the correct entity. These certificates are issued by trusted third parties known as Certification Authorities (CA), for example, Verisign. They contain an entity's name, public key, and other security credentials. They are installed on the server end of an SSL communication to verify the identity of the server. Client certificates may also be installed on the client to verify the identity of a client, but this feature is not yet supported OracleAS Portal. Message authentication may be used instead.

Oracle Wallet Manager is the application used to manage public key security credentials. It is used to generate public/private key pairs, create a certificate request to a CA, and then install the certificate on a server.

6.1.7.10 Configuration of SSL

When a provider is registered from an OracleAS Portal instance, only one URL is entered. HTTP or HTTPS may be used, but not a combination of both.

Each port on each server that may be used to receive SSL messages must have a server side certificate installed, that is, the OracleAS Web Cache instance (if any) in front of the Web provider and the server which hosts the provider. The certificate installed on a server port ensures that communication between two points is encrypted, but it does not authenticate the source of a message. Message authentication should be used as well to fully secure communication between a trusted OracleAS Portal instance and a provider.

See Also:

6.1.7.10.1 Advantages

6.1.7.10.2 Disadvantages

More On Portal Center

You'll find additional information on security for your Web providers in the papers:

on Portal Center, http://portalcenter.oracle.com. Click the Search icon in the upper right corner of any Portal Center page.

6.1.8 Securing the OmniPortlet and Simple Parameter Form

The OmniPortlet and simple parameter form are located under Portlet Builders in the Portlet Repository. By default, any user who has the privilege to create pages can add these portlets to a page and define them. Furthermore, a user who only has view privileges on the page can define these portlets by clicking the Define OmniPortlet or Define Simple Parameter Form.

To control this kind of access, you can activate a privilege check. Once you perform the procedure that follows, the display of these portlets depends upon the privileges granted to the user or user group from the Access tab. To perform any operations on the portlet, the user or user group needs at least the Execute privilege.

  1. Login to OracleAS Portal.

  2. Click the Navigator link.

  3. Click the Portlet Repository page group.

  4. Click Pages.

  5. Next to the Portlet Builders page, click Edit.

  6. Click Page: Access in the upper left of the page.

  7. Select Enable Item Level Security.

  8. Click OK.

  9. Click the Edit Item icon next to OmniPortlet.

  10. Click the Access tab.

  11. Check Define Portlet Access Privileges.

  12. Click Apply and note the appearance of the Grant Access and Change Access sections of the page.

  13. Use the Grant Access section to assign privileges to users and groups as desired.

  14. Click OK.

  15. Repeat steps 9 through 14 for the Simple Parameter Form.

6.1.9 Securing the Web Clipping Provider

Appendix I, "Administering Web Clipping" describes the administrative tasks that must be performed before you are able to use the Web Clipping Provider. The following sections describe some security configuration options that you should implement to enable the Web Clipping Provider to access trusted sites and encrypt the channel between itself and the database:

6.1.9.1 Adding Certificates for Trusted Sites

When a user navigates to a secure site, the Web site typically returns a certificate, identifying itself to the user when asking for secure information. If the user accepts the certificate, the certificate is placed into the list of trusted certificates of the browser so that a secure channel can be opened between the browser and that server. Like a Web browser, the Web Clipping Provider behaves as an HTTP client to external Web sites. In order for the Web Clipping Provider to keep track of trusted sites, it makes use of a file that stores the certificates of those sites, namely the ca-bundle.crt file.

The shipped ca-bundle.txt is an exported version of the trusted server certificate file from Oracle Wallet Manager. The default trusted server certificate in Oracle Wallet Manager does not cover all possible server certificates that exist on the Web. For this reason, when a user navigates to a secure server using HTTPS, the user may get an SSL Hand-shake failed exception in the Web Clipping Studio. To solve this problem, the ca-bundle.crt file needs to be augmented with new trusted sites that are visited. As a Portal Administrator, you must do the following to extend the shipped ca-bundle.crt file:

  1. Use a browser (preferably Internet Explorer) to download the root server certificate from each external HTTPS Web site in BASE64 format that is visited, and is missing from the trusted certificate file.

  2. Use Oracle Wallet Manager to import each certificate.

  3. Export the trusted server certificates into a file and replace the ca-bundle.crt file with that file.

More On OTN

For more information about Oracle Wallet Manager, see Chapter 17 "Using Oracle Wallet Manager" in Oracle Advanced Security Administrator's Guide in the Oracle9i Release 2 (9.2) documentation section on the Oracle Technology Network, http://otn.oracle.com.

6.1.9.2 Configuring Oracle Advanced Security for the Web Clipping Provider

The Web Clipping Provider can use Oracle Advanced Security Option (ASO) to secure and encrypt the channel between itself (at the middle-tier) and the database that hosts the Web Clipping Repository. As ASO is a feature available only on Oracle Application Server Enterprise Edition, or as an add-on option to the Standard Edition, this feature is disabled by default. To enable it, you must go to the Web Clipping Provider test page at

http://<host>:<port>/portalTools/webClipping/providers/webClipping

Under the Provider Configuration section, in the Setting column, there is a Web Clipping Repository field. Click its corresponding Edit link in the Actions column. In the Repository Settings section of the Edit Provider: webClipping page, select the enable (secure database connections) option in the Advanced Security Option field, then select OK to save the settings and return to Web Clipping Provider test page.

In addition, you must set the following ASO configuration parameters in the sqlnet.ora file to ensure that the database connections created between the Web Clipping Provider and the database hosting the Web Clipping Repository are using ASO. See the Oracle Advanced Security Administrator's Guide for the list of values to use as all possible combinations of parameters are described in detail.

6.1.10 Securing the Federated Portal Adapter

The Federated Portal Adapter is a component of OracleAS Portal that allows portal instances to share their portlets through the Web portlet interface. For example, suppose that a user displays a page in one portal instance that contains a portlet whose source resides on another portal instance. When the Federated Portal Adapter on the remote portal receives the request for the portlet, it starts a session for the user on the remote portal. The portlet can then be run from the remote portal instance by the user. This scenario has a couple of security implications:

More On Portal Center

You'll find additional information in the article "How to Add Remote Portlets Using the Federated Portal Adapter," on Portal Center, http://portalcenter.oracle.com. Click the Search icon in the upper right corner of any Portal Center page.

6.1.11 Securing OraDAV

WebDAV (World Wide Web Distributed Authoring and Versioning) is the IETF's standard for collaborative authoring on the Web. It defines a set of extensions to HTTP that facilitates collaborative editing and file management between users located remotely from each other on the Internet.

OraDAV, Oracle's implementation of WebDAV, is the mechanism used by the Oracle HTTP Server to communicate with WebDAV clients. OraDAV enables your users to connect to OracleAS Portal using their WebDAV clients. In terms of security, accessing OracleAS Portal through WebDAV presents two security issues for you to consider:

6.1.11.1 Session Cookie Expiration

The OraDAV configuration parameter, ORACookieMaxAge, specifies, in seconds, the length of time for which the DAV client should retain the cookie. The default value is 28800 (that is, 8 hours).

ORACookieMaxAge can be changed in Oracle Enterprise Manager or by directly editing it in the oradav.conf file located in MID_TIER_ORACLE_HOME/Apache/oradav/conf. If you choose to manually change the file, you must synchronize the changes with Dynamic Configuration Management. Once the change has been made in the configuration file, you need to restart the Oracle HTTP Server to have the changes take effect in the runtime system:

cd MID_TIER_ORACLE_HOME/dcm/bin
./dcmctl shell
- dcmctl> updateConfig -ct ohs

After you exit the dcmctl shell, execute the following command from MID_TIER_ORACLE_HOME\opmn\bin to restart the Oracle HTTP Server:

opmnctl restartproc type=ohs


Note:

Not all WebDAV clients use cookies. Some perform their authentication on each request using HTTP basic authentication. A client may choose to record the user name and password for the duration of that WebDAV client session and thus only need to prompt the user once for their credentials. In either case, though, this behavior results in a slower response time from OracleAS Portal because every request from such clients must be authenticated, requiring added communication with the Oracle Internet Directory.


See Also:

Oracle HTTP Server Administrator's Guide

6.1.11.2 SSL and OraDAV

Access to OracleAS Portal through OraDAV using SSL was not certified for Oracle Application Server Release 2 (9.0.2). In Release 2 (9.0.4), SSL access is certified.

6.2 Configuring OracleAS Security Framework for OracleAS Portal

This section describes considerations for:

6.2.1 Configuring OracleAS Security Framework Options for OracleAS Portal

For OracleAS Portal, the main consideration when configuring the OracleAS Security Framework is how to properly configure SSL. For a full description of SSL configuration for OracleAS Portal, refer to Section 6.3.2.1, "Configuring SSL for OracleAS Portal".

6.2.2 Configuring Oracle Identity Management Options for OracleAS Portal

As you configure OracleAS Portal for security, you should consider the following topics related Oracle Identity Management:

6.2.2.1 Setting the Appropriate Naming and Nickname Attributes

When deciding on the Directory Information Tree structure and the setting of the Oracle Context parameters for your Oracle Identity Management Infrastructure, you should consider making the naming attribute different from the nickname attribute. The naming attribute is used for the first attribute in the entry's Distinguished Name. By contrast, the nickname attribute holds the OracleAS Single Sign-On user name.

For OracleAS Portal to properly support renaming users by changing the value of the nickname attribute in the Oracle Internet Directory, the nickname attribute must be different than the naming attribute. By keeping the two separate, the Distinguished Name of the user's entry in the Oracle Internet Directory remains unchanged even when the value of the nickname attribute changes.

See Also:

Oracle Identity Management Concepts and Deployment Planning Guide

6.2.2.2 Configuring the Portal Administrator for Single Sign-On Administration

In previous releases of OracleAS Portal, the super user, PORTAL, was able to perform OracleAS Single Sign-On administration. With OracleAS Portal Release 9.0.4, the ability to perform OracleAS Single Sign-On administration out of the box is removed. The rationale for this change is that in enterprise settings it is not necessarily appropriate for an OracleAS Portal administrator to have permissions to perform Oracle Internet Directory and OracleAS Single Sign-On administration. Much like the discussion in the previous section, regarding the roles of the centralized Oracle Identity Management Infrastructure administrator and the departmental OracleAS Portal administrator, it may be inappropriate for the OracleAS Portal administrator to have the permissions to perform OracleAS Single Sign-On administration.

If you need to allow the OracleAS Portal account to perform OracleAS Single Sign-On administration, you need to explicitly give the user the privilege. This procedure can be done for each Identity Management Realm, or at the root Oracle Context level.

See Also:

6.3 Configuring OracleAS Portal Security

This section describes configuration considerations for OracleAS Portal.

6.3.1 Configuring OracleAS Portal Security Options

When you install OracleAS Portal, the installation process installs some default schemas of which you need to be aware.

OracleAS Portal Default Schemas

Table 6-17 describes the schemas created by default when OracleAS Portal is installed.

Table 6-17  Default OracleAS Portal Schemas
Schema Description

PORTAL

Contains the OracleAS Portal database objects and code. This schema also represents the proxy user account that mod_plsql uses to connect to the database through the credentials provided in the corresponding DAD.

To execute Web requested procedures, mod_plsql uses N-Tier authentication to connect to the schema to which the lightweight user accounts are assigned (by default, PORTAL_PUBLIC). As shown in Figure 6-11, access to the database of the portal user is proxied through the single schema user. By default, this entry is named something like portal.iasdb.hostdomain.com.

The default name for this schema in a standard OracleAS Portal installation is PORTAL. If you want to give it another name, you must perform a custom installation.

PORTAL_PUBLIC

Is the schema that all lightweight users are mapped to by default. All procedures publicly accessible through the Web are granted execute to PUBLIC, which makes them accessible through this schema.

In a standard OracleAS Portal installation, this schema is named PORTAL_PUBLIC. If you want to give it another name, you must perform a custom installation.

PORTAL_DEMO

Is created to hold some demonstration code. The installation of this schema is optional.

PORTAL_APP

Is used for external JSP application authentication.

Figure 6-11 N-Tier Authentication By User Proxy

Text description of cg_sec_ntie.gif follows.

Text description of the illustration cg_sec_ntie.gif

See Also:

Oracle Application Server 10g mod_plsql User's Guide

6.3.2 Configuring Options for OracleAS Security Framework

When configuring OracleAS Portal, you should consider the following options that leverage the OracleAS Security Framework.

6.3.2.1 Configuring SSL for OracleAS Portal

The sections that follow provide an overview of the most common SSL configurations for OracleAS Portal and describe the procedures necessary to implement them:

6.3.2.1.1 Overview of SSL Configurations

OracleAS Portal uses a number of different components (such as the Parallel Page Engine, Oracle HTTP Server, and OracleAS Web Cache) each of which may act as a client or server in an HTTP communication. As a result, each component in OracleAS Portal's middle-tier must be configured individually for the protocols of HTTPS rather than HTTP.

Interacting with OracleAS Portal involves a number of distinct, "network hops." These include:

SSL Usage Restriction

Internal and external JSPs do not work with the Parallel Page Engine in a partial SSL configuration mode. They will work when SSL is used throughout OracleAS Portal or when SSL is implemented externally with a load balancing router. As a result, you should only use JSPs with the SSL configurations described in Section 6.3.2.1.2, "SSL to OracleAS Single Sign-On", Section 6.3.2.1.4, "SSL Throughout OracleAS Portal", and Section 6.3.2.1.5, "External SSL with Non-SSL Within Oracle Application Server".

6.3.2.1.2 SSL to OracleAS Single Sign-On

Figure 6-12 Secured Connection to OracleAS Single Sign-On

Text description of cg_sec_ss11.gif follows.

Text description of the illustration cg_sec_ss11.gif

If any connection should be secured with SSL, it is the connection between the browser and OracleAS Single Sign-On. The password should be protected by SSL in transit between the browser and OracleAS Single Sign-On. For at least a minimal level of security, you should configure your installation with this option. All of the subsequent SSL configurations assume that you have configured SSL for OracleAS Single Sign-On.

To configure this option, refer to Enabling SSL in Chapter 9, Advanced Configurations, of the Oracle Application Server Single Sign-On Administrator's Guide. If you are going to configure OracleAS Single Sign-On behind a reverse proxy server, you should refer to Deploying OracleAS Single Sign-On with a Proxy Server in Chapter 9, Advanced Configurations, of the Oracle Application Server Single Sign-On Administrator's Guide.


Note:

In the previously described configuration of SSL, you must re-register the OracleAS Single Sign-On middle-tier partner application. Since the OracleAS Single Sign-On middle-tier partner application is still non-SSL, you must re-register it as non-SSL. Therefore, the re-registration of mod_osso needs to specify the non-SSL URL of the OracleAS Single Sign-On middle-tier for the mod_osso_url parameter to ossoreg.jar.

Refer to the section titled "Registering mod_osso" in Chapter 4 of the Oracle Application Server Single Sign-On Administrator's Guide for more information.


After enabling SSL on OracleAS Single Sign-On following the steps listed in the Oracle Application Server Single Sign-On Administrator's Guide, you must complete the following configuration tasks on OracleAS Portal:

Re-registering the OracleAS Portal partner application

After OracleAS Single Sign-On is SSL-enabled, all OracleAS Single Sign-On partner applications need to be re-registered so that the updated SSL login URL is obtained by each partner application for subsequent authentication requests.

To re-register the OracleAS Portal partner applications, invoke OPCA with ptlasst.csh (on the OracleAS Portal middle-tier). On MS Windows, you use ptlasst.bat.

For example:

MID_TIER_ORACLE_HOME/assistants/opca/ptlasst.csh -i typical -mode MIDTIER -type 
SSO -host portal_site_name -port portal_site_port

where:

portal_site_name is the hostname.domain of the portal middle-tier.

portal_site_port is the OracleAS Web Cache listen port or the reverse proxy listen port that the browser addresses.


Note:

If you have multiple virtual hosts configured in OracleAS Portal, you will need to re-register each of the virtual hostnames individually using the preceding command, replacing the portal_site_name accordingly for each virtual hostname.


Setting the OracleAS Single Sign-On Query Path URL

OracleAS Portal maintains the URL prefix of OracleAS Single Sign-On, which accesses certain information through HTTP calls from the database using the UTL_HTTP package. These calls must be done through HTTP rather than HTTPS. As a result, even if OracleAS Portal and OracleAS Single Sign-On are configured to use HTTPS, you must still have access to an HTTP port on OracleAS Single Sign-On to support these interfaces. The calls made across this interface are required for the following reasons:

To set this URL prefix, the OracleAS Single Sign-On Query Path URL, perform the following steps:

  1. Log on to OracleAS Portal as the portal administrator.

  2. Click the Administer tab.

  3. Click the Portal tab.

  4. Click Global Settings in the Services portlet.

  5. Click the SSO/OID tab.

  6. Edit the Query Path URL Prefix under the SSO Server Settings. Enter a URL for OracleAS Single Sign-On, for example:

    http://infra.domain.com:7777/pls/orasso
    

Conditionally Updating the DAS URL Base Entry in Oracle Internet Directory

After enabling the infrastructure tier's Oracle HTTP Server for SSL, you were asked to re-register all partner applications, which includes mod_osso on the infrastructure tier. You have the option of accessing DAS over non-SSL or SSL. The base URL for DAS is stored in Oracle Internet Directory, and this determines the URL that other applications render when providing links to DAS functionality.

If you want DAS accessed over SSL, then the re-registration of mod_osso needs to specify an SSL URL for the mod_osso_url parameter to ossoreg.jar. Refer to the section titled "Registering mod_osso" in Chapter 4 of the Oracle Application Server Single Sign-On Administrator's Guide for more information.

If you decide that you want to access DAS over SSL, then the orcldasurlbase attribute in the cn=OracleContext,cn=Products,cn=DAS,cn=OperationURLs entry needs to be updated in Oracle Internet Directory to reflect this fact. This attribute value is then used by OracleAS Portal for generating subsequent DAS URLs. This procedure assumes that the Oracle HTTP Server on the infrastructure tier is also listening on an HTTPS port.

  1. For this step, you need Oracle Directory Manager (Integrated Management Tools : Oracle Directory Manager on Windows, or INFRA_ORACLE_HOME/bin/oidadmin on UNIX). Run the Oracle Directory Manager and log in as cn=orcladmin.

  2. Navigate to Entry Management, cn=OracleContext > cn=Products > cn=DAS > cn=OperationURLs.

  3. Update the orcldasurlbase entry to reflect the HTTPS port being used on the infrastructure tier, that is, https://infrahost:port.

Once the entry is updated in Oracle Internet Directory, you must force a refresh of the OracleAS Portal cache, which holds the relevant Oracle Internet Directory information.

  1. Logon to OracleAS Portal as a user with administrator privileges.

  2. Go to the Builder.

  3. Click the Administration tab.

  4. From the Portal tab, open Global Settings and navigate to the SSO/OID tab.

  5. Scroll to the bottom of the page.

  6. Check Refresh Cache for the Oracle Internet Directory parameters.

  7. Click Apply.

  8. The page should refresh with the appropriate value in the DAS Host Name field.

Re-registering the Oracle HTTP Server Partner Application

You now need to register the secured request with OracleAS Single Sign-On by configuring it as a partner application. The script ossoreg performs this registration. ossoreg is located on the middle-tier in MID_TIER_ORACLE_HOME/sso/lib.

  1. Ensure that you have your environment configured properly to run ossoreg:

    ORACLE_HOME=MID_TIER_ORACLE_HOME
    LD_LIBRARY_PATH=ORACLE_HOME/lib 
    
    
  2. Run ossoreg. The following example illustrates the usage of ossoreg.

    MID_TIER_ORACLE_HOME/jdk/bin/java -jar 
      MID_TIER_ORACLE_HOME/sso/lib/ossoreg.jar -site_name abc.com -mod_osso_url
      http://www.abc.com:7777 -config_mod_osso TRUE -oracle_home_path 
      MID_TIER_ORACLE_HOME   -u install_user -config_file 
      MID_TIER_ORACLE_HOME/Apache/Apache/conf/osso/osso.conf 
      -admin_info cn=orcladmin
    
    

Refer to the section titled "Registering mod_osso" in Chapter 4 of the Oracle Application Server Single Sign-On Administrator's Guide for more information.

At this point, configuration is complete for SSL communication to OracleAS Single Sign-On.

6.3.2.1.3 SSL to OracleAS Web Cache

Figure 6-13 Secured Connection to OracleAS Web Cache

Text description of cg_sec_ss12.gif follows.

Text description of the illustration cg_sec_ss12.gif

Once you secure the OracleAS Single Sign-On communication, the next option is to secure the communication to the front door of OracleAS Portal, which is OracleAS Web Cache. In this configuration, OracleAS Web Cache can forward the request to the Oracle HTTP Server, which is acting as the OracleAS Portal middle-tier, using HTTP for better performance. Similarly, the Parallel Page Engine requests for portlet content that loop back to OracleAS Web Cache can request the content using HTTP.

Creating a Wallet

The various components of OracleAS Portal use the Oracle Wallet Manager to store the certificates for the secure communication. The first step in this process is to obtain a certificate from a Certificate Authority (for example, Verisign, GTE CyberTrust).

Obtaining a Certificate

In order to obtain a digital certificate from the relevant signing authority, you submit a Certificate Request (CR) uniquely identifying your server to the signing authority.

  1. Open the Oracle Wallet Manager in the middle-tier MID_TIER_ORACLE_HOME. On UNIX, enter owm from the command prompt. On Windows, invoke Oracle Wallet Manager from the Start menu.

  2. Choose Wallet > New.


    Note:

    This action may result in a prompt if the default wallet directory does not exist. You may choose to take the default, Yes, and create the directory or not. If you choose to create the directory, you must confirm that the operating system account owning the Oracle Wallet Manager has the appropriate write permissions to the parent directory.


    On UNIX the wallet is stored in the following location by default:

    /etc/ORACLE/WALLETS/<Account Name creating the Wallet>
    
    

    On MS Windows the wallet is stored in the following location by default:

    \Documents And Settings\<Account Name creating the Wallet>\ORACLE\WALLETS
    
    
  3. Create a password for the wallet.

  4. Click Yes to accept the option to create a CR.

  5. Fill out the Certificate Request dialog, shown in the following image, with details that uniquely identify your server. Provide the server name as the value of Common Name, for example, www.abc.com.


    Note:

    In an installation where the middle-tier components reside on one machine, you can share one certificate for all of the components. If your middle-tier is distributed across multiple machines, you will need to request one certificate for each server. The reason for this requirement is that the Common Name typically refers to a specific machine (server and domain), which means you need a separate certificate for each machine.


    Text description of cg_sec_cert.gif follows.

    Text description of the illustration cg_sec_cert.gif

  6. Click OK. A dialog will inform you that the certificate request was created successfully. The Certificate node in the Wallet Navigator will change to Requested.

  7. Save the wallet in a convenient directory, for example:

    MID_TIER_ORACLE_HOME\webcache\wallets\portalssl
    
    
  8. Send the CR to the chosen Certificate Authority (CA).

Cutting and Pasting

Depending on the CA, you may need to cut and paste the certificate request in their Web page or export the CR to a file for subsequent uploading to the site.

  1. Select the Certificate node in the Wallet Navigator.

  2. Highlight the Certificate text in the Certificate Request field. Make sure to include the BEGIN/END NEW CERTIFICATE REQUEST lines.

  3. Copy and paste into the Certificate Request field on the CA's Web site.

Exporting Certificate Request

To export the certificate request:

  1. Choose Operations > Export Certificate Request.

  2. Choose the Name and Location of the CR file. A Status Line Message will confirm the successful export of the CR.

  3. Once exported, the CR can be uploaded to the CA's Web site.

Managing Trusted Certificates

Once the CA has processed the request, the User Certificate is forwarded to you either as text within an e-mail or as a simple file that is downloaded from a given Web page. Note, if you are using a trial Root Certificate or have chosen a CA which is not currently installed in the Oracle Wallet Manager, you must first import the CA's Trusted Certificate before importing your server specific User Certificate.

Importing Trusted Certificate (if necessary)

To import the trusted certificate:

  1. Choose Operations > Import Trusted Certificate.

  2. Based on the CA, choose Paste the Certificate or Select a file that contains the certificate.

  3. Select the appropriate certificate file or paste in the text from the e-mail. Oracle Wallet Manager expects base-64 encoded root certificates. If you do not have a base-64 encoded root certificate, then you must perform the steps described in Changing Trusted Certificate Format (if necessary).

  4. Click OK.

A status line message should appear indicating that the certificate was successfully imported. When you import the server specific User Certificate, the certificate node in the tree structure should also display as Ready.

Changing Trusted Certificate Format (if necessary)

If the certificate import fails, then it is possible that the Certificate is in a format that the Oracle Wallet Manager does not support. In this case, you need to convert it to a supported format before importing. The easiest way to do this is through the certificate Import/Export Wizards within a browser. The following steps are for the Microsoft Internet Explorer Browser.

  1. In MS Internet Explorer, choose Tools > Internet Options....

  2. Click the Content tab.

  3. Click Certificates....

  4. Click the Trusted Root Certification Authorities tab.

  5. Select Import... and follow the wizard to import the certificate.

  6. Highlight the newly imported certificate from the list.

  7. Click Export... and follow the wizard to the Export File Format page.

  8. Choose Base-64 encoded X.509.

  9. Click Next and give the certificate a file name.

  10. Click Next.

  11. Click Finish.

  12. In Oracle Wallet Manager, choose Operations > Import Trusted Certificate.

Once the Trusted Root Certificate has been successfully imported into the Oracle Wallet Manager you may then import the server specific User Certificate.

Importing Server's User Certificate

To import the server's user certificate:

  1. Choose Operations > Import User Certificate.

  2. Based on the CA, choose Paste the Certificate or Select a file that contains the certificate.

  3. Select the appropriate certificate file or paste in the text from the e-mail.

  4. Click OK.

A status line message should appear indicating that the User Certificate has been successfully imported.

Having imported the certificate, it is important to save the wallet with the Autologin functionality enabled. This step is required because OracleAS Web Cache accesses the wallet as the process starts and the wallet password is not held by OracleAS Web Cache. If this property is not set, OracleAS Web Cache immediately shuts down if running in SSL mode.

  1. Choose the Trusted Certificate you just imported from the list in the Oracle Wallet Manager.

  2. Check Wallet > AutoLogin, if it is not already checked.

  3. Choose Wallet > Save.

Securing OracleAS Web Cache

This sections that follow describe how to configure OracleAS Web Cache to accept SSL connections.


Note:

Changing OracleAS Web Cache settings (for example, Listening Port) can change the OracleAS Portal URL. If you do this, mobile settings need to be updated manually. For more information, see Section C.8, "Using the cfgiasw Script to Configure Mobile Settings".


Configuring OracleAS Web Cache SSL Port
  1. From the OracleAS Web Cache administration page, click the Listening Ports link in the Ports section.

  2. To add the SSL port, click Add... and enter the following information:

    • IP Address: ANY

    • Port Number: SSL port that Web Cache will listen on

    • Protocol: HTTPS

    • Require Client-Side Certificate: No (unchecked)

    • Wallet: Path to the Oracle Wallet directory containing the SSL server certificate

  3. Click Submit.

For more information on the procedure in the preceding text, refer to Task 3: Configure HTTPS Operations Ports for the Cache in Chapter 8, Specialized Configurations, of the Oracle Application Server Web Cache Administrator's Guide.

Defining a Site for the Published SSL Hostname and Port

Since there is no out-of-box default SSL configuration, you need to add a Site definition for the SSL-based Site that OracleAS Web Cache will be caching.

  1. From the OracleAS Web Cache administration page, click Site Definitions under Origin Servers, Sites, and Load Balancing.

  2. Define a Site where Host Name is the hostname seen by the browser.

    This is the load balancer or reverse proxy server name for configurations that use a load balancer device or other reverse proxy, or it is the OracleAS Web Cache hostname in a configuration where OracleAS Web Cache receives browser requests.

  3. Set Port to the HTTPS port addressed by the browser requests.

  4. Enter Site information as follows:

    HTTPS Only Prefix: Leave blank

    Client-Side Certificate: Not required

    Default Site: Yes

    Create Alias from Site Name with/without www: No

  5. Click Submit.

  6. Remove any sites that are no longer applicable to your modified configuration, including the default, out-of-the-box non-SSL site.

For more information on the procedure in the preceding text, refer to:

Adding Site Aliases for Each Potential Port in the Configuration

Site aliases are necessary if content is cached across a number of different hostnames, or ports, or both, but which actually refer to the same logical content. For example, when the PPE makes a request for some portlet, and this portlet is requested on a non-SSL port, but the main Site is accessed over SSL, then an alias entry is needed. This equates the content accessed through the Site with SSL, to the content accessed over non-SSL. This way, invalidation requests that are sent to invalidate the content, will invalidate the content that is cached over either form of URL.

You need to create an alias for the non-SSL OracleAS Web Cache listening port for the OracleAS Web Cache SSL site. To create a site alias:

  1. From the OracleAS Web Cache administration page, return to the Site Definitions page, select the newly added site, and click Add Alias.

  2. Enter the same hostname as used by the site entry, and provide the non-SSL port that the PPE will use to request portlets from OracleAS Web Cache. Click Apply Changes.

  3. Restart the server after making the necessary additions.

For more information on the procedure in the preceding text, refer to Create Site Definitions in Chapter 7, Basic Setup and Configuration, of the Oracle Application Server Web Cache Administrator's Guide.

Adding Site to Server Mappings of the New Site to the Origin Server

After adding a new Site definition and associated aliases, you must add the Site to Server mapping for the newly defined Site to the origin server. To do this:

  1. Select the Site you are mapping from the drop-down list.

  2. Check the appropriate Origin Server to which requests should be routed for content.

For more information on the procedure in the preceding text, refer to Map Sites to Origin Servers in Chapter 7, Basic Setup and Configuration, of the Oracle Application Server Web Cache Administrator's Guide.

Securing the Parallel Page Engine

In this configuration, you need to configure the PPE to make portlet requests using HTTP requests. The sections that follow describe how to implement a partial SSL PPE configuration for this purpose.

  1. Open the web.xml file associated with the OC4J_PORTAL instance on the middle-tier.

    MID_TIER_ORACLE_HOME\j2ee\OC4J_Portal\applications\portal\
    portal\WEB-INF\web.xml
    
    
  2. Add useScheme and usePort in additional <init-param> blocks in web.xml. The useScheme http indicates that the http protocol should be used for PPE loop backs and usePort indicates which port these non-SSL loop backs should use. The HTTP port you specify for usePort should be the OracleAS Web Cache non-SSL http port. For example:

    <servlet>
    <servlet-name>page</servlet-name> 
       <servlet-class>oracle.webdb.page.ParallelServlet</servlet-class> 
       <init-param>
         <param-name>useScheme</param-name>
         <param-value>http</param-value>
       </init-param>
       <init-param>
         <param-name>usePort</param-name>
         <param-value>7777</param-value>
       </init-param>
     </servlet>
    
    
  3. (Optional) If you want the PPE to trust only specific certificates, add x509certfile in an additional <init-param> block in web.xml. For example:

    <servlet>
    <servlet-name>page</servlet-name> 
       <servlet-class>oracle.webdb.page.ParallelServlet</servlet-class> 
         <init-param> 
            <param-name>x509certfile</param-name> 
            <param-value>C:\mySSLconfig\trustedCerts.txt</param-value>
         </init-param>
     </servlet>
    
    


    Note:

    If you choose not to implement x509certfile, the PPE trusts any SSL certificate.


Re-registering the Oracle HTTP Server Partner Application

You now need to register the secured request with OracleAS Single Sign-On by configuring it as a partner application. The script ossoreg performs this registration. ossoreg is located on the middle-tier in MID_TIER_ORACLE_HOME/sso/lib.

  1. Ensure that you have your environment configured properly to run ossoreg:

    ORACLE_HOME=MID_TIER_ORACLE_HOME
    LD_LIBRARY_PATH=ORACLE_HOME/lib 
    
    
  2. Run ossoreg. The following example illustrates the usage of ossoreg.

    MID_TIER_ORACLE_HOME/jdk/bin/java -jar 
      MID_TIER_ORACLE_HOME/sso/lib/ossoreg.jar -site_name abc.com -mod_osso_url
      https://www.abc.com:4443 -config_mod_osso TRUE -oracle_home_path 
      MID_TIER_ORACLE_HOME   -u install_user -config_file 
      MID_TIER_ORACLE_HOME/Apache/Apache/conf/osso/osso.conf 
      -admin_info cn=orcladmin
    
    

Refer to the section titled "Registering mod_osso" in Chapter 4 of the Oracle Application Server Single Sign-On Administrator's Guide for more information.

At this point, configuration is complete for SSL communication to OracleAS Web Cache.

Specifying the OracleAS Portal Published Address and Protocol

To specify the published address for OracleAS Portal with the modified port for SSL, you need to use Oracle Enterprise Manager as follows:

  1. Navigate to the Oracle Enterprise Manager Application Server Control.

  2. Click the Standalone Instance with the Oracle Application Server that is running the OracleAS Portal middle-tier.

  3. Click the OracleAS Portal system component.

  4. Under Administration, click Portal Web Cache Settings.

  5. For Listen Port, enter the OracleAS Web Cache SSL port number.

  6. For Listening Port SSL Enabled, choose Yes.

  7. Click OK. The OracleAS Portal Repository is updated with the setting and the Oracle Enterprise Manager target instance is updated to use HTTPS for its URL tests.

    If at a later time you choose to switch to HTTP, you would perform this same procedure and return Listening Port SSL Enabled to No.


    Note:

    This procedure updates the settings in the iasconfig.xml file.


    See Also:

    For more information about iasconfig.xml, see Appendix A, "Using the Portal Dependency Settings File".

  8. Edit the MID_TIER_ORACLE_HOME/Apache/Apache/conf/httpd.conf file as follows:

    1. Specify 4443 for the Port directive.

    2. At the bottom of the file, add a line:

      SimulateHttps On 
      
      

      To make the SimulateHttps directive take effect, you must load mod_ certheaders in the Oracle HTTP Server by adding one of the following directives before the SimulateHttps directive:

      On UNIX:

      LoadModule certheaders_module libexec/mod_certheaders.so
      
      

      On MS Windows:

      LoadModule certheaders_module modules/ApacheModuleCertHeaders.dll
      
      

      For more information, refer to the "mod_certheaders" section of Chapter 8, Oracle HTTP Server Modules, in the Oracle HTTP Server Administrator's Guide.

    3. Save the file.

  9. Run the following command to synchronize the manual configuration changes:

    MID_TIER_ORACLE_HOME/dcm/bin/dcmctl updateconfig
    
    
  10. Restart your Oracle Application Server instance:

    MID_TIER_ORACLE_HOME/opmn/bin/opmnctl stopall
    MID_TIER_ORACLE_HOME/opmn/bin/opmnctl startall
    
    
6.3.2.1.4 SSL Throughout OracleAS Portal

Figure 6-14 Secured Connections Throughout the System

Text description of cg_sec_ss14.gif follows.

Text description of the illustration cg_sec_ss14.gif

For installations that require the utmost security, it is possible to configure SSL throughout the system. In this configuration, the loop back from the PPE to OracleAS Web Cache uses a wallet and the hop between the PPE and the Web providers uses a certificate directly rather than through a wallet.


Note:

If you have already followed the steps described in Section 6.3.2.1.3, "SSL to OracleAS Web Cache", you must revert all the changes you have made prior to configuring SSL throughout OracleAS Portal.


Creating a Wallet

It is possible to share a single wallet across both the listener and origin server (and all other available ports in OracleAS Web Cache) if OracleAS Web Cache and the Oracle HTTP Server are on the same machine. Conversely, specific wallets may be created for each port. In this case the two servers/ports will be sharing the same wallet specified earlier.

In some cases, such as when the Oracle HTTP Server is on a different machine than OracleAS Web Cache, you need to create a separate wallet for the Oracle HTTP Server. For this situation, refer to the steps in "Creating a Wallet" to create the wallet for the Oracle HTTP Server.

In the default case, where the Oracle HTTP Server is on the same machine as OracleAS Web Cache, you can share the wallet between the two.

Securing the Oracle HTTP Server

You need to configure the Oracle HTTP Server as the OracleAS Web Cache's origin server to accept HTTPS-based communication. The Oracle HTTP Server implements SSL by the use of mod_ssl. As such, the configuration to use HTTPS is fairly straightforward.


Note:

The default installation of the Oracle HTTP Server provides a basic implementation of SSL with a demo certificate. For production use, you should obtain a server certificate from a certificate authority following the instructions in "Creating a Wallet" .


The SSL configuration of the Oracle HTTP Server is defined within ssl.conf. This file may be edited directly or by using the Advanced Server Properties page under the Oracle HTTP Server node of the appropriate Oracle Application Server instance within the Oracle Enterprise Manager Administration pages. If you edit the files manually, it is recommended that you run the dcmctl utility with the following options to make sure that the file is synchronized with the DCM repository.

MID_TIER_ORACLE_HOME/dcm/bin/dcmctl updateConfig -ct ohs

  1. Open ssl.conf in MID_TIER_ORACLE_HOME/Apache/Apache/conf.

  2. Search for the following directives and change the values accordingly:

    Table 6-18  Wallet Entries in ssl.conf
    Default Entry Updated Entry

    SSLWallet file:

    MID_TIER_ORACLE_HOME/Apache/Apache/conf/

    ssl.wlt/default

    SSLWallet file:

    /Directory where the wallet has been saved

    SSLWalletPassword

    .... (hashed out)

    SSLWalletPassword

    password used when creating the wallet

  1. In ssl.conf in MID_TIER_ORACLE_HOME/Apache/Apache/conf, verify that the default virtual host for SSL communication specifies the correct, preallocated port number for SSL.


    Note:

    When setting up OracleAS Portal to communicate through HTTPS, it is common to configure both the middle and infrastructure tiers to operate in this mode. You must leave an HTTP port open on the infrastructure tier for OracleAS Portal to communicate with OracleAS Single Sign-On for External Application information. This call is made directly from the repository using the UTL_HTTP package.


  2. Ensure that the start mode of the Oracle HTTP Server is set to ssl-enabled in MID_TIER_ORACLE_HOME/opmn/conf/opmn.xml. For example:

    <ias-component id="HTTP_Server">
       <process-type id="HTTP_Server" module-id="OHS">
          <module-data>
             <category id="start-parameters">
                <data id="start-mode" value="ssl-enabled"/>
             </category>
          </module-data>
          <process-set id="HTTP_Server" numprocs="1"/>
       </process-type>
    </ias-component>
    
    

Securing OracleAS Web Cache

The sections that follow describe how to configure OracleAS Web Cache to accept SSL connections and forward SSL requests to the SSL-enabled origin server.


Note:

Changing OracleAS Web Cache settings (for example, Listening Port) can change the OracleAS Portal URL. If you do this, mobile settings need to be updated manually. For more information, see Section C.8, "Using the cfgiasw Script to Configure Mobile Settings".


Configuring the OracleAS Web Cache SSL Port
  1. From the OracleAS Web Cache Administration page, click the Listening Ports link in the Ports section.

  2. To add the SSL port, click Add... and enter the following information:

    IP Address: ANY

    Port Number: SSL port that Web Cache is listening on

    Protocol: HTTPS

    Require Client-Side Certificate: No (unchecked)

    Wallet: Path to the SSL server certificate

  3. Click Submit.

For more information on the procedure in the preceding text, refer to Task 3: Configure HTTPS Operations Ports for the Cache in Chapter 8, Specialized Configurations, of the Oracle Application Server Web Cache Administrator's Guide.

Adding the SSL Origin Server

To add the SSL origin server:

  1. From the OracleAS Web Cache administration page, click Origin Servers under Origin Servers, Sites, and Load Balancing.

  2. Click Add... to add the SSL Origin Server.

  3. Enter the information as follows:

    Host Name: Physical hostname of the machine in which Oracle HTTP Server is running

    Port: Oracle HTTP Server's SSL port

    Routing: Enable

    Capacity: 100

    Failover Threshold: 5

    Ping URL: /

    Ping Interval: 10

    Protocol: HTTPS

  4. Click Submit.

For more information on the procedure in the preceding text, refer to Task 9: Configure Origin Server, Load Balancing, and Failover Settings in Chapter 7, Basic Configuration and Setup, of the Oracle Application Server Web Cache Administrator's Guide.

Defining a Site for the Published SSL Host Name and Port

Since there is no out-of-box default SSL configuration, you need to add a site definition for the SSL-based Site that OracleAS Web Cache will be caching.

  1. From the OracleAS Web Cache Administration page, click Site Definitions under Origin Servers, Sites, and Load Balancing.

  2. Define a site where Host Name is the hostname seen by the browser, which would be the OracleAS Web Cache hostname.

  3. Set Port to the HTTPS port addressed by the browser requests, which would be the OracleAS Web Cache SSL listen port.

  4. Enter site information as follows:

    HTTPS Only Prefix: Leave blank

    Client-Side Certificate: Not required

    Default Site: Yes

    Create Alias from Site Name with/without www: No

  5. Click Submit.

  6. Remove any sites that are no longer applicable to your modified configuration.

For more information on the procedure in the preceding text, refer to:

Adding Site to Server Mappings of the New Site to the Origin Server

After adding a new site definition, you must add the site to server mapping for the newly defined site to the origin server. To do this:

  1. Select the Site you are mapping from the drop-down list, which should be the OracleAS Web Cache site with the SSL port.

  2. Check the Origin Server representing the OracleAS Portal SSL port, to which requests should be routed for content.

For more information on the procedure in the preceding text, refer to Map Sites to Origin Servers in Chapter 7, Basic Setup and Configuration, of the Oracle Application Server Web Cache Administrator's Guide.

Securing the Parallel Page Engine

In this configuration, SSL is used throughout as the request comes to OracleAS Web Cache through HTTPS and the PPE loops back over HTTPS as well. The server specifies the chain that goes with its certificate. As long as the chain is valid and leads to a self-signed root certificate, it is validated without determining whether it is trusted, assuming that you have not loaded any trust points into it.

To implement this configuration, perform the following steps on the OracleAS Portal middle-tier:

  1. Open the ssl.conf file.

    MID_TIER_ORACLE_HOME/Apache/Apache/conf/ssl.conf
    
    
  2. Add SSLWallet and SSLWalletPassword. For example:

    SSLWallet file:/usr/local/adeviews/webdb/webdb_3000_ias902PW/Apache/Apache/conf/ssl.wlt/default
    SSLWalletPassword serverWalletPassword
    


    Note:

    The previous example of SSLWalletPassword shows the password as plaintext. In many cases, you may want to obfuscate the password using the iasobf utility.


    See Also:

    For more information about SSLWallet and SSLWalletPassword, and httpd.conf, see the Oracle HTTP Server Administrator's Guide.

  3. Open the web.xml file associated with the OC4J_PORTAL instance on the middle-tier.

    MID_TIER_ORACLE_HOME\j2ee\OC4J_Portal\applications\portal\portal\
    WEB-INF\web.xml
    
    
  4. Add httpsports in an additional <init-param> block in web.xml. This should point to the OracleAS Web Cache HTTPS listening port. For example:

    <servlet>
    <servlet-name>page</servlet-name> 
       <servlet-class>oracle.webdb.page.ParallelServlet</servlet-class> 
       <init-param>
         <param-name>httpsports</param-name>
         <param-value>4443</param-value>
       </init-param>
     </servlet>
    


    Note:

    If your current web.xml file contains the useScheme and usePort directives, you need to remove them. The configuration with SSL throughout should only use the httpsports directive.


  5. (Optional) If you want the PPE to trust only specific certificates, add x509certfile in an additional <init-param> block in web.xml. For example:

    <servlet>
    <servlet-name>page</servlet-name> 
       <servlet-class>oracle.webdb.page.ParallelServlet</servlet-class> 
         <init-param> 
           <param-name>x509certfile</param-name> 
           <param-value>C:\mySSLconfig\trustedCerts.txt</param-value>
         </init-param>
     </servlet>
    


    Note:

    If you choose not to implement x509certfile, the PPE trusts any SSL certificate.


Securing the Event Servlet

The Smart Page functionality of OracleAS Portal allows for the publishing of Events and Page Parameters to allow portlets to communicate information to each other. The Event servlet, which runs in the same container as the Parallel Page Engine itself, implements this functionality. Since the Event servlet also must create the appropriate ACTION URLs resulting from the user interaction, it also requires knowledge of the protocol used to generate the page. The required parameters to indicate the use of HTTPS are the same ones used for the Page servlet.

  1. Open the web.xml file associated with the OC4J_PORTAL instance on the middle-tier.

    MID_TIER_ORACLE_HOME\j2ee\OC4J_
    Portal\applications\portal\portal\WEB-INF\web.xml
    
    
  2. Add an additional <init-param> block to the file to indicate the ports that are using HTTPS. This block should point to the OracleAS Web Cache HTTPS listening port.

    <servlet>
    <servlet-name>event</servlet-name> 
       <servlet-class>oracle.webdb.event.EventServlet</servlet-class> 
         <init-param>
           <param-name>httpsports</param-name>
           <param-value>4443</param-value>
         </init-param>
     </servlet>
    

Specifying OracleAS Portal Published Address and Protocol

To specify the published address for OracleAS Portal with the modified port for SSL, you need to use Oracle Enterprise Manager as follows:

  1. Navigate to the Oracle Enterprise Manager Application Server Control.

  2. Click the Standalone Instance with the Oracle Application Server that is running the OracleAS Portal middle-tier.

  3. Click the OracleAS Portal system component.

  4. Under Administration, click Portal Web Cache Settings.

  5. For Listening Port SSL Enabled, choose Yes.

  6. Click OK. The OracleAS Portal Repository is updated with the setting and the Oracle Enterprise Manager target instance is updated to use HTTPS for its URL tests.

    If at a later time you choose to switch to HTTP, you would perform this same procedure and return Listening Port SSL Enabled to No.


    Note:

    This procedure updates the settings in the iasconfig.xml file.


    See Also:

    For more information about iasconfig.xml, see Appendix A, "Using the Portal Dependency Settings File".

Re-registering the Oracle HTTP Server Partner Application

You now need to register the secured request with OracleAS Single Sign-On by configuring it as a partner application. The script ossoreg performs this registration. ossoreg is located on the middle-tier in MID_TIER_ORACLE_HOME/sso/lib.

  1. Ensure that you have your environment configured properly to run ossoreg:

    ORACLE_HOME=MID_TIER_ORACLE_HOME
    LD_LIBRARY_PATH=ORACLE_HOME/lib 
    
    
  2. Run ossoreg. The following example illustrates the usage of ossoreg.

    MID_TIER_ORACLE_HOME/jdk/bin/java -jar 
      MID_TIER_ORACLE_HOME/sso/lib/ossoreg.jar -site_name abc.com -mod_osso_url
      https://www.abc.com:4443 -config_mod_osso TRUE -oracle_home_path 
      MID_TIER_ORACLE_HOME   -u install_user -config_file 
      MID_TIER_ORACLE_HOME/Apache/Apache/conf/osso/osso.conf 
      -admin_info cn=orcladmin
    
    

Refer to the section titled "Registering mod_osso" in Chapter 4 of the Oracle Application Server Single Sign-On Administrator's Guide for more information.

Associating the Federated Portal Adapter with SSL

The Federated Portal Adapter uses the Oracle HTTP Server rewrite rules to simplify URLs for registering providers. By default, these rewrite rules are only specified for HTTP communication.

  1. Copy these rewrite rules from portal.conf to the Oracle HTTP Server configuration files. The rewrite rules in portal.conf are as follows:

    # Portal PL/SQL Adapter URL Simplification
    RewriteEngine on 
    # This is to match '/adapter/<dad_name>/<schema_name>' and an optional trailing '/'
    RewriteRule ^/adapter/(.+)/([^/]+)/?$ /pls/$1/!$2.wwpro_app_adapter.process_request [PT] 
    # This is to match '/adapter/<dad_name>' and an optional trailing '/' 
    RewriteRule ^/adapter/([^/]+)/?$ /pls/$1/!$1.wwpro_app_adapter.process_request [PT]
    
    

You need to add these same rules to the virtual hosts section of your Oracle HTTP Server file as follows:

## SSL Virtual Host Context 
## 
# 
# NOTE: this value should match the SSL Listen directive set previously in this 
# file otherwise your virtual host will not respond to SSL requests. 
# 
<VirtualHost _default_:3011> 
  #  General setup for the virtual host 
  DocumentRoot /usr/local/adeviews/webdb/webdb_3000_ias902PW/Apache/Apache/htdocs 
  ServerName host1.abc.com 
  ServerAdmin you@your.address 
  ErrorLog /usr/local/adeviews/webdb/webdb_3000_ias902PW/Apache/Apache/logs/error_log 
  TransferLog "/usr/local/adeviews/webdb/webdb_3000_ias902PW/Apache/Apache/logs/access_log" 
  Port 3001 
  SSLEngine on 
  SSLCipherSuite
SSL_RSA_WITH_RC4_128_MD5:SSL_RSA_WITH_RC4_128_SHA:SSL_RSA_WITH_3DES_EDE_CBC_SHA:SSL_RSA_WITH_DES_CBC_SHA:SSL_
RSA_EXPORT_WITH_RC4_40_MD5:S

SL_RSA_EXPORT_WITH_DES40_CBC_SHA 
  SSLWallet file:/usr/local/adeviews/webdb/webdb_3000_ias902PW/Apache/Apache/conf/ssl.wlt/default 

  <Files ~ "\.(cgi|shtml)$"> 
   SSLOptions +StdEnvVars 
  </Files> 
  <Directory /usr/local/adeviews/webdb/webdb_3000_ias902PW/Apache/Apache/cgi-bin> 
   SSLOptions +StdEnvVars 
  </Directory> 

        SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown 
        CustomLog /usr/local/adeviews/webdb/webdb_3000_ias902PW/Apache/Apache/logs/ssl_request_log "%t %h 
%{SSL_PROTOCOL}x
%{SSL_CIPHER}x \"%r\" %b" 

        RewriteEngine on 
        # This is to match '/adapter/<dad_name>/<schema_name>' and an optional trailing '/' 
        RewriteRule ^/adapter/(.+)/([^/]+)/?$ /pls/$1/!$2.wwpro_app_adapter.process_request [PT] 
        # This is to match '/adapter/<dad_name>' and an optional trailing '/' 
        RewriteRule ^/adapter/([^/]+)/?$ /pls/$1/!$1.wwpro_app_adapter.process_request [PT] 

    </VirtualHost> 

  1. Run the following command to synchronize the manual configuration changes:

    MID_TIER_ORACLE_HOME/dcm/bin/dcmctl updateconfig
    
    
  2. Restart your Oracle Application Server instance:

    MID_TIER_ORACLE_HOME/opmn/bin/opmnctl stopall
    MID_TIER_ORACLE_HOME/opmn/bin/opmnctl startall
    
    

At this point, configuration is complete for SSL communication throughout OracleAS Portal.

6.3.2.1.5 External SSL with Non-SSL Within Oracle Application Server

Figure 6-15 External SSL Only

Text description of cg_sec_ss15.gif follows.

Text description of the illustration cg_sec_ss15.gif

The previous configurations discuss how to configure OracleAS Portal in such a way that communications within Oracle Application Server are secured through SSL. In some cases, you may want to have OracleAS Portal set up such that the site is externally accessible through SSL URLs but the Oracle Application Server is internally running in non-SSL mode. Note that in this latter scenario, you need to have the SSL to non-SSL translation done either by a load balancer or an SSL accelerator. The section that follows outlines the steps you would use with an accelerator on a load balancer or a reverse proxy server performing the SSL translation.

With this option, the SSL features of the OracleAS Security Framework are not used, but, instead, an external component is used for providing the SSL connection point. These external accelerators may be coupled with load balancers or reverse proxy servers. Oracle Application Server enables you to configure these external devices to provide SSL, thus allowing Oracle Application Server to use HTTP internally for the best performance.

For the purposes of this procedure, assume the following:

  1. Configure the OracleAS Portal middle-tier to allow the underlying components to construct URLs based on the load balancer's hostname, lbr.abc.com, and port (443). To do this, perform the following steps:

    1. Define a virtual host, using the Create Virtual Host wizard, as explained in Section 5.4.1.1, "Create the Virtual Host for www.xyz.com", with the following exceptions:

      • On the Addresses page (step 9), specify the hostname of the LBR (lbr.abc.com) in the Server Name field for your virtual host.

      • In step 23, specify 443 for the Port directive in the VirtualHost container. In that same VirtualHost container, add a line:

        SimulateHttps On
        
        

        To make the SimulateHttps directive take effect, you must load mod_ certheaders in the Oracle HTTP Server by adding one of the following directives before the SimulateHttps directive:

        On UNIX:

        LoadModule certheaders_module libexec/mod_certheaders.so 
        
        

        On MS Windows:

        LoadModule certheaders_module modules/ApacheModuleCertHeaders.dll 
        
        

        For more information, refer to the "mod_certheaders" section of Chapter 8, Oracle HTTP Server Modules, in the Oracle HTTP Server Administrator's Guide.

    2. Define a second virtual host, using the Create Virtual Host wizard, as explained in Section 5.4.1.1, "Create the Virtual Host for www.xyz.com", with the following exceptions:

      • On the Addresses page (step 9), specify the hostname (m1.abc.com) in the Server Name field for your virtual host.

      • In step 23, specify 7777 for the Port directive in the VirtualHost container.

      • When prompted to restart the Oracle HTTP Server (step 26), click Yes.

  2. Configure the Parallel Page Engine to attempt loop backs using a different protocol and port than what is used by the site.

    1. Make the following changes to the Page servlet section in MID_TIER_ORACLE_HOME/j2ee/OC4J_Portal/applications/portal/portal/WEB-INF/web.xml:

      <servlet>
      <servlet-name>page</servlet-name> 
      
         <servlet-class>oracle.webdb.page.ParallelServlet</servlet-class> 
      
                <init-param>
                   <param-name>useScheme</param-name>
                   <param-value>http</param-value>
                </init-param>
                <init-param>
                   <param-name>usePort</param-name>
                   <param-value>7777</param-value>
                </init-param>
      </servlet>
      
      
    2. Run the following command to sync up the manual configuration changes:

      MID_TIER_ORACLE_HOME/dcm/bin/dcmctl updateconfig
      
      
    3. Restart your Oracle Application Server instance:

      MID_TIER_ORACLE_HOME/opmn/bin/opmnctl stopall
      MID_TIER_ORACLE_HOME/opmn/bin/opmnctl startall
      
      
  3. Configure the machine m1.abc.com such that it resolves the load balancer's hostname to be the IP address of the machine running OracleAS Web Cache. You can either rely on DNS resolution for this step or make entries in the /etc/hosts file as follows:

    w1.w1.w1.w1  lbr.abc.com
    
    


    Note:

    If OracleAS Web Cache is local you can use 127.0.0.1 instead of w1.w1.w1.w1.


    This change coupled with the previous steps causes the Parallel Page Engine to loop back locally to OracleAS Web Cache.

  4. Register new URLs with OracleAS Portal using the LBR's hostname and port instead of the OracleAS Web Cache hostname and port by running the OracleAS Portal Configuration Assistant (OPCA) in MIDTIER -type OHS mode. On UNIX, you invoke OPCA with ptlasst.csh. On MS Windows, you use ptlasst.bat.

    For example:

    ptlasst.csh -i typical -mode MIDTIER -type OHS -sdad portal 
    -host lbr.abc.com -chost w1.abc.com -port 443 -cport_i 4001 -cport_a 4000 
    -wc_i_pwd welcome1 -ssl
    
    
  5. To prevent access to Oracle Enterprise Manager from the outside, the Oracle Enterprise Manager link provided by OracleAS Portal needs to be changed back to point to the internal server. To do this, run ptlconfig (typically located in the directory MID_TIER_ORACLE_HOME/portal/conf) as shown in the following example:

    ptlconfig -dad portal -em 
    
    
  6. From the OracleAS Web Cache administration page, click Site Definitions under Origin Servers, Sites, and Load Balancing.

  7. Click Add Site.

  8. Enter site information as follows:

    • Host Name: The published hostname and fully qualified domain of the external SSL accelerator device or reverse proxy server.

    • Port Number: The SSL port number, for example, 443 for the default SSL port.

    • HTTPS Only Prefix: Leave blank.

    • Client-Side Certificate: Not required.

    • Default Site: Yes.

    • Create Alias from Site Name with/without www: No.

    Please refer to the Oracle Application Server Web Cache Administrator's Guide for detailed instructions on the configuration mentioned earlier.

  9. Set up an alias for OracleAS Web Cache. In the configuration where the Parallel Page Engine loops back to OracleAS Web Cache and OracleAS Web Cache is listening on a different port than the load balancer, loop back content gets cached with a URL key of lbr.abc.com:7777, whereas OracleAS Portal sends invalidation requests to invalidate URLs with the format lbr.abc.com:443. To get around this inconsistency, you need to set up an alias in OracleAS Web Cache to let it know that lbr.abc.com:7777 and lbr.abc.com:443 are the same, invalidation requests for one should invalidate requests for the other as well, and the cached content should also be leveraged based on this alias.

    1. Go to the Oracle Application Server Web Cache administration page and log in as the administrator.

    2. Click Site Definitions.

    3. Select the radio button in the Select column that corresponds to the site for which the alias will be added, in this case lbr.abc.com.

    4. Click Add Alias.

    5. On the window that comes up, enter lbr.abc.com as the Host Name and 7777 as the port where 7777 is the value for usePort in the web.xml configuration file for the Parallel Page Engine.

    6. Click Submit.

  10. After adding a new site definition, you must add the site to server mapping for the newly defined site to the origin server. To do this:

    1. In the navigation frame, select Site-to-Server Mapping under Origin Servers, Sites, and Load Balancing.

    2. In the Site-to-Server Mapping page, select the first mapping in the table and click Insert Above.

    3. In the Edit/Add Site-to-Server Mapping page, select the Select from Site definitions option and then select a site definition created in the previous step (lbr.abc.com).

    4. In the Select Application Web Servers section, select the application server (m1.abc.com) specified in the Origin Servers page.

    5. Click Submit.

    6. Click Apply Changes on the top of the page.

    7. In the Cache Operations page, click Restart to restart Web Cache.

      To verify that the site has been mapped correctly, navigate to the Site-to-Server Mapping page, and ensure that m1.abc.com is mapped to the site lbr.abc.com.

    For more information on the procedure in the preceding text, refer to Map Sites to Origin Servers in Chapter 7, Basic Setup and Configuration, of the Oracle Application Server Web Cache Administrator's Guide.

  11. Configure the load balancer, lbr.abc.com, to accept requests on port 443 and forward them to the OracleAS Web Cache port (7777) running on machine w1.abc.com, while converting HTTPS requests to HTTP.


    Note:

    For information on how this configuration might affect your Web Providers, refer to Section 5.3.6, "Step 6: Configure Portal Tools and Web Providers (Optional)".


Configuring Seeded Providers (WebClipping and OmniPortlet) and Locally Hosted Web Providers

  1. Login to OracleAS Portal as the administrator (for example, PORTAL).

  2. Click the Administer tab.

  3. Click the Portlets sub-tab.

  4. In the Remote Providers portlet, type WEBCLIPPING in the Name field.

  5. Click Edit.

  6. Click the Connection tab.

  7. In the URL field, change the URL from:

    https://lbr.abc.com:443/portalTools/webClipping/providers/webClipping 
    
    

    to:

    http://lbr.abc.com:7777/portalTools/webClipping/providers/webClipping 
    
    
  8. Click OK to commit the change.

  9. Repeat steps 4 through 8 but with the following exceptions:

    • In step 4, type OMNIPORTLET instead of WEBCLIPPING.

    • In Step 7, change the URL from:

      https://lbr.abc.com:443/portalTools/omniPortlet/providers/omniPortlet
      
      

      to:

      http://lbr.abc.com:7777/portalTools/omniPortlet/providers/omniPortlet
      
      

When you register locally hosted Web Providers (such as the JPDK Sample provider), you need to register them using HTTP as the protocol, lbr.abc.com as the hostname, and 7777 as the port number. This restriction only applies to locally hosted Web Providers (that is, Web Providers running on the same middle-tier as OracleAS Portal).

For example, to register the JPDK Sample provider, the URL is:

http://lbr.abc.com:7777/jpdk/providers/sample


Note:

If your infrastructure is located on a separate machine than your OracleAS Portal middle-tier, you need to add the following to your /etc/host file:

w1.w1.w1.w1 lbr.abc.com

where w1.w1.w1.w1 is the IP Address of your OracleAS Web Cache.


Re-registering the Oracle HTTP Server Partner Application

You now need to register the secured request with OracleAS Single Sign-On by configuring it as a partner application. The script ossoreg performs this registration. ossoreg is located on the middle-tier in MID_TIER_ORACLE_HOME/sso/lib.

  1. Ensure that you have your environment configured properly to run ossoreg:

    ORACLE_HOME=MID_TIER_ORACLE_HOME
    LD_LIBRARY_PATH=ORACLE_HOME/lib 
    
    
  2. Run ossoreg. The following example illustrates the usage of ossoreg.

    MID_TIER_ORACLE_HOME/jdk/bin/java -jar 
      MID_TIER_ORACLE_HOME/sso/lib/ossoreg.jar -site_name lbr.abc.com 
      -mod_osso_url https://lbr.abc.com -config_mod_osso TRUE 
      -oracle_home_path MID_TIER_ORACLE_HOME -u install_user -config_file 
      MID_TIER_ORACLE_HOME/Apache/Apache/conf/osso/osso.conf 
      -admin_info cn=orcladmin
    
    

Refer to the section titled "Registering mod_osso" in Chapter 4 of the Oracle Application Server Single Sign-On Administrator's Guide for more information.

6.3.2.2 Securing the Connection to Oracle Internet Directory (Optional)

In Section 6.3.2.1, "Configuring SSL for OracleAS Portal", we were mainly concerned with the HTTP-based network hops. However, you can also secure the network connection to the Oracle Internet Directory itself, which is LDAP-based communication. In this case the Oracle Internet Directory should be configured to use LDAP over SSL (LDAPS). You can find further information about configuring the Oracle Internet Directory for LDAPS in the Oracle Internet Directory Administrator's Guide.

Once Oracle Internet Directory is configured to use SSL, you must update the OracleAS Portal repository to use the new port on the LDAP server. To perform this step, you run the SQL script, secupoid.sql, located in MID_TIER_ORACLE_HOME/portal/admin/plsql/wwc. This script allows for the setting of the following Oracle Internet Directory related parameters:

When you run the script, it displays the current settings and gives you the ability to change them accordingly. In this case, you want to set the following:

use_ssl_to_connect_to_ldap=Y 

The script will then give you the option of automatically refreshing OracleAS Portal's Oracle Internet Directory cache.


Note:

In Release 10g (9.0.4), you can optionally install OracleAS Portal using LDAPS rather than having to implement it after installation.


6.3.2.3 Changing Settings on the Global Settings Page

Once you have installed OracleAS Portal and performed the appropriate tasks from Section 6.3.2.4, "Post-Installation Security Checklist", you can change all of the following settings that pertain to security from the Global Settings page of OracleAS Portal:

6.3.2.3.1 Cache for Oracle Internet Directory Parameters

As pointed out in Section 6.1.6, "Leveraging Oracle Identity Management Infrastructure", OracleAS Portal maintains a cache of information from the directory. From the Global Settings page, you can refresh this cache with the updated information from the directory. Refresh Cache for the Oracle Internet Directory parameters immediately updates the cache with the latest parameters values from the directory. The cached information is relatively static information, hence you do not need to refresh the cache frequently.

6.3.2.3.2 Oracle Directory Integration Platform Synchronization

Because OracleAS Portal caches group membership information, it requires a mechanism for updating the cache when the information is changed in the directory. The directory integration server notifies OracleAS Portal whenever a change is made in the directory that must be reflected in OracleAS Portal. In Global Settings, you can set:

When the Oracle Directory Integration and Provisioning server is running and configured to work with OracleAS Portal, group membership changes in Oracle Internet Directory will result in soft cache invalidations in OracleAS Portal.

See Also:

Some examples of group membership cache invalidations are:

6.3.2.3.3 Group Creation Base Distinguished Name (DN)

OracleAS Portal maintains its user group information in the directory. When groups are created through the Group portlet, they are created under a node of the LDAP Directory Information Tree (DIT). A node is identified by its distinguished name (DN). Therefore, in OracleAS Portal, you need to specify in which node you wish to create groups:

Group Creation Base DN is the DN of the node in which you want OracleAS Portal to maintain its user groups. For example:

cn=ptl_schema_name.031009.0430,cn=Groups,dc=MyCompany,dc=com

This setting is particularly useful if you adapt OracleAS Portal to interact with an existing DIT.

6.3.2.3.4 Group Search Base Distinguished Name (DN)

Just as you need to define the node in which you want to create groups, you must also define the node in which you want OracleAS Portal to search for existing groups. For example, you need to specify where OracleAS Portal searches when it displays the group's list of values in the Group portlet.

Local Group Search Base DN is the DN of the node in which you want OracleAS Portal to maintain its user groups. For example:

cn=ptl_schema_name.031009.0430,cn=Groups,dc=MyCompany,dc=com

This setting is particularly useful if you adapt OracleAS Portal to interact with an existing DIT.

6.3.2.4 Post-Installation Security Checklist

After OracleAS Portal is installed, you should consider performing the following steps to complete the security configuration:

6.3.2.4.1 Configure mod_plsql Settings

The mod_plsql settings are configured in Oracle Enterprise Manager, which can be accessed from OracleAS Portal as follows:

  1. From the OracleAS Portal Design-Time Pages page, click the Administer tab.

  2. Click the Portal tab if it is not already selected.

  3. In the Services portlet, click Portal Services Monitoring.

  4. Click mod_plsql Services in the list of Components.

  5. In the DADs section, edit the PORTAL DAD and change the password of the corresponding database user.

  6. Delete all of the DADs that you do not need. For example, SAMPLE_DAD is unnecessary.

  7. Add a new DAD for the portal you are building and set the default name or location.

    See Also:

    Oracle Application Server 10g mod_plsql User's Guide

6.3.2.4.2 Safeguard Passwords for Lightweight OracleAS Portal Users

Unscrupulous users might try to learn the passwords of your default users, which could result in an account lock. This lock can be released from the server, but it is far better that you not depend on the default user accounts for administrative purposes. To safeguard the passwords for these accounts do the following:

  1. Immediately change the default passwords for all of the following default users:

    • PORTAL

    • PORTAL_ADMIN

    • PUBLIC

  2. Create new lightweight administrator accounts with the same access rights as the default users, and set the account termination date in OracleAS Single Sign-On for the default users. Alternatively, you can also uncheck the Allow User To Log In setting in the Edit User page for the default users.

  3. Once you have disabled login or changed the passwords for the default users, try logging in to the portal as the default users with the default passwords to ensure that your changes have been successful.

6.3.2.4.3 Remove Unnecessary Objects

In order to prevent users from entering your portal through obsolete or unnecessary pages, you should remove any unused objects from your OracleAS Portal and database environment. For example:

6.3.2.4.4 Review Default Seeded Privileges

When OracleAS Portal is installed, the seeded groups listed in Table 6-2 are provisioned with a set of privileges that are typically required by users in those roles. You should review these initial set of privileges to ensure that they are consistent with your security policy.

Users or groups can obtain privileges from one of the following sources:

To edit the privileges granted through OracleAS Portal access control entries, you edit the user or group profile from the Administer tab with the User Profile Portlet or Group Profile Portlet. Click the User or Group Profile dialog's Privilege tab. You can revoke or assign privileges from this list.

To edit the privileges granted through Oracle Internet Directory privilege groups, use the User Portlet or Group Portlet to edit the User or Group in Oracle Internet Directory. Select or deselect the checkmarks by the Privilege Assignment list to grant or revoke the appropriate privileges in Oracle Internet Directory.

Privileges granted to the AUTHENTICATED_USERS group are given to any user that logs on to OracleAS Portal through OracleAS Single Sign-On upon successful authentication. This is the group that you will want to establish with the default privileges for all your logged in users.

For example, if you don't want authenticated users to be able to create groups, then edit the AUTHENTICATED_USERS group through the Group Portlet and remove the check mark beside Allow group creation under Privilege Assignment.

6.3.2.4.5 Revoke Public Access to Provider Components

In some cases, OracleAS Portal provider components may give users the option to view or modify records in application tables. To tighten security, you should revoke public access from such components if it is unnecessary. You can also use a menu component with specific access rights on the menu options to more tightly control application access.

6.3.2.4.6 Control Access to Administration Pages

In order to prevent users who should not have access to administration interfaces from entering administration pages, you should ensure that you control access rights for the following page groups and the pages they contain:

To control access to the page groups mentioned earlier, perform the following steps:

  1. In the Navigator, click Page Groups.

  2. Click Edit Properties next to the page group for which you want to change the access settings.

  3. Click the Access tab.

  4. Grant MANAGE ALL to specific users or to certain groups. For example, DBA, PORTAL_ADMINISTRATORS, PORTAL_DEVELOPERS, and your own groups.

  5. When you are done, click OK.

To control access to individual administration pages in these page groups, perform the following steps:

  1. In the Navigator, click Page Groups.

  2. Click Contents next to the page group that contains the pages on which you want to change the access settings.

  3. Click Pages.

  4. Click Properties next to the page for which you to change the access settings.

  5. Click the Access tab.

  6. Grant MANAGE ALL to specific users or to certain groups. For example, DBA, PORTAL_ADMINISTRATORS, PORTAL_DEVELOPERS, and your own groups.

  7. When you are done, click OK.


    Note:

    The Builder page is the root page of the Portal Design-Time Pages page group. In order to alter its access settings, you must click Edit Root Page next to the Portal Design-Time page group.


6.3.2.4.7 Protect PL/SQL Packages

You must protect the execution of PL/SQL procedures granted to PUBLIC in the database. These procedures pose a security hole when they are executed through a Web browser. For example, some procedures in the dbms_% packages allow access to sensitive information. You can specify which packages to protect with the PlsqlExclusionList directive in the mod_plsql configuration file called dads.conf.


Note:

In earlier releases, you also needed to protect monitoring packages (wwmon_%). For Release 9.0.4 and later releases, these packages have been removed and therefore no longer need protection.


To ensure the best security, specify the following system default settings with the PlsqlExclusionList directive for each DAD:

PlsqlExclusionList sys.*
PlsqlExclusionList dbms_*
PlsqlExclusionList utl_*
PlsqlExclusionList owa_util.*

6.3.2.4.8 Consider SSL and the Login Portlet

To secure passwords going across the Internet you can use Secure Sockets Layer (SSL) communications by configuring OracleAS Portal to run in HTTPS. However, to enable or disable SSL, you must have portal administrator privileges.

Login Portlet Versus Login Page

Portal has the option to place a Login portlet on a page (typically the home page). This portlet shows user name and password fields and a login button when the user is not logged in. If the user is logged in, it shows a logout link. This portlet provides an easy way to log in without having to navigate to a dedicated login page. It also displays in the OracleAS Portal page layout style.

However, if you use this portlet, you must ensure that the pages on which it appears are SSL-encrypted. Bear in mind, that SSL encryption for your complete site could adversely affect performance because it requires more resources. Furthermore, the Login portlet presents a security risk because you cannot prevent showing the login screen since it is shown when the user is not logged in. Hence, in situations where you want SSL encryption on passwords, you should not use the Login portlet when you want SSL encryption. To enforce this restriction, you must remove access rights for the Login portlet in the Portlet Repository.

6.3.2.4.9 Consider LDAP over SSL for Oracle Internet Directory Connections

By default, OracleAS Portal connects to the directory using LDAP without SSL. If the directory server is configured for an SSL port, though, OracleAS Portal can be configured to use LDAP over SSL, also known as LDAPS.

See Also:

Oracle Internet Directory Administrator's Guide

To configure OracleAS Portal to use SSL to connect to the directory, you must run the secupoid.sql script, located in ORACLE_HOME/portal/admin/plsql/wwc. This script enables you to change the following OracleAS Portal configuration parameters related to the directory:

When you install OracleAS Portal, it is automatically configured with a directory server. However, you may want to change some settings, such as whether to use SSL, after installation. To change to an SSL connection for the directory, simply run the secupoid.sql script in the PORTAL schema to specify the LDAPS port instead of the LDAP port, and indicate that you want to use SSL.

Running the secupoid.sql script

The section that follows illustrates a sample execution of secupoid.sql from SQL*Plus.

In the example, the directory was initially configured to run LDAP on port 389. Later, an LDAPS port was activated on 636. Since the server name does not change, we retain the old value, update the port, and indicate that we want to use SSL by setting the Use SSL? value to Y. When you run the script, it displays the current configuration and lets you replace any of the configurable settings. The script also enables you to update OracleAS Portal's directory cache after running it. Since activating SSL does not change any of the directory information cached by OracleAS Portal, it is not usually necessary to refresh the cache in this case.

SQL> @secupoid 
Current Configuration 
-------------------- 
OID Host: oid.domain.com 
OID Port: 389 
Application DN: 
orclApplicationCommonName=PORTAL,cn=Portal,cn=Products,cn=OracleContext 
Application Password: 3E8C2D1B87CB61011757239C5AA9B390 
Use SSL? N 

PL/SQL procedure successfully completed. 

Updating OID Configuration Entries 
Press [Enter] to retain the current value for each parameter 
For SSL Connection to LDAP, specify "Y"es or "N"o 
------------------------------------------------ 
Enter value for oid_host: 
Enter value for oid_port: 636 
Enter value for app_password: 
Enter value for use_ssl_to_connect_to_ldap: Y 
Enter value for refresh_with_new_settings: N 

PL/SQL procedure successfully completed. 

No errors.

After executing the script, OracleAS Portal is configured for LDAPS access of the directory.

6.3.2.4.10 Change the Application Entity Password

OracleAS Portal never passes a user's password to the directory. Only OracleAS Single Sign-On performs that task. However, OracleAS Portal authenticates itself to the directory through its application entity and password.

If you want to change the application entity's password, you need to first change its entry in the directory, using command line utilities or the Oracle Directory Manager. To locate the application entry in the directory, you need its DN, which is reported by the secupoid.sql script. By default, OracleAS Portal's application entry is:

orclApplicationCommonName=PORTAL,cn=Portal,cn=Products,cn=OracleContext 

To change the password, you set the userPassword attribute for the application entry to the new password.

After you have changed the password in the directory, you run secupoid.sql script in the PORTAL schema and specify the new password there, too. Running the script enables OracleAS Portal to encrypt the password and store it for retrieval when it needs to connect to the directory.

For more information about the secupoid.sql script, refer to Section C.3, "Using the secupoid.sql Script".

See Also:

Section 6.1.6.2.1, "Directory Entries in Oracle Internet Directory for OracleAS Portal", for more information about the application entity.

6.3.3 Configuring OracleAS Portal Options for Database Security

Fine-grained access controls and secure application contexts add a new dimension to your ability to secure your data in the database.

Fine-grained access control is sometimes referred to as virtual private database or row level security. Fine-grained access control in the Oracle9i Database Server is the ability to dynamically attach, at runtime, a predicate (WHERE clause) to any and all queries issued against a database table or view. This feature gives you the ability to procedurally modify the query at runtime. You may evaluate who is running the query, where they are running the query from, when they are running the query and develop a predicate given those circumstances. With the use of application contexts, you may securely add additional information to the environment (such as an application role the user may have) and access it in your procedure or predicate as well.

As an example of fine-grained access control, you might have a security policy that determines what rows different groups of people may see. Your security policy will develop a predicate based on who is logged in and what group they are in.

More On Portal Center

You'll find additional information about fine-grained access and application contexts in the technical note "How to Implement Fine Grained Access Controls and Secure Application Contexts," on Portal Center, http://portalcenter.oracle.com. Click the Search icon in the upper right corner of any Portal Center page.


1 The default identity management realm name is determined by the domain name of the server on which the system is installed. For example, if the domain name server was oracle, the default identity management realm name would be dc=oracle,dc=com. If the domain name server cannot be determined, the default name assigned by the directory is dc=Default Company,dc=com


Go to previous page Go to next page
Oracle
Copyright © 2002, 2003 Oracle Corporation.

All Rights Reserved.
Go To Documentation Library
Home
Go To Product List
Solution Area
Go To Table Of Contents
Contents
Go To Index
Index