Configuring LDAP Authentication

To successfully enable LDAP authentication for CLI users and/or LDAP authorization for clients, the following must be configured:

  • on external host machines, up to three LDAP servers
  • on the Solace event broker, up to ten LDAP profiles

For information about LDAP authorization for clients, see Configuring Client LDAP Authorization.

Configuring LDAP Servers

To successfully enable LDAP authentication for CLI users and/or LDAP authorization for clients, an LDAP administrator must install and configure an LDAP server on an external host machine. For information on choosing a host machine and installing the server software, refer to the third-party LDAP server documentation.

Only use LDAP version 3 with Solace event brokers. LDAP versions 1 and 2 are not supported.

Configuring LDAP Profiles

After setting the ldap-profile, you can configure the following parameters:

Allowing Unauthenticated Authentication

Configuring Admin Distinguished Names

Configuring Search Parameters

Enabling LDAP Profiles

Enabling TLS/SSL Encryption

Registering LDAP Servers

Using TLS/SSL

By default, information sent between the Solace event broker (the LDAP client) and the LDAP server during the authentication process is sent as plain text. If better protection of information passed between the event broker and a provisioned LDAP server is required, TLS/SSL can be used to encrypt the communication. As mentioned in Enabling TLS/SSL Encryption, you can configure TLS/SSL support for LDAP Authentication using StartTLS or LDAPS.

To use LDAP authentication/authorization over TLS/SSL, an LDAP profile enabled for TLS/SSL must be used, and the event broker must be configured with a list of Certificate Authority (CA)-approved certificates.

Configuring TLS Support for LDAP Authentication

Viewing Event Brokers’ Trusted CA Certificates

To view the event broker’s trusted CA certificates, enter the following User EXEC command:

solace> show domain-certificate-authority ca-name <ca-name> [cert [raw-content]

Where:

<ca-name> is the name of the certificate authority.

raw-content specifies to show the CA certificate's raw content.

Configuring LDAP Groups

CLI users can belong to an LDAP group that can be used to authorize CLI users. Specific access levels are configured for each LDAP group.

A CLI user may belong to more than one LDAP group, and the access levels defined for each group may differ. In this case, the greatest global access level and the greatest Message VPN access level access level defined in the groups the CLI user is a member of are used.

To create an LDAP group object that represents an LDAP group that exists on the LDAP server, enter the following CONFIG commands:

solace(configure)# authentication 
solace(configure/authentication)# access-level
solace(configure/authentication/access-level)# ldap
solace(...gure/authentication/access-level/ldap)# create group <group-name>

Where:

group-name is the name of an LDAP group that exists on the LDAP server. LDAP names can contain up to 256 alphanumeric characters, except the ‘*’ or ‘?’ characters, and the first character may not be ‘#’. Additional things to consider about the group name:

  • If the group name contains the characters “#”, “+”, “;”, “=”, the LDAP server may return the value of the group name where those characters are appended with a “\” character. For example, for a group name of “test#,lab,com”, the LDAP server could return “test\#,lab,com”. The exact handling of these special characters depends on the LDAP server provider that is used.
  • To edit the properties for an LDAP group that has already been provisioned on the event broker, enter the following CONFIG command: solace(...gure/authentication/access-level/ldap)# group <group-name>.
  • The group name is case sensitive and must match the case of the groups returned by the LDAP server.

The no version of this command, no group name <group-name>, removes the given group name.

Assigning Global Access Levels

To assign a global access level for CLI users that belong to a given LDAP group, enter the following CONFIG command:

solace(...uthentication/access-level/ldap/group)# global-access-level [none | read-only | mesh-manager | read-write | admin]

Where:

none specifies a global access level of none.

read‑only specifies a global access level of read-only. The default value is read‑only.

mesh-manager specifies a global access level of mesh-manager.

read-write specifies a global access level of read-write.

admin specifies a global access level of admin.

Assigning Message VPN Default Access Levels

To assign a Message VPN default access level for CLI users that belong to a given LDAP group, enter the following CONFIG commands:

solace(...uthentication/access-level/ldap/group)# message-vpn
solace(...n/access-level/ldap/group/message-vpn)# default-access-level [none|read-only|read-write]

Where:

none specifies a default Message VPN access level of none. The default value is none.

read‑only specifies a default Message VPN access level of read-only.

read-write specifies a default Message VPN access level of read-write.

Configuring Message VPN Default Access Level Exceptions

To configure an exception to the default Message VPN access level for CLI users that belong to the given LDAP group, enter the following CONFIG command:

solace(...n/access-level/ldap/group/message-vpn)# create access-level-exception <vpn-name> access-level [none|read-only|read-write]

To modify an existing exception to the default Message VPN access level for CLI users that belong to the given LDAP group, enter the following CONFIG command:

solace(...n/access-level/ldap/group/message-vpn)# access-level-exception <vpn-name> access-level [none|read-only|read-write]

Where:

<vpn-name> is the name of a Message VPN that the exception to the default Message VPN access level will apply to.

none specifies a Message VPN access level of none. The default value is none.

read‑only specifies a Message VPN access level of read-only.

read-write specifies a Message VPN access level of read-write.

The no version of this command, no access-level-exception, removes any exceptions so that the CLI user has the default Message VPN access level for all Message VPNs.

The number of permitted Message VPN default access level exceptions is not limited, except that it cannot exceed the number of existing Message VPNs on the event broker.

Configuring Group Membership Attribute Names

To authenticate a CLI user, a group membership attribute name must be retrieved from the LDAP server as part of the LDAP search.

The attribute name indicates that the CLI user belongs to a particular group that exists on the LDAP server and is referenced through an instance provisioned on the Solace event broker (refer to Configuring LDAP Groups). For example, the attribute name of "memberOf" could be used for an Active Directory‑based LDAP server.

To set a group membership attribute name for user authentication, enter the following CONFIG commands:

solace(configure)# authentication
solace(configure/authentication)# access-level
solace(configure/authentication/access-level)# ldap
solace(...gure/authentication/access-level/ldap)# group-membership-attribute-name <attribute-name>

Where:

<attribute-name> is the name of the attribute the event broker attempts to retrieve from the LDAP server in a search response. An attribute name can contain up to 64 alphanumeric characters.

The no version of this command, no group-membership-attribute-name <attribute-name>, deletes the LDAP group membership attribute name from the event broker. When using LDAP for CLI user authentication, deleting this attribute results in all future CLI users getting the default access levels (refer to Configuring Default CLI User Access Levels with External Authentication).

Enabling LDAP Group Membership Secondary Searches