Set up the generic LDAP authentication manager plug-in
- Last Updated: October 29, 2020
- 1 minute read
- OpenEdge
- Version 12.2
If you have determined that the generic LDAP authentication manager plug-in meets your ABL application's requirements, configure the required and optional plug-in properties as explained in this topic.
Required properties
| Property | Description |
|---|---|
ad.ldap.url |
The fully-qualified URL of the LDAP connection to the Active Directory host using the following syntax:
Use the To facilitate fail-over high availability, you may specify multiple LDAP URLs as space-delimited values in a single string. |
ad.ldap.rootdn |
The rootDN of the Active Directory service that contains the user accounts and group information that will be used for authentication. |
ldap.manager-dn |
A valid Active Directory account ID that is used to bind to Active Directory and search for the corresponding LDAP user account object DN of the user being authenticated. Note: The Active Directory account ID is a
userPrincipalName object. For
example, safe-user@acme.com.
|
ldap.manager-password |
The password for the user that corresponds to the For production environments, Progress strongly
recommends that you specify this password as an encrypted value
that you have obtained using the |
ad.user.domain |
The The default value is |
Optional properties
| Property | Description |
|---|---|
ldap.usersearch.base |
The LDAP object DN where the search for LDAP user account objects is initiated. If you specify a blank value, all searches are initiated from the RootDN object. Otherwise, you must specify a valid LDAP Server object DN where the search starts. |
ldap.usersearch.filter |
LDAP search specification for locating the LDAP user account object that corresponds to the client’s login user ID. The default value is The portion of the filter specification that
designates the client's user ID must consist of the string
|
ldap.search.subtree |
Boolean value that specifies whether to search the LDAP object hierarchy, starting at the user object search base DN, for an LDAP user account object that corresponds to the login user ID. The default value is |
ldap.groupsearch.base |
The LDAP object DN where the search for LDAP group objects is initiated. A blank value initiates all searches from the RootDN object. Otherwise, this must be a valid LDAP Server object DN. The default value is |
ldap.groupsearch.filter |
LDAP search specification to find the LDAP group objects that correspond to the LDAP user account’s granted roles. The default value is The portion of the filter specification that
designates the client's user ID must consist of the string
|
ldap.grouprole.attribute |
The LDAP group object attribute name from which to derive the role name used in Spring and in OpenEdge security. The value may not be empty.
Refer to the Active Directory schema definition for alternates
to the usual |
ldap.authpopulator.searchSubtree |
Boolean value to specify whether to search the LDAP object hierarchy,
starting at the The default value is |
ldap.authpopulator.ignorePartialResultException |
Boolean value to specify whether to ignore Active Directory notifications if not all the results of an LDAP search are available. The default value is |
ldap.authpopulator.convertToUpperCase |
Boolean value to specify whether to follow LDAP Server object referrals. The default value is |
ldap.contextSrc.referral |
Specifies whether to ignore LDAP referrals; that is, soft-link to LDAP object subtree storage in other Active Directory servers. The default value is |
ldap.contextSrc.timeout |
The number of milliseconds to wait for an Active Directory connection or read operations to complete. The value specified must be a valid positive integer. The default value is |
|
See Set up CLIENT-PRINCIPAL token generation. |
Example
The following shows an example of the configuration of the generic LDAP authentication manager plug-in:
http.all.authmanager=ldap
ldap.url=ldap://vm-pasoeldap:10389
ldap.manager-dn=uid=admin,ou=system
ldap.manager-password=secret
ldap.root.dn=anytown,dc=acme,dc=com
ldap.grouprole.attribute=cn
ldap.groupsearch.filter=(uniqueMember={0})
ldap.usersearch.filter=(uid={0})
In this example, note the property descriptions in the preceding configuration:
| Property | Description |
|---|---|
http.all.authmanager |
Specifies the generic LDAP authentication manager plug-in,
ldap. |
ldap.url |
Specifies the fully-qualified URL of the LDAP connection to the
Active Directory host, including the port number:
ldap://vm-pasoeldap:10389. |
ldap.manager-dn |
Specifies the Active Directory account ID that is used for
searching for the LDAP user account object DN of the client user
being authenticated. In this example, the user account ID is
admin, which is in the organizational unit
system. |
ldap.manager-password |
Specifies the password for the user account ID that corresponds
to the ldap.manager-dn property. |
ldap.root.dn |
Specifies the rootDN of the Active Directory service where user
account information is defined:
dc=anytown,dc=acme,dc=com. |
ldap.grouprole.attribute |
Specifies the LDAP group object attribute, cn,
that is used to derive the role name to be used in the Spring and
CLIENT-PRINCIPAL tokens that are generated. |
ldap.groupsearch.filter |
Specifies the LDAP search string for locating the LDAP group objects
that correspond to the LDAP user account’s granted roles. In this
example, (uniqueMember={0})
indicates that |
ldap.usersearch.filter |
Specifies the LDAP search string for locating the LDAP user account
object that corresponds to the client’s login user ID. In this
example, (uid={0}) results in
|
The effect of this configuration is for this authentication manager plug-in to do the following when a client provides a user ID:
- Bind to the Active Directory service using the
adminaccount DN and password, and set the rootDN to operate in. - Starting at the rootDN, apply the LDAP user search filter to locate the user
account being authenticated.
If the user is not found, generate an error and unbind from the Active Directory service.
- Obtain user account object’s DN, and unbind.
- Bind to the Active Directory service using the user account DN that is being
authenticated, including password.
If a bind error occurs, return an authentication error and unbind
- Load the user account object’s attributes, and filter by the specified property list.
- Starting at the rootDN, search the object tree to locate all group objects that have the user account’s DN as a member.
- From the group object attribute name, extract the root role name that will be
appended to the configured role prefix (
ROLE_). - If an OpenEdge security domain is configured, extract the domain name for the user, if the user has not supplied one on login.
- Unbind.
- Generate a CLIENT-PRINCIPAL token from user account information and role names.