Configuring a Central User Directory or LDAP
Before You Begin
This chapter describes how Integration Server uses an external directory to authenticate clients, rather than using internally defined user and group information. For information about using internally defined users and groups, refer to Managing Users and Groups. You can set up Integration Server to access information from an external directory if your site uses one of the following external directories for user and group information:
- Central user management via Common Directory Services and My webMethods Server
- Lightweight Directory Access Protocol (LDAP)
You can configure Integration Server to use only one external directory at a time, a central user directory or LDAP.
Before you continue reading this chapter, you may find it helpful to first understand how Integration Server uses user and group information. Read the following sections if you have not already done so.
Overview of How Integration Server Works with Externally Defined Users and Groups
The following sections provide information about how and when Integration Server interacts with users and groups defined in a central user directory or in LDAP, specifically:
- How externally defined users and groups can be used in Integration Server.
- When Integration Server accesses information about externally defined users and groups.
- How Integration Server authenticates users who belong to externally defined groups or roles.
How the Server Uses Externally Defined Users and Groups
Integration Server can use externally defined information for the same purposes it uses internally-defined user and group information:
- To authenticate clients using user names and passwords
- To control who can configure and manage Integration Server
- To control who can create, modify, and delete services using Software AG Designer
- To control access to services and files that are available in Integration Server
Externally defined information does not replace ACLs. To control access to services and files, you still need to set up the ACLs that identify the groups that are allowed and denied access to specific services and files. However, you can assign externally defined groups to an ACL.
When you configure the server to use central user management or LDAP directory, externally defined users and groups are not displayed on the Security > User Management page. However, if an external group has been mapped to an Integration Server ACL, the group will be displayed on the Security > Access Control Lists page.
When the Server Accesses Externally Defined Information
Integration Server obtains externally defined information to authenticate clients and to determine whether an ACL allows or denies an action.
How Integration Server Authenticates Externally Defined Clients
When authenticating clients using user names and passwords, Integration Server always looks for the user account internally before looking in an external directory, specifically:
- When Integration Server finds an internally-defined user account for the supplied user name, Integration Server authenticates the client using the internally-defined information. If the supplied user name and password combination is correct, authentication succeeds and Integration Server proceeds with the request. If authentication fails and an external directory is not configured, Integration Server rejects the request with an "Invalid credentials" error.
- If authentication fails and an external directory is configured (either a central user
directory or LDAP), Integration Server requests that the external directory authenticate the client. If
authentication succeeds, Integration Server
proceeds with the request. If authentication fails, Integration Server
rejects the request with an "Invalid credentials" error.
For example, if a user account is defined in the My webMethods Server user directory, Integration Server authenticates the client using the information defined in the My webMethods Server database. If the supplied password is correct, Integration Server proceeds with the request. If the supplied password is not correct, Integration Server rejects the request.
Note: If the passwords are contained in an external authentication system other than Central Users or LDAP, you must create your own pluggable module to obtain this information. See Customizing Authentication Using JAAS for information about setting up a pluggable module. - If Integration Server cannot find either an internally or externally defined user account for the user, Integration Server rejects the request.
If the user does not supply a user name or password, the server uses the internally-defined Default user account. This account grants access to resources that allow anonymous access.
Configuring Central User Management
Central user management involves using a single location to store and manage information about users of webMethods products. You can use Integration Server Administrator to grant users in a central directory access to Integration Server functionality and services. For example, you can assign a My webMethods Server role or group to an ACL.
If a user will access Integration Server or Trading Networks through My webMethods interfaces, create the users in My webMethods Server and then use Integration Server Administrator to give them access to the necessary areas. If such users are already defined in an external directory such as LDAP, you can configure My webMethods Server to work with the external directory. When configured this way, authentication and authorization requests are still made by the Integration Server; however, the server creates the connection to the external directory using the directory settings defined by the My webMethods Server database.
Users defined in a central location, such as the My webMethods Server user directory, are sometimes referred to as central users. The ability to use a central user directory for authentication is provided by the common directory services that are part of My webMethods Server.
Requirements for Integration Server to Use Central User Management
- My webMethods Server must be installed and configured to use an external database.
-
My webMethods Server clustering must be configured even if
Integration Server connects to a standalone
My webMethods Server. This is because the client-side common directory
services APIs used by
Integration Server to communicate with
My webMethods Server functions as a cluster node.
My webMethods Server must be started at least once to enable
My webMethods Server clustering.
Note: Beginning with My webMethods Server 10.0, My webMethods Server must use a Universal Messaging server as its JMS provider. My webMethods Server uses a JMS provider for cluster communication and synchronization.
- Integration Server must have a JDBC connection pool that points to the My webMethods Server database component, and the CentralUsers functional alias must point to that connection pool. On the Settings > Resources page, MWS SAML Resolver URL field must point to your My webMethods Server host and port.
- The Single Sign On with My webMethods Server must be configured to point to the My webMethods Server host and port. For more information about this property, see Configuring the MWS Single Sign-On Resource Setting.
[ISS.0024.0012I] Central User
Management initialized successfully upon startup.
If you later want to stop using central user management, follow the instructions in Connecting Integration Server to Database Components in an External RDBMS, but in the Associated Pool Alias list, click None for the CentralUsers function, and then restart Integration Server.
For more information about configuring My webMethods Server for common directory services and clustering, see Administering My webMethods Server.
javax.net.ssl properties in the
custom_wrapper.conf file.
Considerations for My webMethods Server Query Roles
Integration Server can slow or terminate unexpectedly when handling service invocations if Integration Server has to evaluate all roles defined in My webMethods Server, including LDAP query and database query roles. You might encounter this issue when invoking Integration Server services using WS Client Connectors from a CAF application, especially if the following conditions are true:
- When there are LDAP query and database query roles defined in My webMethods Server.
- Common Users is enabled in Integration Server.
- The services have ACLs assigned to them.
Evaluation of these roles depend on external query execution and might impact Integration Server performance.
You can control whether Integration Server evaluates LDAP or database query roles in the server using the watt.cds.skip.role.types extended setting. If LDAP or database query roles are not used for any ACL management in Integration Server with Central Users enabled, you might consider disabling the query roles evaluation function.
For more information about using the watt.cds.skip.role.types extended setting, see Server Configuration Parameters.
Overview of Using LDAP
If your site uses Lightweight Directory Access Protocol (LDAP) for user and group information, you can configure the Integration Server to obtain user and group information from the external directory. You can configure Integration Server to use more than one LDAP directory at a time, allowing Integration Server to work with different LDAP directories for users in different locations or different organizations. In addition, you can maintain multiple LDAP directories so that one directory serves as a backup for another.
LDAP protocols are designed to facilitate sharing information about resources on a network. Typically, they are used to store profile information (login ID, password, etc.). You can also use them to store additional information. Integration Server uses LDAP for performing external authentication.
Using your existing LDAP information allows you to take advantage of a central repository of user and group information. System administrators can add and remove users from the central location. Users do not need to remember a separate password for webMethods applications; they can use the same user names and passwords that they use for other applications. Remember to use your LDAP tools to administer users or groups stored in an external directory.
About LDAP and Caching
For LDAP, after accessing user information, the Integration Server caches it to improve performance. If the information remains in the cache for one hour without being accessed, or if the cache space is needed for a more recent request, the Integration Server deletes the information from the cache.
If the server receives subsequent requests that require the information it has in cache, the Integration Server uses the cached information rather than accessing the external directory.
Configuring the Server to Use LDAP
About this task
To configure the server to use LDAP, you need to:
- Instruct Integration Server to use the LDAP protocol
- Define one or more configured LDAP servers that the Integration Server is to use for these users
- If
an LDAP provider is SSL-enabled, you can set the
JVM Truststore
Alias field on the
Security >
Certificates page to point to the trusstore alias that contains the
certificates required to establish a secure connection with the LDAP server.
Note: The value of the JVM Truststore Alias field is used as the value of the watt.server.ssl.trustStoreAlias parameter. As an alternative to using the JVM Truststore Alias, you can set the watt.server.ssl.trustStoreAlias parameter.
Software AG recommends that you use central user management instead of configuring Integration Server to use one more LDAP directories for external user management. For more information about central user management, seeConfiguring Central User Management and Administering My webMethods Server.
To specify LDAP as the external provider
Procedure
Defining an LDAP Directory to Integration Server
About this task
To define an LDAP directory to Integration Server
Procedure
Mapping an LDAP User's Access to ACLs
As with Integration Server groups, you can associate LDAP groups with ACLs to control access to Integration Server resources. Associating an LDAP group with an ACL is referred to as mapping. ACL mapping to LDAP groups can be done directly through the Security > ACLs page. For more information about allowing groups access to ACLs, refer to Allowing or Denying Group Access to ACLs.
Stopping Use of an LDAP as an External Directory
About this task
If you no longer want to use LDAP as an external directory, you can update the configuration to remove the external directory configuration settings.
To stop using a LDAP as an external directory
Procedure
- Open the Integration Server Administrator if it is not already open.
- Go to Security > User Management.
- Click Edit LDAP Configuration.
- Click Local in the Provider field.
- Click Save Configuration.
- Click OK.
- Restart your Integration Server.
Considerations for User Accounts and Groups
This section provides information about user accounts and groups that you should consider if you are using an external directory for user and group information.
-
You should keep internal and external user accounts and group names unique.It might get confusing if you have an external user account that has the same user name as an internal user account or an external group with the same group name as an internal group. For more information, see About Keeping Internal and External User Accounts and Group Names Unique.
- You cannot use the Integration Server Administrator to manage (i.e., create, edit, or delete) Central Users.You must use My webMethods Server to administer Central Users and Directories. Refer to Administering My webMethods Server for more information.
- You cannot use the Integration Server Administrator to manage (i.e., create, edit, or delete) LDAP user and group information. To make changes to LDAP directories, follow your site's standard directory update procedures.
- You can perform package replication without using the predefined Replicator account.You can use a different account for package replication as long as the subscription requester specifies an account that is a member of a group that is assigned to the Replicators ACL. For more information, see About User Groups and Package Replication.
About Keeping Internal and External User Accounts and Group Names Unique
Software AG recommends that you keep user names and group names unique between internal and external user accounts and groups. Having an external user account that has the same user name as an internal user account, or an external group with the same group name as an internal group might get confusing. If you do have identically named user names or group names, the server always uses the internally-defined information.
To avoid confusion, Software AG recommends that you do not set up user accounts or groups internally if you are using an external directory. The exceptions are the predefined user accounts Default, Administrator, Developer, Replicator, and the predefined groups Everybody, Administrators, Developers, Replicators, and Anonymous. You cannot delete these user accounts and groups; therefore, make sure the internal accounts and groups have the correct definitions.

An exception to the above diagram is that all internally-defined users are members of the internally-defined Everybody group.
About User Groups and Package Replication
Although Integration Server is distributed with a predefined Replicator account, you can use a different account for package replication. As long as the subscription requester specifies an account that is a member of a group that is assigned to the Replicators ACL, that user can perform replication.
When publishing a package to another server, the publishing server uses the account specified by the subscription requester. For example, if the subscription requester (either the publisher or the subscriber) specified account DEPT01, the publisher will log into the subscriber server as DEPT01. DEPT01 must be a member of a group that is assigned to the Replicators ACL on the subscriber server.
Refer to Copying Packages from One Server to Another for more information about package replication.
About Granting Administrator Privileges to External Users
The Administrators ACL controls who has administrator privileges. Because you cannot assign externally defined users to internally-defined groups, you cannot grant externally defined users administrator privileges by assigning them to the internally-defined Administrators group. Instead, you need to set up an externally defined group for administrators. Then, add the externally defined group of administrators to the Administrators ACL.
To make a group of central users IS Administrators, you will need to add their group or role to the following ACLs:
- Administrators ACL
- Default ACL
- Developers ACL
- Internal ACL
- Replicators ACL
-
Anonymous ACL (if their role/group is not part of this already)

Granting Administrator Privileges to an Externally Defined User
About this task
To grant administrator privileges to an externally defined user
Procedure
Granting Developer Privileges to External Users
About this task
The Developers ACL controls who can connect to the Integration Server from Software AG Designer to create, modify, and delete services that reside on the server. Because you cannot assign externally defined users to internally-defined groups, you cannot grant externally defined users developer privileges by assigning them to the internally-defined Developers group. Instead, you need to set up an externally defined group for Designer. Then, add the externally defined group to the Developers ACL.

To grant developer privileges to an externally defined user
Procedure
Granting Access to Services and Files to External Users
You create ACLs that control access to services and files and assign them to the specific services and files that you want to protect.
To grant access to a service or file, the server first uses internally-defined information to determine whether the client is a member of allowed or denied groups listed in the ACL. If the server cannot find the information internally, it obtains externally defined information to determine if the ACL allows or denies access.
If you want to allow an externally defined user access to a service or file, update the ACL that protects the service or file to identify the external user's group or role as an Allowed group in the ACL. Similarly, if you want to explicitly deny an externally defined user access to a service or file, update the ACL that protects the service or file to identify the external user's group or role as a Denied group in the ACL.
