Configure the LDAP Group Security Provider Settings

Configure the LDAP Server Settings

Name

This field displays the name you assigned to this configuration.

Service Type

This field displays the service type you selected on the previous page.

Server Type

This field displays the type of server for which you are configuring this connection.

Use Configuration From

You can either configure the group provider settings from scratch or copy the settings from a previously defined LDAP user security provider. Copying the configuration is recommended, as users and groups are often stored in the same server. If you choose to copy the settings, select the appropriate server from the dropdown and then scroll down to the group-specific settings on the lower half of the page.

LDAP Server Host Address

Specify the hostname or IP address of the server that houses your external directory store.

Note: If you will be using LDAP w/TLS or LDAPS, the hostname must match the hostname used in your LDAP server's public SSL certificate's Subject Name or the DNS component of its Alternate Subject Name.

LDAP Server Port

Specify the port for your LDAP server. This is typically port 389 for LDAP or port 636 for LDAPS. Bomgar also supports global catalog over port 3268 for LDAP or 3269 for LDAPS.

Security Mode

Select the type of encryption to use when communicating with the LDAP server. If you select Use LDAPS or Use LDAP w/TLS, you must upload the LDAP server's Root SSL Certificate in the CA Public Key field.

Note: For security purposes, LDAP w/TLS or LDAPS is recommended.

CA Public Key

To encrypt this connection, you must upload the Root SSL Certificate used by your LDAP server. This is necessary to ensure the validity of the server and the security of the data. The Root Certificate must be in PEM format.

Note: If the LDAP server's public SSL certificate's Subject Name or the DNS component of its Alternate Subject Name does not match the value in the LDAP Server Host Address field, the provider will be treated as unreachable. You can, however, use a wildcard certificate to certify multiple subdomains of the same site. For example, a certificate for *.example.com would certify both support.example.com and remote.example.com.

Configure LDAP Server Settings

Use Anonymous Binding

If your server supports anonymous binds, you can choose to continue without specifying a username or password.

Note: Anonymous binding is considered insecure and is disabled by default on most LDAP servers.

Bind Username

Specify a username with which your Bomgar Appliance can bind to and search the LDAP directory store. This account must have permission to read the attributes you will specify in the User Query for all users that you want to be able to authenticate against this LDAP server. It is not recommended to use an administrative account. Using a standard user account is usually sufficient and is more secure. It may be necessary to prefix the username with the domain (e.g., exampleDomain\john).

Note: By default, Active Directory requires that you specify a bind username and password. This user account must have permission to read other users' attributes and group memberships. If you are using Active Directory and do not already have a bind account set up, create a unique user account for use with the Bomgar Appliance and grant the user this read privilege. For details on how to grant this privilege, see LDAP Group Server Configuration Specific to Active Directory on Windows 2000/2003.

Bind Password

Specify the password to use with the bind username entered above.

User Search Base

Determine the level in your directory hierarchy, specified by a distinguished name, at which the Bomgar Appliance should begin searching for users. Depending on the size of your directory store and the users who require Bomgar accounts, you may improve performance by designating the specific organizational unit within your directory store that requires access. If you are not sure or if users span multiple organizational units, you may want to specify the root distinguished name of your directory store.

Example Explanation
dc=example,dc=local This will search the entire directory structure of the company domain.
ou=users,dc=example,dc=local This will search just the users organizational unit within the directory hierarchy, ignoring other organizational units such as computers or groups.
ou=Atlanta,dc=example,dc=local This will search users and groups with a location of Atlanta.

The Appliance Can Communicate Directly with This Server

Indicate whether the Bomgar Appliance can attempt direct communication with the LDAP server (checked) or whether you will be using a connection agent (unchecked).

If you are using an LDAP server in the same LAN as your Bomgar Appliance, the two systems may be able to communicate directly, and you will not need to install a connection agent. However, if your LDAP server and Bomgar Appliance are on different networks or are separated by a firewall, you will need to install a connection agent to enable communication.

Connection Agent Password

If your Bomgar Appliance cannot communicate directly with your LDAP server, you will need to install a connection agent at the end of this server configuration. Create a Connection Agent Password for use in the installation process.

Configure LDAP Server Settings

User Query

Specify the query information that the Bomgar Appliance should use to locate an LDAP user when the user attempts to log in. The User Query field accepts a standard LDAP query (RFC 2254 – String Representation of LDAP Search Filters). You can modify the query string to customize how your users log in and what methods of usernames are accepted. To specify the value within the string that should act as the username, replace that value with %s.

Example Explanation
(&(sAMAccountName=%s)(|(objectClass=user)↵

(objectClass=person)))
When jsmith logs into his account, the Bomgar Appliance will search the LDAP server for an object where the sAMAccountName is equal to jsmith.
(&(|(sAMAccountName=%s)(specialVendorAttribute=%s))↵

(|objectClass=person)(objectClass=user))
This will search for an object where either the sAMAccountName or specialVendorAttribute contains jsmith and has an object class of either person or user.

User Object Classes

Specify valid object classes for a user within your directory store. Only users who posses one or more of these object classes will be permitted to authenticate. These object classes are also used with the next two fields (User Object Unique ID and User Object Display Name) to indicate to your Bomgar Appliance the schema the LDAP server uses to identify users. You can enter multiple object classes, one per line.

Example Explanation
user Users must have an object class of user.
user

person
Users must have an object class of user or person.

Configure LDAP Server Settings

User Object Unique ID

This field requests a unique identifier for the object. While the distinguished name can serve as this ID, a user's distinguished name may change frequently over the life of the user, such as with a name or location change or with the renaming of the LDAP store. Therefore, most LDAP servers incorporate some field that is unique per object and does not change for the lifetime of the user. If you do use the distinguished name as the unique ID and a users's distinguished name changes, that user will be seen as a new user, and any changes made specifically to the individual's Bomgar user account will not be carried over to the new user. If your LDAP server does not incorporate a unique identifier, use a field that is least likely to have an identical entry for another user.

The syntax for this field is in the form of [object]:[attribute].

[object] Specifies the user object class, which must be in the form of a descriptor or the wildcard *, indicating all valid user classes.
[attribute] Specifies the attribute that contains the unique user ID. This must be in the form of a descriptor or the special value ?, indicating the distinguished name of that user object.

 

Example Explanation
*:objectGUID All classes have an objectGUID attribute which is a unique identifier.
user:userGUID

person:personGUID
A user object has a userGUID attribute, a person object has a personGUID attribute, and both are unique.
user:userGUID

*:objectGUID
A user object has a userGUID attribute which should be used, but all other classes have an objectGUID attribute.
user:?

person:objectGUID
A user object has no unique identifier other than its distinguished name, but the person class has an objectGUID attribute which should be used.

You can mix and match specific definitions, entering each definision on a separate line. However, only one *:[attribute] definition is supported. If multiple wildcard definitions are entered, only the last one will be used.

Configure LDAP Server Settings

Group Object Display Name

This value determines which field should be used as the group's display name. The syntax for this field is in the form of [object]:[attribute].

[object] Specifies the user or group object class, which must be in the form of a descriptor or the wildcard *, indicating all valid user or group classes.
[attribute] Specifies the attribute that contains the desired display name. This must be in the form of either a descriptor or the special value ? or !. The special value ? uses the fully qualified distinguished name, while ! returns the value of the leftmost element of the distinguished name.

 

Example Explanation
*:displayName All classes have a displayName attribute.
user:! A user object should use the leftmost element of its distinguished name.
user:displayName
person:fullName
A user object has a displayName attribute, and a person object has a fullName attribute.
*:! For all classes, the leftmost element of the distinguished name should be used.
user:displayName
*:!
A user has a displayName attribute which should be used, but all other classes should use the value of the leftmost element of the distinguished name.
user:?
*:!
A user object should use the full distinguished name, but all other classes should use the value of the leftmost element of the distinguished name.

Display Query

The display query affects how results are displayed when browsing via group policies or Embassies. This filters results so that only certain results display in the member selection dropdown when adding members to a group policy or Embassy.

Example Explanation
(objectClass=*) Default. Displays all objects returned by a query.
(|(objectClass=user)(obectClass=organizationUnit)) Displays all user or organizationUnit object classes, filtering out any other objects.

Configure LDAP Group Settings

Group Search Base

Determine the level in your directory hierarchy, specified by a distinguished name, at which the Bomgar Appliance should begin searching for groups. Depending on the size of your directory store and the groups that require access to the Bomgar Appliance, you may improve performance by designating the specific organizational unit within your directory store that requires access. If you are not sure or if groups span multiple organizational units, you may want to specify the root distinguished name of your directory store.

Example Explanation
dc=example,dc=local This will search the entire directory structure of the company domain.
ou=groups,dc=example,dc=local This will search just the groups organizational unit within the directory hierarchy, ignoring other organizational units such as computers or users.
ou=Atlanta,dc=example,dc=local This will search users and groups with a location of Atlanta.

Valid Group Object Classes

Specify valid object classes for a group within your directory store. Only groups that posses one or more of these object classes will be returned. These object classes are also used with the next two fields (Group Object Unique ID and User to Group Relationship) to indicate to your Bomgar Appliance the schema the LDAP server uses to identify groups. You can enter multiple group object classes, one per line.

Example Explanation
group Groups must have an object class of group.
group
groupOfUniqueNames
Groups must have an object class of group or groupOfUniqueNames.

Configure LDAP Server Settings

Group Object Unique ID

This field requests a unique identifier for the object. While the distinguished name can serve as this ID, a group's distinguished name may change frequently over the life of a group, such as with a location change or with the renaming of the LDAP store. Therefore, most LDAP servers incorporate some field that is unique per object and does not change for the lifetime of the group. If you do use the distinguished name as the unique ID and a group's distinguished name changes, that group will be seen as a new group, and any group policies defined for that group will not be carried over to the new group. If your LDAP server does not incorporate a unique identifier, use a field that is least likely to have an identical entry for another group.

The syntax for this field is in the form of [object]:[attribute].

[object] Specifies the group object class, which must be in the form of a descriptor or the wildcard *, indicating all valid group classes.
[attribute] Specifies the attribute that contains the unique group ID. This must be in the form of a descriptor or the special value ?, indicating the distinguished name of that group object.

 

Example Explanation
*:objectGUID All classes have an objectGUID attribute which is a unique identifier.
group:groupGUID
*:objectGUID
A group object has a groupGUID attribute which should be used, but all other classes have an objectGUID attribute.
group:?
*:objectGUID
A group object has no unique identifier other than its distinguished name, but all other classes have an objectGUID attribute which should be used.

You can mix and match specific definitions, entering each definition on a separate line. However, only one *:[attribute] definition is supported. If multiple wildcard definitions are entered, only the last one will be used.

Configure LDAP Server Settings

User to Group Relationship

This field requests a query to determine which users belong to which groups or, conversely, which groups contain which users. The syntax for this field is in the following form:

 

[user_object]:[user_attribute]=[group_object]:[group_attribute]

[user_object] Specifies the user object class, which must be in the form of a valid object class or the wildcard *, indicating all valid user classes.
[user_attribute] Specifies the attribute that contains the unique user ID. This must be in the form of a valid object class or the special value ?, indicating the distinguished name of that user object.
[group_object] Specifies the group object class, which must be in the form of a valid object class or the wildcard *, indicating all valid group classes.
[group_attribute] Specifies the attribute that contains the unique group ID. This must be in the form of a valid object class or the special value ?, indicating the distinguished name of that group object.

There are several ways that a user-to-group relationship may be stored in an LDAP store. One way is to store the groups to which a user belongs as a property of the user. This typically is seen in an attribute called memberOf, which may have multiple values, each value being the distinguished name of a group to which the user belongs.

Example Explanation
*:memberOf=*:? All valid users have a memberOf attribute which stores the distinguished name of all valid groups to which that user belongs.

Another way is to store which users belong to a group as a property of the group. This is typically seen in an attribute called member, which may have multiple values, each value being the distinguished name of a user who belongs to that group.

Example Explanation
*:?=*:member All valid groups have a member attribute which stores the distinguished name of all valid users who belong to that group.

Finally, some servers have optimized the process by including a special attribute on the user, listing all groups to which that user belongs, all groups to which those groups belong, and so forth, all in one field. The values may be distinguished names or a special attribute.

Example Explanation
*:tokenGroups=*:objectSID All valid users have a tokenGroups attribute which stores the objectSID property of all valid groups to which that user belongs and to which those groups, in turn, belong.

Configure LDAP Server Settings

Perform a Recursive Search for Groups

You can choose to perform a recursive search for groups. This will run a query for a user, then queries for all of the groups to which that user belongs, then queries for all groups to which those groups belong, and so forth, until all possible groups associated with that user have been found.

Running a recursive search can have a significant impact on performance, as the server will continue to issue queries until it has found information about all groups. If it takes too long, the user may be unable to log in.

A non-recursive search will issue only one query per user. If your LDAP server has a special field containing all of the groups to which the user belongs, recursive search is unnecessary. Recursive search is also unnecessary if your directory design does not handle group members of groups.

Example Explanation
*:?=*:member
(with recursive search on)
LDAP searches for all groups of which the user is a member. It then searches for all groups that contain members by the distinguished names of the previously returned groups. It will repeat this process until no new results are found.

Click Add Server to save this security provider configuration.