Skip Headers
Oracle® Fusion Middleware Enterprise Deployment Guide for Oracle Identity Management (Oracle Fusion Applications Edition)
11g Release 7 (11.1.7)

Part Number E21032-21
Go to Documentation Home
Home
Go to Book List
Book List
Go to Table of Contents
Contents
Go to Index
Index
Go to Feedback page
Contact Us

Go to previous page
Previous
Go to next page
Next
PDF · Mobi · ePub

A Adding Support for Active Directory

This appendix describes how to add support for Active Directory to your enterprise deployment.

This appendix contains the following sections:

A.1 Creating Adapters in Oracle Virtual Directory

Oracle Virtual Directory communicates with other directories through adapters.

The procedure is slightly different, depending on the directory you are connecting to. The following sections show how to create and validate adapters for supported directories:

A.1.1 Removing Existing Adapters

The provisioning process created Oracle Virtual Directory adapters to Oracle Internet Directory. When you switch the identity store to Active Directory, you must remove these adapters.

  1. Log in to ODSM at: http://admin.mycompany.com/odsm

  2. If you have not already done so, create connections to each of your Oracle Virtual Directory instances using the steps in Section 10.3, "Creating ODSM Connections to Oracle Virtual Directory."

  3. Select one of the Oracle Virtual Directory instances and connect to it.

  4. Click the Adapter tab.

  5. Click the adapter User ID.

  6. Click Delete Selected Adapter.

  7. Repeat for the adapter CHANGELOG_OID.

  8. Repeat Steps 1- 7 for each Oracle Virtual Directory instance.

A.1.2 Creating an Oracle Virtual Directory Adapter for Active Directory

You can use idmConfigTool to create the Oracle Virtual Directory User and Changelog adapters for Oracle Internet Directory and Active Directory. Oracle Identity Manager requires adapters. It is highly recommended, though not mandatory, that you use Oracle Virtual Directory to connect to Oracle Internet Directory.

To do this, perform the following tasks on IDMHOST1:

  1. Set the environment variable ORACLE_HOME to IAM_ORACLE_HOME.

  2. Create a properties file for the Active Directory adapter called ovd1.props, with the following content:

    ovd.host:LDAPHOST1.mycompany.com
    ovd.port:8899
    ovd.binddn:cn=orcladmin
    ovd.password:ovdpassword
    ovd.oamenabled:true
    ovd.ssl:true
    ldap1.type:AD
    ldap1.host:ADIDSTORE.mycompany.com
    ldap1.port:636
    ldap1.binddn:cn=adminuser
    ldap1.password:adpassword
    ldap1.ssl:true
    ldap1.base:dc=mycompany,dc=com
    ldap1.ovd.base:dc=mycompany,dc=com
    usecase.type: single
    

    The following list describes the parameters used in the properties file.

    • ovd.host is the host name of a server running Oracle Virtual Directory.

    • ovd.port is the https port used to access Oracle Virtual Directory (OVD_ADMIN_PORT) in Section 3.7, "Fixed Ports Used by the Provisioning Wizard").

    • ovd.binddn is the user DN you use to connect to Oracle Virtual Directory.

    • ovd.password is the password for the DN you use to connect to Oracle Virtual Directory.

    • ovd.oamenabled is always true in Fusion Applications deployments.

    • ovd.ssl is set to true, as you are using an https port.

    • ldap1.type is set to OID for the Oracle Internet Directory back end directory or set to AD for the Active Directory back end directory.

    • ldap1.host is the host on which back end directory is located. Use the load balancer name.

    • ldap1.port is the port used to communicate with the back end directory (OID_LDAP_PORT in Section 6.1, "Assembling Information for Identity Management Provisioning").

    • ldap1.binddn is the bind DN of the oimLDAP user.

    • ldap1.password is the password of the oimLDAP user

    • ldap1.ssl is set to true if you are using the back end's SSL connection, and otherwise set to false. This should always be set to true when an adapter is being created for AD.

    • ldap1.base is the base location in the directory tree.

    • ldap1.ovd.base is the mapped location in Oracle Virtual Directory.

    • usecase.type is set to Single when using a single directory type.

  3. Configure the adapter by using the idmConfigTool command, which is located at:

    IAM_ORACLE_HOME/idmtools/bin

    Note:

    When you run the idmConfigTool, it creates or appends to the file idmDomainConfig.param. This file is generated in the same directory that the idmConfigTool is run from. To ensure that each time the tool is run, the same file is appended to, always run the idmConfigTool from the directory:

    IAM_ORACLE_HOME/idmtools/bin

    The syntax of the command is:

    idmConfigTool.sh -configOVD input_file=configfile [log_file=logfile]
    

    For example:

    idmConfigTool.sh -configOVD input_file=ovd1.props
    

    The command requires no input. The output looks like this:

    The tool has completed its operation. Details have been logged to logfile
    

Run this command for each Oracle Virtual Directory instance in your topology, with the appropriate value for ovd.host in the property file.

A.1.3 Validating the Oracle Virtual Directory Adapters

Perform the following tasks by using ODSM:

  1. Access ODSM through the load balancer at: http://ADMIN.mycompany.com/odsm

  2. Connect to Oracle Virtual Directory.

  3. Go the Data Browser tab.

  4. Expand Client View so that you can see each of your user adapter root DN's listed.

  5. Expand the user adapter root DN, if there are objects already in the back end LDAP server, you should see those objects here.

  6. ODSM doesn't support changelog query, so you cannot expand the cn=changelog subtree.

    Perform the following tasks by using the command-line:

    • Validate the user adapters by typing:

      ldapsearch -h directory_host -p ldap_port -D "cn=orcladmin" -q  -b <user_search_base> -s sub "objectclass=inetorgperson" dn
      

      For example:

      ldapsearch -h LDAPHOST1.mycompany.com -p 6501 -D "cn=orcladmin" -q -b "cn=Users,dc=mycompany,dc=com" -s sub "objectclass=inetorgperson" dn
      

      Supply the password when prompted.

      You should see the user entries that already exist in the back end LDAP server.

    • Validate changelog adapters by typing:

      ldapsearch -h directory_host -p ldap_port -D "cn=orcladmin" -q  -b "cn=changelog" -s one "changenumber>=0"
      

      For example:

      ldapsearch -h LDAPHOST1 -p 6501 -D "cn=orcladmin" -q -b "cn=changelog" -s one "changenumber>=0"
      

      The command returns logs of data, such as creation of all the users. It returns without error if the changelog adapters are valid.

    • Validate lastchangenumber query by typing:

      ldapsearch -h directory_host -p ldap_port -D "cn=orcladmin" -q -b "cn=changelog" -s base 'objectclass=*' lastchangenumber
      

      For example:

      ldapsearch -h LDAPHOST1 -p 6501 -D "cn=orcladmin" -q -b "cn=changelog" -s base 'objectclass=*' lastchangenumber
      

      The command returns the latest change number generated in the back end LDAP server.

A.2 Preparing Active Directory

Prepare Active Directory as described in the following sections:

A.2.1 Configuring Active Directory for Use with Oracle Access Manager and Oracle Identity Manager

This section describes how to configure Active Directory. Extend the schema in Active Directory as follows.

Note:

The order in which you perform the steps is critical!

  1. Locate the following files:

    IDM_ORACLE_HOME/oam/server/oim-intg/ldif/ad/schema/ADUserSchema.ldif

    IDM_ORACLE_HOME/oam/server/oim-intg/ldif/ad/schema/AD_oam_pwd_schema_add.ldif

  2. In both these files, replace the domain-dn with the appropriate domain-dn value

  3. Use ldapadd from the command line to load the two LDIF files, as follows.

    ldapadd -h activedirectoryhostname -p activedirectoryportnumber -D AD_administrator -q -c -f file
    

    where AD_administrator is a user which has schema extension privileges to the directory

    For example:

    ldapadd -h "ACTIVEDIRECTORYHOST.mycompany.com" -p 389 -D adminuser –q -c -f ADUserSchema.ldif
    ldapadd -h "ACTIVEDIRECTORYHOST.mycompany.com" -p 389 -D adminuser -q -c -f AD_oam_pwd_schema_add.ldif
    

    Note:

    After the -D you can specify either a DN or user@domain.com.

  4. Then go to:

    IAM_MW_HOME/oracle_common/modules/oracle.ovd_11.1.1/oimtemplates

    Run the following command to extend Active Directory schema:

    sh extendadschema.sh -h AD_host -p AD_port -D 'administrator@mydomain.com' -AD "dc=mydomain,dc=com" -OAM true
    

A.2.2 Creating Users and Groups

Create users and groups as described in the following sections.

A.2.2.1 Creating Users and Groups by Using the idmConfigTool

Configure the Identity Store by using the command idmConfigTool, which is located at:

IAM_ORACLE_HOME/idmtools/bin

Note:

When you run the idmConfigTool, it creates or appends to the file idmDomainConfig.param. This file is generated in the same directory in which the idmConfigTool is run. To ensure that the same file is appended to every time you run the tool, always run the idmConfigTool from the directory:

IAM_ORACLE_HOME/idmtools/bin

The syntax of the command on Linux is:

idmConfigTool.sh -prepareIDStore mode=all input_file=configfile 

For example:

idmConfigTool.sh -prepareIDStore mode=all input_file=idstore.props

When the command runs, it prompts you to enter the password of the account you are connecting to and passwords for the accounts that are being created.

Note:

The password must conform to the following rules:

  • Six characters or more

  • One or more numeric character

  • Two or more alphabetic characters

  • Start with alphabetic character

  • One or more lowercase character

Note:

This invocation of idmConfigTool creates the group orclFAOAMUserWritePrivilegeGroup.

A.2.2.2 Creating the Configuration File

Create a property file, idstore.props, to use when preparing the Identity Store. The file will have the following structure:

# Common
IDSTORE_HOST: LDAPHOST1.mycompany.com
IDSTORE_PORT: 389 
IDSTORE_BINDDN: cn=orcladmin
IDSTORE_GROUPSEARCHBASE: cn=Groups,dc=mycompany,dc=com
IDSTORE_SEARCHBASE: dc=mycompany,dc=com
IDSTORE_USERNAMEATTRIBUTE: cn
IDSTORE_LOGINATTRIBUTE: uid
IDSTORE_USERSEARCHBASE: cn=Users, dc=mycompany,dc=com
POLICYSTORE_SHARES_IDSTORE: true
# OAM
IDSTORE_OAMADMINUSER:oamadmin 
IDSTORE_OAMSOFTWAREUSER:oamLDAP 
OAM11G_IDSTORE_ROLE_SECURITY_ADMIN:OAMAdministrators
# OAM and OIM
IDSTORE_SYSTEMIDBASE: cn=systemids,dc=mycompany,dc=com 
# OIM
IDSTORE_OIMADMINGROUP: OIMAdministrators 
IDSTORE_OIMADMINUSER: oimLDAP 
# Required due to bug
IDSTORE_OAAMADMINUSER : oaamadmin
# Fusion Applications
IDSTORE_READONLYUSER: IDROUser 
IDSTORE_READWRITEUSER: IDRWUser 
IDSTORE_SUPERUSER: weblogic_fa 
# Weblogic
IDSTORE_WLSADMINUSER : weblogic_idm

Where:

  • IDSTORE_BINDDN is an administrative user in the Identity Store Directory

  • IDSTORE_GROUPSEARCHBASE is the location in the directory where Groups are Stored.

  • IDSTORE_HOST and IDSTORE_PORT are, respectively, the host and port of your Identity Store directory. Specify the back end directory here, rather than Oracle Virtual Directory.

    Active Directory: LDAPHOST1 and 389

  • IDSTORE_LOGINATTRIBUTE is the LDAP attribute which contains the users Login name.

  • IDSTORE_OAMADMINUSER is the name of the user you want to create as your Oracle Access Manager Administrator.

  • IDSTORE_OAMSOFTWAREUSER is a user that gets created in LDAP that is used when Oracle Access Manager is running to connect to the LDAP server.

  • IDSTORE_OIMADMINGROUP Is the name of the group you want to create to hold your Oracle Identity Manager administrative users.

  • IDSTORE_OIMADMINUSER is the user that Oracle Identity Manager uses to connect to the Identity store.

  • IDSTORE_READONLYUSER is the name of a user you want to create which has Read Only permissions on your Identity Store.

  • IDSTORE_READWRITEUSER is the name of a user you want to create which has Read/Write permissions on your Identity Store.

  • IDSTORE_SUPERUSER is the name of the administration user you want to use to log in to the WebLogic Administration Console in the Oracle Fusion Applications domain.

  • IDSTORE_SEARCHBASE is the location in the directory where Users and Groups are stored.

  • IDSTORE_SYSTEMIDBASE is the location of a container in the directory where users can be placed when you do not want them in the main user container. This happens rarely but one example is the Oracle Identity Manager reconciliation user which is also used for the bind DN user in Oracle Virtual Directory adapters.

  • IDSTORE_USERSEARCHBASE is the location in the directory where Users are Stored.

  • OAM11G_IDSTORE_ROLE_SECURITY_ADMIN is the name of the group which is used to allow access to the OAM console.

  • POLICYSTORE_SHARES_IDSTORE is set to true for IDM 11g.

  • IDSTORE_OAAMADMINUSER is required because of a bug in idmConfigTool.

A.2.3 Creating Access Control Lists in Non-Oracle Internet Directory Directories

In the preceding sections, you seeded the Identity Store with users and artifacts for the Oracle components. If your Identity Store is hosted in a non-Oracle Internet Directory directory, such as Microsoft Active Directory, you must set up the access control lists (ACLs) to provide appropriate privileges to the entities you created. This section lists the artifacts created and the privileges required for the artifacts.

  • Users and groups. ACLs to the users and groups container are provided in Oracle Internet Directory. Set them manually for other directories. The Oracle Identity Manager/Oracle Access Manager integration and Fusion Applications require the following artifacts to be created in the Identity store.

    • Group with read privileges to the users container (orclFAUserReadPrivilegeGroup). Configure the local directory ACLs so that this group has privileges to read all the attributes of the users in the Identity Store.

    • Group with read/write privileges to the users container (orclFAUserWritePrivilegeGroup)

    • Group with read privileges to the groups container (orclFAGroupReadPrivilegeGroup)

    • Group with read privileges to the groups container (orclFAGroupWritePrivilegeGroup)

    • Group with write privileges to a partial set of attributes (orclFAUserWritePrefsPrivilegeGroup)

  • The user specified by the IDSTORE_READONLYUSER parameter. When you run the preconfigIDstore command, this user is assigned to the groups orclFAUserReadPrivilegeGroup, orclFAWritePrefsPrivilegeGroup, and orclFAGroupReadPrivilegeGroup. The user also needs compare privileges to the userpassword attribute of the user entry.

  • The user specified by the IDSTORE_READWRITEUSER parameter. It is assigned to the groups orclFAUserWritePrivilegeGroup and orclFAGroupWritePrivilegeGroup.

  • Systemids. The System ID container is created for storing all the system identifiers. If there is another container in which the users are to be created, that is specified as part of the admin.

  • Oracle Access Manager Admin User. This user is added to the OAM Administrator group, which provides permission for the administration of the Oracle Access Manager Console. No LDAP schema level privileges are required, since this is just an application user.

  • Oracle Access Manager Software User. This user is added to the groups where the user gets read privileges to the container. This is also provided with schema admin privileges.

  • Oracle Identity Manager user oimLDAP under System ID container. Password policies are set accordingly in the container. The passwords for the users in the System ID container must be set up so that they do not expire.

  • Oracle Identity Manager administration group. The Oracle Identity Manager user is added as its member. The Oracle Identity Manager admin group is given complete read/write privileges to all the user and group entities in the directory.

  • WebLogic Administrator. This is the administrator of the IDM domain for Oracle Virtual Directory

  • WebLogic Administrator Group. The WebLogic administrator is added as a member. This is the administrator group of the IDM domain for Oracle Virtual Directory.

  • Reserve container. Permissions are provided to the Oracle Identity Manager admin group to perform read/write operations.

A.3 Modifying Oracle Identity Manager to Support Active Directory

When first installed, Oracle Identity Manager has a set of default system properties for its operation.

If your Identity Store is in Active Directory, you must change the System property XL.DefaultUserNamePolicyImpl to oracle.iam.identity.usermgmt.impl.plugins.FirstNameLastNamePolicyForAD or oracle.iam.identity.usermgmt.impl.plugins.LastNameFirstNamePolicyForAD.

To learn how to do this, see the Administering System Properties chapter of Oracle Fusion Middleware Administrator's Guide for Oracle Identity Manager.

A.4 Updating the Username Generation Policy for Active Directory

If your back end directory is Active Directory, you must update Oracle Identity Manager so that it only allows user names with a maximum of 20 characters. This is a limitation of Active Directory. Update the username generation policy from DefaultComboPolicy to FirstnameLastnamepolicyforAD as follows.

  1. Log in to the OIM Console at the URL listed in Section 16.2, "About Identity Management Console URLs."

  2. Click Advanced on the top of the right pane.

  3. Click Search System properties.

  4. On the navigation bar in the left pane, search on Username Generation.

  5. Click Default Policy for Username Generation.

  6. In the Value field, update the entry from oracle.iam.identity.usermgmt.impl.plugins.DefaultComboPolicy to oracle.iam.identity.usermgmt.impl.plugins.FirstNameLastNamePolicyForAD.

  7. Click Save.