Skip Headers
Oracle® Identity Management Integration Guide
10g Release 2 (10.1.2)
B14085-02
  Go To Documentation Library
Home
Go To Product List
Solution Area
Go To Table Of Contents
Contents
Go To Index
Index

Previous
Previous
Next
Next
 

12.5 Organization of User Profiles in Oracle Internet Directory

This section discusses the organization of user profiles in Oracle Internet Directory. It contains these topics:

12.5.1 Organization of Provisioning Entries in the Directory Information Tree

The Oracle Provisioning Service relies on user profiles in the DIT that consist of attributes containing personal information and preferences for the various applications in which the user is provisioned. These user attributes for the Oracle Provisioning Service can be categorized as follows:

  • Base attributes that are available for every user entry

  • Application-specific attributes that are only available if a user is provisioned in an application

Base user attributes primarily belong to standard LDAP object classes such as organizationalPerson and inetOrgPerson, and consist of personal details that include first name, last name, given name, e-mail address, and telephone numbers. Base user attributes also consist of Oracle application-specific attributes that belong to the orclUserV2 auxilliary class.

Oracle Internet Directory is the primary repository for both base attributes and application-specific attributes. Both types of attributes are stored in each user's profile. However, an application may cache user attributes that are updated with the provisioning event notification service.As shown in Figure 12-6, user attributes are stored in two locations within the DIT. Base user entries, which include attributes belonging to inetorgperson and orcluserv2, are stored under cn=users,Realm DN. The provisioning status of each user entry is also stored in the base user entry. Application-specific attributes reside in separate entries in the application container. The LDAP schema relating to the application-specific attribute definitions and the object classes are created during the install or upgrade process. Application-specific attributes are qualified by an auxiliary object class, which will enable searching for the application-specific user properties of the entry. By default, application-specific entries are stored as orclOwnerGUID=GUID of the Base User under the cn=User Properties, cn=Application Type, cn=Products,cn=OracleContext, Realm DN container.Some applications manage their own application attributes and implement the Data Access Java plug-in, which is described in "Understanding Provisioning Concepts". The Oracle Provisioning Service invokes this plug-in whenever the base user attributes or application-specific attributes are modified.

Figure 12-6 Base User and Application-Specific Attributes

This illustration is described in the text.
Description of "Figure 12-6 Base User and Application-Specific Attributes"

12.5.2 Understanding User Provisioning Statuses

This section discusses the user provisioning statuses in Oracle Internet Directory. It contains these topics:

12.5.2.1 Provisioning Status in Oracle Internet Directory

The Oracle Provisioning Service records a user's provisioning status in Oracle Internet Directory for each provisioning-integrated application. Provisioning status can be set by the Oracle directory integration and provisioning server, with bulk provisioning using the Directory Integration and Provisioning Assistant, or by a provisioning-integrated application. Table 12-1 lists the provisioning statuses.

Table 12-1 Provisioning Statuses in Oracle Internet Directory

Internal Status GUI Status Description

Provisioning Statuses



PROVISIONING_REQUIRED

Pending

Provisioning required. This status is selected by an administrator or set according to an application's provisioning policies. Note that this status does determine whether a user has been provisioned.

PROVISIONING_IN_PROGRESS

In Progress

Provisioning in progress. The user can access the application when this is the current status. if the application performs provisioning at scheduled intervals. The application may also provision the user on-demand.

PROVISIONING_SUCCESSFUL

Successful

Provisioning successful. This status is updated automatically by the Oracle directory integration and provisioning server, with bulk provisioning using the Directory Integration and Provisioning Assistant, or a provisioning-integrated application.

PROVISIONING_NOT_REQUIRED

Not Requested

Provisioning not required. This status is selected by an administrator or set according to an application's provisioning policies. Note that this status does determine whether a user will not be provisioned.

PROVISIONING_FAILURE

Failed

Provisioning failed. This status is updated automatically by the Oracle directory integration and provisioning server, with bulk provisioning using the Directory Integration and Provisioning Assistant, or a provisioning-integrated application. The user cannot access the application when this is the current status.

Deprovisioning Statuses



DEPROVISIONING_REQUIRED

Pending de-provisioning

Deprovisioning required. The user is still provisioned when this is the current status.

DEPROVISIONING_IN_PROGRESS

De-provisioning In Progress

Deprovisioning in progress.

DEPROVISIONING_SUCCESSFUL

Successfully de-provisioned

Deprovisioning successful. The user cannot access the application when this is the current status.

DEPROVISIONING_FAILURE

Failed de-provisioning

Deprovisioning failed. The user is still provisioned when this is the current status.

Upgrade Statuses



PENDING_UPGRADE

Pending Upgrade

Provisioning upgrade pending.

UPGRADE_IN_PROGRESS

Upgrade In Progress

Provisioning upgrade in progress.

UPGRADE_FAILURE

Upgrade Failed

Provisioning upgrade failed.


The provisioning status for each application is stored in the orclUserApplnProvStatus attribute in a user entry. This attribute is indexed in Oracle Internet Directory and searchable. A subtyped orclUserApplnProvStatus attribute is created for each provisioning-integrated application. For example, the following statements store a user's provisioning statuses for an e-mail application and a scheduling application. The user's provisioning status for the e-mail application is PROVISIONING_SUCCESS while his or her provisioning status for the scheduling application is PROVISIONING_FAILURE.

orclUserApplnProvStatus;CORP-MAIL_E-MAIL:PROVISIONING_SUCCESS
orclUserApplnProvStatus;CORP-SCHEDULE_CALENDAR:PROVISIONING_FAILURE

Additional information about a user's provisioning status in an application is stored in the orclUserApplnProvStatusDesc attribute and the provisioning failure account for each application is stored in the orclUserApplnProvFailureCount attribute. As with the orclUserApplnProvStatus attribute, separate orclUserApplnProvStatusDesc and orclUserApplnProvFailureCount attributes are created for each provisioning-integrated application. The format for the orclUserApplnProvStatusDesc attribute is the same as the orclUserApplnProvStatus attribute, except that a timestamp and descriptive information are appended to the application name and type, as follows:

orclUserApplnProvStatusDesc;CORP-MAIL_E-MAIL:20040101010101^Missing employee ID

The orclUserApplnProvStatus, orclUserApplnProvStatusDesc, and orclUserApplnProvFailureCount attributes are contained in the orclUserProvStatus object class as optional attributes.

12.5.2.2 Provisioning Status Transitions

Table 12-2 lists the valid provisioning status transitions.

Table 12-2 Valid Provisioning Status Transitions in Oracle Internet Directory

Internal Status GUI Status Valid Transition From

Provisioning Statuses



PROVISIONING_REQUIRED

Pending

Initial missing state

DEPROVISIONING_SUCCESSFUL

PROVISIONING_IN_PROGRESS

In Progress

PROVISIONING_REQUIRED

PROVISIONING_SUCCESSFUL

Successful

PROVISIONING_REQUIRED

PROVISIONING_IN_PROGRESS

PROVISIONING_FAILURE

PROVISIONING_NOT_REQUIRED

Not Requested

Initial missing state

PROVISIONING_FAILURE

Failed

PROVISIONING_REQUIRED

PROVISIONING_IN_PROGRESS

Deprovisioning Statuses



DEPROVISIONING_REQUIRED

Pending de-provisioning

PROVISIONING_SUCCESSFUL

DEPROVISIONING_IN_PROGRESS

De-provisioning In Progress

PROVISIONING_SUCCESSFUL

DEPROVISIONING_SUCCESSFUL

Successfully de-provisioned

DEPROVISIONING_REQUIRED

DEPROVISIONING_IN_PROGRESS

DEPROVISIONING_FAILURE

DEPROVISIONING_FAILURE

Failed de-provisioning

DEPROVISIONING_REQUIRED

DEPROVISIONING_IN_PROGRESS


Figure 12-7 illustrates the valid provisioning status transitions.

Figure 12-7 Valid Provisioning Status Transitions

This illustration is described in the text.
Description of "Figure 12-7 Valid Provisioning Status Transitions"

12.5.2.3 Upgrading and Coexistence Provisioning Statuses

In Oracle Identity Management 10g Release 2 (10.1.2), a user entry can be physically represented in Oracle Internet Directory by multiple LDAP entries. In addition to the base user entry, separate LDAP entries may exist for each provisioning-integrated application.

In a typical upgrade of Oracle Identity Management, multiple middle tiers are not upgraded simultaneously. This means that following an Oracle Identity Management upgrade, middle tiers from a previous version may need to run in parallel with middle tiers from the upgraded version. When a middle tier is upgraded, all of a user's application-specific data that was previously stored in the application metadata repository, will be migrated on-demand. For each user entry that is present in Oracle Internet Directory prior to the upgrade, the Oracle directory integration and provisioning server will initiate a new user event and assign a provisioning status of PENDING_UPGRADE to the user entry. If a new user entry is created from an older middle tier or some unsupported route, such as an existing application using the standard LDAP SDK, the provisioning status attribute will be missing. In this case, the Oracle directory integration and provisioning server also initiates a new user event and assign a provisioning status of PENDING_UPGRADE to the user entry.

Once a provisioning-integrated application receives the event, it will return a response to the Oracle directory integration and provisioning server indicating whether the user is provisioned or not provisioned. The Oracle directory integration and provisioning server then updates the provisioning status in the user entry accordingly.

12.5.2.4 Provisioning Statuses and Exception Handling

If a new user entry created with the Provisioning Console or through synchronization with an external data source does not contain enough information to provision the user in a particular application, provisioning may fail. Provisioning can also fail for a variety of other reasons. The Oracle Provisioning Service identifies user provisioning failures as exceptions. Whenever an application responds to a USER_ADD event with a failure status, the Oracle directory integration and provisioning server will change the user's provisioning status to PROVISIONING_FAILURE. The directory integration and provisioning server will then send notifications to the applications of the failed cases also just like a new user case. This will serve as a retry for the provisioning request. The provisioning status of a user displays in the Provisioning Console. The administrator can make the necessary changes to fix the problem and the provisioning would get retried automatically. This will result in invocation of the data access plug in if the provisioning is synchronous. However, an event will be propagated if the provisioning is asynchronous.This sequence of steps would be retried again as long as the user is not provisioned successfully.