Portal Express, Version 6.0
Operating systems: i5/OS, Linux, Windows
Use multiple realms and user registries
The information in this file describes how to configure WebSphere Portal Express to use multiple realms and user registries.
- Overview
- Preparation
- Configuration
- Sample Configuration
- Aspects when using Member Manager in a cluster
- Enabling LDAP server as Localmode
- Recommendations
- Limitations
Overview
A Realm allows you to group users from one or more LDAP trees of one user registry and expose them as a coherent user population to WebSphere Portal Express; this is also referred to as horizontal partitioning. Realms allow a flexible user management with various configuration options; for example, you can combine principals from one or more corporate LDAP tree. A realm must be mapped to a Virtual Portal to allow the realm's defined user population to login to the Virtual Portal. See Multiple virtual portals for more information. Realm membership is validated during authentication to ensure that a virtual portal can only be accessed by members of the corresponding realm. Therefore, users from one realm cannot access another realm unless they are also members of that group. For example, a wpsadmin will not be able to log in to a virtual portal unless the wpsadmin is a member of the corresponding realm. Multiple virtual portals can share the same user population by specifying the same realm relationship. Realms can overlap, which allows users to be members of more than one realm.
Preparation
To use Realms, the WebSphere Application Server user registry provided by Member Manager must be used as the authentication mechanism in WebSphere Application Server. Use the enable-security-wmmur-ldap and enable-security-wmmur-db tasks to use the realm feature.
When combining multiple registries, ensure that the distinguished names are unique over all repositories. When using enable-security-wmmur-db, the IDs entered in the wpconfig.properties file (PortalAdminId, WasUserId, ...) are created in the database; these must not exist with its distinguished names in the other registries you want to add later.
When in non-security mode, using enable-security-ldap, or registering a custom user registry as WebSphere Application Server Authentication mechanism, realms cannot be leveraged. For more information about configuring security, see the following links:
Configuration
The Member Manager configuration files are located in the portal_server_root/wmm/ directory. The following files contain the Member Manager configuration.
The Member Manager configuration files within a clustered environment are moved from the portal_server_root/wmm/ directory to the was_profile_root/config/wmm directory by way of a configuration task that uploads and replicates to all cluster nodes.
- wmm.xml contains the basic configuration for Member Manager as well as the definition of the different user repositories. The user repositories reference different files for their attribute mappings; see wmmLDAPServerAttributes.xml.
- wmmur.xml contains the realm definition including the suffixes for user and group creation and the realm mappings to the different user repositories defined in wmm.xml.
- wmmAttributes.xml contains the attributes (for example uid or cn) that Member Manager supports.
- wmmLDAPServerAttributes.xml contains the attributes that map the LDAP attributes to the Member Manager attributes defined in wmmAttributes.xml. Multiple files can exist because each user repository requires its own attribute mapping.
- wmmWASAdmin.xml contains the userid and password of the user that WebSphere Application Server uses during startup for the servers if Member Manager is not available.
When using the multiple realm feature, only adjust the wmmAttributes.xml file to add or remove attributes from the default. Refer to the following sections for more information about these files:
wmm.xml
The wmm.xml file defines general information about Member Manager:
Parameter Definition defaultRealmName Use this parameter to define the name of the realm used as default from the WMMUR information horizontalPartitioning Use this parameter to define if you will use multiple user repositories. Set this to true if you are using multiple LDAP repositories or a database and an LDAP repository. lookaside Use this parameter if you will use a database attribute store to store additional attributes beside the LDAP database. The default setting is false. configurationFile Use this parameter to define the attributes that Member Manager returns. maximumSearchResult Use this parameter to define the maximum number of returned objects for a non-paged search result. The default setting is 200. searchTimeOut Use this parameter to define the number of milliseconds a search result remains active.
Repository settings:
The tag <repositories>...</repositories> contains the following repositories; see the associated links for sample code settings:
- Member Manager database repository configuration
- Member Manager LDAP repository configuration
- Member Manager Federation Repository
- Member Manager lookaside repository configuration
- Custom user repository
wmmLDAPServerAttributes.xml
The wmmLDAPServerAttributes.xml file defines all the Member Manager attribute definitions and the LDAP attribute mappings. The following is a list of general rules to define attributes in the XML file:
- The corresponding wmmAttributesMap.dtd file is located in the same directory. Always follow the DTD defined format.
- Use the following XML tagging order:
- <repositoryAttributes> is the root tag and all other <attributeMap> tags must be defined within it.
- <attributeMap> and <compositeAttributeMap> must be defined directly under <repositoryAttributes>. The stand-alone attributes must first be defined using <attributeMap> and then composite attributes must be defined using <compositeAttributeMap>
- To define composite attributes, define <componentAttributeMap> or <componentCompositeAttributeMap> using <compositeAttributeMap>. Again, define non-composite component attributes using <componentAttributeMap> before defining <componentCompositeAttributeMap> within a composite attribute. Within <componentCompositeAttributeMap>, you can use <componentAttributeMap> and <componentCompositeAttributeMap> again to define more parameters. This process can be repeated as necessary.
The attribute definitions in the wmmLDAPServerAttributes.xml file must be consistent with entries in the wmmAttributes.xml file.
- The following attribute definitions can be set within the attribute map:
Parameter Name Description wmmAttributeName (Required) The attribute name used in Member Manager. This parameter should be consistent with the name in wmmAttributes.xml
pluginAttributeName (Required) The attribute name used in the profile repository. applicableMemberTypes (Required) The member types that the attribute is applicable to. Use a semicolon (;) as the separator. The valid member types are: Person;Group;Organization;OrganizationalUnit. The order is not forced. requiredMemberTypes The member types that the attribute is mandatory for. Use a semicolon (;) as the separator. The valid member types are: Person;Group;Organization;OrganizationalUnit. multiValued (Required) Set to true if the attribute is multi-value; otherwise, set to false. readOnly Set to true if the attribute is read only; otherwise set to false. dataType (Required) The data type of the attribute. The valid types are: String, Integer, Timestamp, Object, ByteArray, Long, Double, MemberIdentifier. classname If the attribute dataType is Object, define the Java class name for the dataType. For example, classname="java.lang.Boolean". valueLength An integer to indicate the maximum length of the String attribute. defaultValue The default value of the attribute. defaultAttribute The default attribute to use when this attribute value is not set. description The description of the attribute. pluginDataType The data type of the plug-in attribute in the profile repository. This field is required if the pluginDataType is different from the dataType.
wmmur.xml
Type the following lines between the <realms>...</realms> tag to add additional realms:<realm delimiter="@" default="true"> <node wmmnode="dc=test,dc=com"/> <node wmmnode="cn=users,dc=test,dc=com" defaultParent="Person" /> <node wmmnode="cn=groups,dc=test,dc=com" defaultParent="Group" /> </realm>You can add as many wmmNodes as required. Place wmmNodes under the membership hierarchy scope of the nodes defined in the wmm.xml file for each repository. If you plan to set this realm for a Virtual Portal, you need to add the following entries; This is not required for the default realm if it is not mapped to a Virtual Portal:
You must add one node with the property defaultParent="Person" defined; the specified node is used as parent distinguished name when creating users. You also must add one node with the property defaultParent="Group" defined; the specified node is used as parent distinguished name when creating groups. Sample: When you create a user in WebSphere Portal Express while being in a Virtual Portal that is mapped to the realm portal defined above, a user with name myuser will get the distinguished name <rdn-attribute>=myuser,cn=users,dc=test,dc=com.
The following table lists xml tags, parameter names, and descriptions for Realms:
XML Tag Parameter Name Description Realm id The unique name of the realm. delimiter A separator between the user ID and realm ID. "\" is the special character handler. If the user ID or realm ID contains special characters, put a backslash in front of the special character. Do not give a realm that contains other realm delimiters inside.
For example, userId=user1@ca.ibm.com; delimiter=@; realm=ibmclub; When passing UserId to WMMUR, the string should look like: user1\@ca.ibm.com@ibmclub.
default If true, this realm is a default realm. Define only one realm as the default realm in the whole WMMUR configuration.
Node wmmnode The Member Manager node value. In wmm.xml, each repository has a nodeMaps definition. Here, wmmnode should match the Member Manager member node. For example, in wmm.xml, one of the <nodeMap> has the following value: <nodeMap node="dc=yourco,dc=com" pluginNode="dc=yourco,dc=com"/>In wmmur.xml, the <node> could be:<node wmmnode=" dc=yourco,dc=com"/>The cases are sensitive. The wmmNode case in wmmur.xml should match the node case in wmm.xml.
defaultParent (Optional) Set this wmmNode to be the default parent DN for specified member type. The member type can be Person for users or Group for groups.
The realm that is flagged as the default realm must contain all wmmNodes that are defined in the other realms.
wmmWASAdmin.xml
The following table lists xml tags, parameter names, and descriptions for wmmWASAdmins:
XML Tag Parameter Name Description admin logonID The ID used for logon. logonPassword The encrypted user password. Although clear text passwords are accepted, it is highly recommended that you encrypt the password. Use the encryption tool that Member Manager provides.
uniqueUserID The distinguished user name.
Sample Configuration
The following are sample configurations:
- Using a database user registry
wmm.xml: portal_server_root/wmm/wmm_DB.xml
wmmLDAPServerAttributes.xml: portal_server_root/wmm/wmmDBAttributes.xml
wmmur.xml: <?xml version="1.0" encoding="UTF-8"?>
<wmmur> <realms> <realm delimiter="@" default="true"> <node wmmnode="o=Default Organization"/> </realm> </realms> </wmmur>- Using a single LDAP directory with a single Member Manager node
wmm.xml: There are different sample files for all LDAP directories supported by WebSphere Portal Express in the portal_server_root/wmm/ directory. The following table shows all supported files:
File Name Description wmm_LDAP.xml Sample configuration for a generic LDAP directory wmm_LDAP_LA.xml Additional configuration required for Lookaside database. wmm_LDAP_LA_AD.xml Sample file for LDAP (Microsoft® Active Directory 2000, SSL) plus Lookaside configuration wmm_LDAP_LA_DM.xml Sample file for LDAP (Domino® Directory V6) plus Lookaside configuration wmm_LDAP_LA_IDS.xml Sample file for LDAP (IBM® Tivoli® Directory Server 5.1, SSL) plus Lookaside configuration wmm_LDAP_LA_NDS.xml Sample file for LDAP (Novell eDirectory, SSL) plus Lookaside configuration wmm_LDAP_LA_SO.xml Sample file for LDAP (Sun Java System Directory Server) plus Lookaside configuration
wmmLDAPServerAttributes.xml: Check the files referenced by the wmm_LDAP_LA_* files in the portal_server_root/wmm/ directory.
wmmur.xml:
<?xml version="1.0" encoding="UTF-8"?> <wmmur> <realms> <realm delimiter="@" default="true"> <node wmmnode="dc=test,dc=com"/> <node wmmnode="cn=users,dc=test,dc=com" defaultParent="Person" /> <node wmmnode="cn=groups,dc=test,dc=com" defaultParent="Group" /> </realm> </realms> </wmmur>- Using a single LDAP directory with multiple Member Manager nodes
wmm.xml: There are different sample files for all LDAP directories supported by WebSphere Portal Express in the portal_server_root/wmm/ directory. The following table shows all supported files:
File Name Description wmm_LDAP.xml Sample configuration for a generic LDAP directory wmm_LDAP_LA.xml Additional configuration required for Lookaside database wmm_LDAP_LA_AD.xml Sample file for LDAP (Active Directory 2000, SSL) plus Lookaside configuration wmm_LDAP_LA_DM.xml Sample file for LDAP (Domino Directory V6) plus Lookaside configuration wmm_LDAP_LA_IDS.xml Sample file for LDAP (Tivoli Directory Server 5.1, SSL) plus Lookaside configuration wmm_LDAP_LA_NDS.xml Sample file for LDAP (Novell eDirectory, SSL) plus Lookaside configuration wmm_LDAP_LA_SO.xml Sample file for LDAP (Sun Java System Directory Server) plus Lookaside configuration
wmmLDAPServerAttributes.xml: Check the files referenced by the wmm_LDAP_LA_* files in the portal_server_root/wmm/ directory.
wmmur.xml:
<?xml version="1.0" encoding="UTF-8"?> <wmmur> <realms> <realm delimiter="@" default="true"> <node wmmnode="dc=raleigh,dc=ibm,dc=com"/> <node wmmnode="dc=sanjose,dc=ibm,dc=com"/> <node wmmnode="cn=users,dc=raleigh,dc=ibm,dc=com" defaultParent="Person" /> <node wmmnode="cn=groups,dc=raleigh,dc=ibm,dc=com" defaultParent="Group" /> </realm> <realm id="suffix2" delimiter="@" default="false"> <node wmmnode="dc=sanjose,dc=ibm,dc=com"/> <node wmmnode="cn=users,dc=sanjose,dc=ibm,dc=com" defaultParent="Person" /> <node wmmnode="cn=groups,dc=sanjose,dc=ibm,dc=com" defaultParent="Group" /> </realm> </realms> </wmmur>wmm.xml
To successfully use the user/group search function for additional nodes that use different suffixes than your default realm, add them to the <nodeMaps> definition of your configured <ldaprepository> as shown below:
<-----Existing section for base node-----> <ldapRepository name="wmmLDAP" UUID="LDAP1" profileRepositoryForGroups="LDAP1" ......... <nodeMaps> //Point to the suffix information defined for the realm <nodeMap node="dc=raleigh,dc=ibm,dc=com" pluginNode="dc=raleigh,dc=ibm,dc=com"/> <NodeMap node="cn=users,dc=raleigh,dc=ibm,dc=com" pluginNode="cn=users,dc=raleigh,dc=ibm,dc=com"/> <nodeMap node="cn=groups,dc=raleigh,dc=ibm,dc=com" pluginNode="cn=groups,dc=raleigh,dc=ibm,dc=com"/> <nodeMap node="dc=sanjose,dc=ibm,dc=com" pluginNode="dc=sanjose,dc=ibm,dc=com"/> <NodeMap node="cn=users,dc=sanjose,dc=ibm,dc=com" pluginNode="cn=users,dc=sanjose,dc=ibm,dc=com"/> <nodeMap node="cn=groups,dc=sanjose,dc=ibm,dc=com" pluginNode="cn=groups,dc=sanjose,dc=ibm,dc=com"/> </nodeMaps> </ldapRepository>- Combining multiple LDAPswmm.xml: The following table shows sample configuration files for supporting multiple LDAPs:
File Name Description wmm_LDAP_IDS_AD.xml Sample configuration for supporting two LDAP repositories: Tivoli Directory Server and Active Directory wmm_LDAP_LA_IDS_DM.xml Sample configuration for supporting two LDAP repositories: Tivoli Directory Server and Domino Directory, plus additional configuration required for LookAside database.
wmmLDAPServerAttributes.xml: Check the files referenced by the wmm_LDAP_LA_* files in the portal_server_root/wmm/ directory.
wmmur.xml:
<wmmur> <realms> <realm delimiter="@" default="true"> <node wmmnode="dc=raleigh,dc=ibm,dc=com/"> <node wmmnode="OU=hr,o=ibm,C=us"/> </realm> <realm id="suffix2" delimiter="@" default="false"> <node wmmnode="OU=hr,o=ibm,C=us"/> <node wmmnode="cn=users,OU=hr,o=ibm,C=us" defaultParent="Person" /> <node wmmnode="cn=groups,OU=hr,o=ibm,C=us" defaultParent="Group" /> </realm> </realms> </wmmur>- Combining a single LDAP directory with a database user registry
wmm.xml: The file /wmm/wmm_DB_LDAP.xml contains the configuration without LookAside, while /wmm/wmm_DB_LDAP_LA.xml contains the LookAside.
wmmLDAPServerAttributes.xml: Check the files referenced by the wmm_LDAP_LA_* files in the portal_server_root/wmm/ directory.
wmmur.xml:
If you want to combine multiple LDAPs with a database repository, use the following information as a starting point and then add the additional LDAP repositories to the database repository.
<wmmur> <?xml version="1.0" encoding="UTF-8"?> <realms> <realm delimiter="@" default="true"> <node wmmnode="dc=test,dc=com"/> <node wmmnode="o=Default Organization"/> </realm> <realm delimiter="@" default="false"> <node wmmnode="o=Default Organization"/> <node wmmnode="o=Default Organization" defaultParent="Person" /> <node wmmnode="o=Default Organization" defaultParent="Group" /> </realm> </realms> </wmmur>
Aspects when using Member Manager in a cluster
In a clustered environment, Member Manager files are not located at portal_server_root/wmm. They are moved to was_profile_root/config/wmm. When the security configuration task runs, it uploads the files to the deployment manager and replicates them to all cluster nodes.
If you need to manually edit the Member Manager files for a WebSphere Portal Express node that has been federated, check the files out of the deployment manager configuration repository before you can make any changes. For information on checking files out or in, refer to Managing the cluster.
Refer to Enabling LDAP server as Localmode for information about manually configuring your LDAP directory to perform authentication. On the WebSphere Application Server machine and any nodes in the cell that do not contain WebSphere Portal Express, the authentication works by default against the wmmWASAdmin.xml file. The same holds true for the node agent that runs on each server. When stopping a node agent, use a user ID specified in the wmmWASAdmin.xml file.
- If you run the enable-security-wmmur-ldap task, this will be the same user ID specified by the WasUserid property in the wpconfig.properties file.
- If you run the enable-security-wmmur-db task, this will be the same user ID specified by the WasUserid property in the wpconfig.properties file.
If you are configuring security with a database repository, you can only login to the portal and the WebSphere Application Server Administration console using the short ID, for example, as a portaladmin user, you would use the ID you specified in the wpconfig.properties file under PortalAdminId and as the WebSphere Application Server administrative user, you would use the ID for WasUserid.
Refer to the wmmWASAdmin.xml section for more information.
Enable LDAP server as Localmode
You can configure the authentication against an LDAP server by using the WebSphere Application Server administrative console. In the administrative console, navigate to Security > Global security > User Registries > Custom > Custom Properties and adapt the following parameters to enable LDAP servers:
Name Value (Example/Default)
Description wasUserRegistryType (Optional) wmmLDAP WebSphere Application Server user's profile is on LDAP server Then add the following properties depending on the type of LDAP server you are using:
Name Valid Value (Example) Description ldapURL (Required) ldap://localhost:389 (for single LDAP) or
ldap://ldap1.yourco.com:389
ldap://ldap2.yourco.com:389 (for multiple LDAP directories)
LDAP server URL. It can be a single LDAP URL or multiple LDAP URL. Use a space to separate multiple URL.
ldapType (Optional) 0 = Tivoli Directory Server 2 = Sun Java System Directory Server
3 = Lotus Domino
4 = Active Directory
LDAP server. If not specified, 0 defaults as the ldapType. baseDN (Required) <DN> The base distinguished name of wmmLDAP, which indicates the starting point for LDAP searches. The following property is required for all LDAP servers. The DN is case sensitive. The baseDN case should match the <nodeMap> node case set in wmmur.xml
ldapBaseDN (Optional) <ldapDN> If you are in the wmm.xml configuration file, the pluginNode in nodeMap for this LDAP server is different from the wmmNode; put the pluginNode value as ldapBaseDN. For example:
baseDN="o=default organization" and in wmm.xml, <nodeMap node="0=default organization" pluginNode="dc=yourco,dc=com"/>
Here ldapBaseDN="dc=yourco,dc=com"
The DN is case sensitive. The ldapBaseDN case should match the pluginNode case set in wmm.xml.
bindDN (Optional) LDAP bind ID The distinguished name for the application server to use to bind to the directory server. If not specified, this property will be anonymous. bindPassword (Optional) password The password used when binding the application server to the directory server. Although clear text passwords are accepted, it is highly recommended that you encrypt the password. Use the encryption tool that Member Manager provides.
userIdMap (Optional) Tivoli Directory Server = *:uid Sun Java System Directory Server=inetOrgPerson:uid
Lotus Domino=person:uid
Active Directory=user:sAMAccountName
Novell eDirectory=person:cn
A Member Manager person RDN filter. This property should match the "Person" rdnAttrTypes value for Member Manager supportedMemberTypes
If you are in Member Manager, the Member Manager attribute is mapped to a different name in LDAP directory; add the LDAP attribute name to the end and separate it with ":".
For example, in the wmmLDAPAttributes.xml file, uid is mapped to the e-mail attribute. userIdMap=inetOrgPerson:uid:email.
If not specified, the default value will be used.
ldapUserIdMap (Optional) <LDAP user RDN attribute name> The user LDAP RDN. This parameter is only required when the value is different than the userIdMap value. It should match "Person" rdnAttrTypes value for wmmLdap supportedLdapEntryTypes. groupIdMap *:cn An LDAP filter that maps the short name of a group to an LDAP entry. If not specified, the default value will be used.
userFilter (Optional) Tivoli Directory Server = (&(uid=%v) (objectclass=ePerson)) Sun Java System Directory Server(&(uid=%v) (objectclass=inetOrgPerson))
Lotus Domino(&(uid=%v) (objectclass=Person))
Active Directory(&(sAMAccountName=%v) (objectclass=Person))
Novell eDirectory(&(uid=%v) (objectclass=Person))
An LDAP filter clause for searching the registry for users. If not specified, the default value will be used. The default value is (&(uid=%v) (objectclass=Person))
groupFilter (Optional) Tivoli Directory Server = (&(cn=%v) (|(objectclass=groupOfNames) (objectclass=groupOfUniqueNames))) Sun Java System Directory Server(&(cn=%v) (objectclass=ldapsubentry))
Lotus Domino(&(cn=%v) (objectclass=dominoGroup))
Active Directory(&(cn=%v) (objectclass=group))
Novell eDirectory(&(cn=%v) (objectclass=groupOfNames))
An LDAP filter clause for searching the registry for groups. If not specified, the default value will be used.
sslConfig (Optional) true or false Secure Sockets Layer configuration to use for the LDAP connection. If not set, assume SSL is not enabled.
Recommendations
Adding the super admin to other realms:
When you separate the realms completely for the different Virtual Portals, the administrator of the default Virtual Portal can not log into the other Virtual Portals anymore. Add the users to the other realms to change this. Make the following adjustments to the wmmur.xml file:
Add <node wmmnode="<DN of the super admin"/> to the wmmNodes you want the super admin to log in (where the super admin is not already part of another wmmNode).
Manually configuring your LDAP server to perform authentication:
Refer to Enabling LDAP server as Localmode for information about manually configuring your LDAP server to perform authentication.
Sample for multiple LDAPs:
<wmmur> <realms> <realm delimiter="@" default="true"> <node wmmnode="dc=raleigh,dc=ibm,dc=com"/> <node wmmnode="OU=hr,o=ibm,C=us"/> </realm> <realm id="suffix2" delimiter="@" default="false"> <node wmmnode="OU=hr,o=ibm,C=us" /> <node wmmnode="cn=users,OU=hr,o=ibm,C=us" defaultParent="Person" /> <node wmmnode="cn=groups,OU=hr,o=ibm,C=us" defaultParent="Group" /> <node wmmnode="uid=wpsadmin,cn=users,dc=raleigh,dc=ibm,dc=com"/> </realm> </realms> </wmmur>
Limitations
Uniqueness of logon-ids and DNs:
The DN of a principal must be unique over all wmmNodes defined in wmmur.xml.
The attributes that are defined as logon attributes should be unique for the wmmNodes defined in a realm or the logon will fail. If the uniqueness of the logon attributes cannot be achieved, the following configuration makes it possible to logon with the DN of the user:
- Select the appropriate console, depending on your environment:
- If running a standalone environment, use the local administrative console.
- If running a cluster environment, use the console of the Deployment Manager.
- Start the administrative console by entering the following in the URL location field of a Web browser: http://example.com:admin_port/ibm/console where example.com is the name of your server and admin_port is the port assigned to the administrative console.
- In the navigation open the Security section by clicking the plus ( + ) sign.
- Click Global Security > User Registries > Custom > Additional Properties > Custom Properties.
- Click wmmUserSecurityNameAttr and set the value to memberDN.
- When you are done, click Save at the top of the screen under Message(s).
- Click Save again when prompted to confirm your changes.
- If running a cluster configuration, replicate your changes to the cluster.
- Restart the server to make the changes become effective.
Users with a logon attribute that is unique still can login using the attribute.
Lotus Domino Single Signon is not supported in combination with multiple user registries.
- Member Manager database repository configuration
- Member Manager LDAP repository configuration
- Member Manager Federation Repository
This topic provides a sample Member Manager Federation Repository configuration in the wmm.xml file.- Member Manager lookaside repository configuration
This topic provides a sample Member Manager Lookaside Repository configuration in the wmm.xml file.
Parent topic:
Additional LDAP configuration