This chapter discusses further details to consider when designing the logical organization of directory information. It contains these topics:
Enforcement of security policies that meet the requirements of your deployment
An efficient physical deployment of the directory service
Easier configuration of synchronization of a third-party directory with Oracle Internet Directory
Figure 5-1 shows a directory information tree for a hypothetical company, called MyCompany, that is deploying identity management.
MyCompany makes the following decisions with respect to the logical organization of the directory in their U.S. deployment:
A domain name-based scheme is to represent the overall DIT hierarchy. Because the identity management infrastructure is being rolled out in the
us domain, the root of the DIT is
Within the naming context chosen, all users are represented under a container called
cn=users. Within this container, all users are represented at the same level—that is, there is no organization-based hierarchy. In addition, the
uid attribute is chosen as the unique identifier for all users.
Within the naming context chosen, all enterprise groups are represented under a container called
cn=groups. Within this container, all enterprise groups are represented at the same level. The naming attribute for all group entries is
Finally, the container
dc=us is chosen as the root of the identity management realm. In this case, the name of the realm is
us. The deployment expects to enforce similar security policies for all users who fall under the scope of the
The overall structure of the directory information tree
The directory containment and naming for users and groups
The identity management realm
This task involves designing the basic directory information tree that all identity management-integrated applications in the enterprise are to use. As you do this, keep these considerations in mind:
The directory organization should facilitate clean and effective access control. If either full or partial replication is planned, then proper boundaries and policies for replication can be enforced only if the design of the DIT brings out the separation.
If the enterprise is integrating with another directory server, it is best to align the DIT design of Oracle Internet Directory with the existing DIT.
Other directory servers include Oracle products such as Oracle Unified Directory and Oracle Directory Server Enterprise Edition or third-party directory servers such as Microsoft Active Directory.
This consideration also applies to deployments that are rolling out Oracle Internet Directory now but plan to roll out another directory server later—for example, Active Directory, which is required for the operation of software from Microsoft.
In both cases, choosing an Oracle Internet Directory DIT design that is consistent with the integrated directory server makes the management of user and group objects easier through Oracle Delegated Administration Services and other middle-tier applications.
In a single enterprise scenario, choosing a DIT design that aligns with the DNS domain name of the enterprise suffices. For example, if Oracle Internet Directory is set up in a company having the domain name
mycompany.com, then a directory structure that has
dc=mycompany,dc=com is recommended. Oracle recommends that you not use departmental or organization level domain components such as
If the enterprise has an X.500 directory service, and no other third-party LDAP directories in production, then it may benefit by choosing a country-based DIT design. For example, a DIT design with the root of
o=mycompany, c=US might be more suitable for enterprises which already have an X.500 directory service.
Because the directory can be used by several applications—both from Oracle and from third-parties alike—the naming attributes used in relative distinguished names (RDNs) constituting the overall DIT structure should be restricted to well-known attributes. The following attributes are generally well-known among most directory-enabled applications:
c: The name of a country
dc: A component of a DNS domain name
l: The name of a locality, such as a city, county or other geographic region
o: The name of an organization
ou: The name of an organizational unit
st: The name of a state or province
A common mistake is to design the DIT to reflect either the corporate divisional or organizational structure. Because most corporations undergo frequent reorganization and divisional restructuring, this is not advisable. It is important to insulate the corporate directory from organizational changes as much as possible.
This section offers some things to consider when modeling users and groups in Oracle Internet Directory. Most of the design considerations that are applicable to the overall DIT design are also applicable to the naming and containment of users and groups.
The Oracle Identity Management infrastructure uses Oracle Internet Directory as the repository for all user identities. Even though a user might have account access to multiple applications in the enterprise, there is only one entry in Oracle Internet Directory representing that user's identity. The location and content of these entries in the overall DIT must be planned before deploying Oracle Internet Directory and other components of the Oracle Identity Management infrastructure.
As mentioned in the previous section, it is tempting to organize users according to their current departmental affiliations and hierarchy. However, this is not advisable because most corporations undergo frequent reorganization and divisional restructuring. It is more manageable to capture a person's organizational information as an attribute of that person's directory entry.
There are no performance benefits derived from organizing users in a hierarchy according to organizational affiliations or management chain. Oracle recommends that you keep the DIT containing users as flat as possible.
If the deployment has different user populations with each one maintained and managed by a different organization, then Oracle recommends subdividing users into containers based on these administrative boundaries. This simplifies the setting of access controls and helps in cases where replication is needed.
The out-of-the-box default nickname attribute for uniquely identifying users in lookup operations is
uid. This is the default attribute used for logins. The out-of-the-box default naming attribute for constructing a DN is
The default attribute for uniquely identifying users is cn or CommonName. The typical value of CommonName is the person's full name. People's names or email addresses, however, can change and therefore might not be suitable as values of this attribute. If possible, choose a value that will not change and that uniquely identifies a user, such as the employee id.
Typically, most enterprises have a Human Resources department that establishes rules for assigning unique names and numbers for employees. When choosing a unique naming component for directory entries, it is good to exploit this administrative infrastructure and use its policies.
It is required that all user entries created in the directory belong to the following object classes:
If you already have a third-party directory, or plan to integrate with one in the future, then it is beneficial to align the user naming and directory containment in Oracle Internet Directory with the one used in the third-party directory. This simplifies the synchronization and subsequent administration of the distributed directories.
In Oracle Internet Directory Release 9.0.2, the default value for the
nickname attribute was
cn. As of Release 9.0.4, the default value for this attribute is
Some applications integrated with the Oracle Identity Management infrastructure can also base their authorizations on enterprise-wide groups created by the deployment in Oracle Internet Directory. Like user entries, the location and content of these group entries should also be carefully planned. When you design groups, consider the following:
There are no performance benefits to be gained from organizing enterprise groups in a hierarchy based on the organizational affiliations or ownership. Oracle recommends keeping the DIT that contains groups as flat as possible. This facilitates easy discovery of groups by all applications and fosters sharing of these groups across applications.
It is preferable to separate the users and groups in the DIT so that different management policies can be applied to each set of entries.
The attribute used to uniquely identify a group should be
All group entries created by the enterprise in the directory should belong to the following object classes:
orclGroup. The former object class is an internet standard for representing groups. The latter is useful when using the Oracle Internet Directory Self-Service Console to manage groups.
Instead of creating new directory access controls for each enterprise-wide group, consider doing the following:
owner attribute of the group to list which users own this group.
Create an access control policy at a higher level that grants all users listed in the
owner attribute special privileges to perform the various operations.
description attribute, provide information for users to understand the purpose of the group.
Consider using the
displayName attribute from the
orclGroup object class. This attribute enables Oracle Delegated Administration Services and Oracle Internet Directory Self-Service Console to display a more readable name for the group.
If you have different sets of groups, each of which is maintained and managed by a different organization with its own administrative policies, then sub-divide the groups into containers based on these administrative boundaries. This simplifies the setting of access controls. It also helps when replication is needed.
If you already have a third-party directory, or plan to integrate with one in the future, then align the group naming and directory containment in Oracle Internet Directory with the one used in the third-party directory. This simplifies the synchronization and subsequent administration of the distributed directories.
To migrate a DIT from a third-party directory, use the techniques described in Chapter 37, "Migrating Data from Other Data Repositories" and in Oracle Fusion Middleware Administrator's Guide for Oracle Directory Integration Platform for synchronizing with third-party metadirectory solutions and integrating with third-party directories. If you are migrating a DIT from a Microsoft Active Directory environment, also see the chapter on integration with the Microsoft Active Directory Environment. Oracle recommends that you configure the Oracle Internet Directory DIT to be identical to the third-party DIT.