LDAP parameters are set in the LDAP configuration file:
univiewer_server\<nodename>\data\ldap.xml
This file must be manually adapted to display the connection parameters to the LDAP server. Its update is only taken into account when UVMS restarts. It is not updated by a UVMS upgrade.
Several LDAP directories can be used to verify authentication, create a section <instance name> by LDAP directory in ldap.xml.
All the file fields are described below:
Tag |
Values |
Description |
---|---|---|
instance name |
Mandatory |
An instance defines a set of parameters for a directory server. In the case where several instances are defined, the authentication will be tested against the first instance, then the second if authentication failed against the first, the third if authentication failed against the second, etc. |
host |
localhost (by default) |
Hostname of the LDAP directory server |
port |
Mandatory |
Port number of the LDAP directory server. For example, 389 or 636 |
SSL |
NO (by default) |
Turns on the ldaps protocol. Refer to section: SSL Configuration for more information. |
connectionPool |
YES (by default) |
The value YES allows UVMS to use a connection cache (standard use by default). Refer to section LDAP Failover mode for more information. |
BaseDN |
|
This parameter is deprecated. |
memberAttribute |
Member |
Synchronization mode only. |
memberAttributeOf |
memberOf |
Synchronization mode only. |
useMemberOfAttribute |
NO (by default) |
Synchronization mode only. |
followReferral |
NO (by default) |
If LDAP slave servers are declared, the Yes value enables you to look for information on slave servers if the latter is not found on the master server. |
securityPrincipal |
Anonymous (by default) |
Service user account (in DN format) used by UVMS to search for users in the LDAP directory. This entry must have search rights on the directory subtree where users are located. Examples: |
clearCredential |
YES (by default) |
Specifies whether the securityCredential is in clear or encrypted format. (Refer to section: Password Encryption). By default, passwords are not encrypted. |
securityCredential |
Mandatory |
Password of the LDAP entry defined in securityPrincipal. |
securityProtocol |
plain |
The only security protocol accepted is “plain”. |
securityAuthentication |
simple (by default) |
Type of authentication |
usersSearchBase |
Mandatory |
Distinguished Name of the sub-tree entry containing all the user entries. For example: ou=users,dc=automic,dc=com For performance reasons, this value is only used during connection (authentication). During group synchronization, each user matching a usersListSearchFilter will be created in UVMS even if it does not match a usersSearchBase or usersSearchDepth. Those accounts will not be able to connect to UVMS. |
usersAttributeId |
CN |
Synchronization mode only. |
usersListSearchFilter |
|
Synchronization mode only. |
usersSearchFilter |
Mandatory |
Filter applied to find the user from his/her Login. or for Active Directory: (&(objectclass=Person)(samaccountname=!login!)) The !login! variable will be replaced automatically by UVMS with the login provided by the connected user. |
usersSearchDepth |
SUBTREE_SCOPE (by default), OBJECT_SCOPE, ONELEVEL_SCOPE |
Scope of the search For performance reasons, this value is only used during the connection (authentication). During group synchronization, each user matching a usersListSearchFilter will be created in UVMS even if it does not match usersSearchBase or usersSearchDepth. Those accounts will not be able to connect to UVMS. |
groupsSearchBase |
|
Synchronization mode only. |
groupsAttributeId |
CN |
Synchronization mode only. |
groupsListSearchFilter |
|
Synchronization mode only LDAP: (&(objectClass=groupOfNames)(CN=AUTOMIC*)) Active Directory: (&(objectClass=group)(CN=AUTOMIC*)) |
groupsSearchDepth |
SUBTREE_SCOPE (by default), OBJECT_SCOPE ONELEVEL_SCOPE |
Synchronization mode only |
nestedGroups |
NO (par défaut) |
Synchronization mode only |
nestedGroupsSearch |
|
Synchronization mode only |
nestedGroupsList |
|
Synchronization mode only LDAP: (objectClass=groupOfNames) Active Directory: (objectClass=group) |
nestedGroupsSearch |
SUBTREE_SCOPE (by default), OBJECT_SCOPE ONELEVEL_SCOPE |
Synchronization mode only Search depth for all nested groups. |
Wildcards, if usable, can only be entered at the end of the chain, for instance: "automic*". Special characters need to be represented with different syntax. For example:
For less than(<) <
For greater than(>) >
For quote(") "
For apostrophe(') '
For ampersand (&) &
For details on SecurityCredentials and UserSearchFilter refer to section: Security Credentials and User Search Filter.
Example of a generic LDAP configuration file (Open LDAP for instance)
<?xml version="1.0" encoding="UTF-8"?>
<ldap version="1.0">
<instance name="LDAP Repository">
<!-- general configuration -->
<host></host>
<port>389</port>
<SSL>NO</SSL>
<memberAttribute>member</memberAttribute>
<memberOfAttribute>memberOf</memberOfAttribute>
<useMemberOfAttribute>NO</useMemberOfAttribute>
<followReferral>NO</followReferral>
<!-- security -->
<securityPrincipal></securityPrincipal>
<clearCredential>YES</clearCredential>
<securityCredential><![CDATA[]]></securityCredential>
<securityProtocol>plain</securityProtocol>
<securityAuthentication>simple</securityAuthentication>
<!-- users -->
<usersSearchBase>ou=users,dn=yourdomain,dc=com</usersSearchBase>
<usersAttributeId>CN</usersAttributeId>
<usersListSearchFilter><![CDATA[objectClass=person]]></usersListSearchFilter>
<usersSearchFilter><![CDATA[(&(objectClass=person)(cn=!login!))]]></usersSearchFilter>
<usersSearchDepth>SUBTREE_SCOPE</usersSearchDepth>
<!-- groups -->
<groupsSearchBase>ou=groups,dn=yourdomain,dc=com</groupsSearchBase>
<groupsAttributeId>CN</groupsAttributeId>
<groupsListSearchFilter><![CDATA[(&(objectClass=groupOfNames)(CN=AUTOMIC*))]]></groupsListSearchFilter>
<groupsSearchDepth>SUBTREE_SCOPE</groupsSearchDepth>
<!-- nested groups -->
<nestedGroups>NO</nestedGroups>
<nestedGroupsSearchBase>ou=groups,dn=yourdomain,dc=com</nestedGroupsSearchBase>
<nestedGroupsListSearchFilter><![CDATA[objectClass=groupOfNames]]></nestedGroupsListSearchFilter>
<nestedGroupsSearchDepth>SUBTREE_SCOPE</nestedGroupsSearchDepth>
</instance>
</ldap>
Example of a LDAP configuration file for Active Directory
<?xml version="1.0" encoding="UTF-8"?>
<ldap version="1.0">
<instance name="Active Direcoty">
<!-- general configuration -->
<host></host>
<port>389</port>
<SSL>NO</SSL>
<memberAttribute>member</memberAttribute>
<memberOfAttribute>memberOf</memberOfAttribute>
<useMemberOfAttribute>YES</useMemberOfAttribute>
<followReferral>NO</followReferral>
<!-- security -->
<securityPrincipal></securityPrincipal>
<clearCredential>YES</clearCredential>
<securityCredential><![CDATA[]]></securityCredential>
<securityProtocol>plain</securityProtocol>
<securityAuthentication>simple</securityAuthentication>
<!-- users -->
<usersSearchBase>ou=users,dn=yourdomain,dc=com</usersSearchBase>
<usersAttributeId>userPrincipalName</usersAttributeId>
<usersListSearchFilter><![CDATA[objectClass=person]]></usersListSearchFilter>
<usersSearchFilter><![CDATA[(&(objectClass=person)(userPrincipalName=!login!))]]></usersSearchFilter>
<usersSearchDepth>SUBTREE_SCOPE</usersSearchDepth>
<!-- groups -->
<groupsSearchBase>ou=groups,dn=yourdomain,dc=com</groupsSearchBase>
<groupsAttributeId>CN</groupsAttributeId>
<groupsListSearchFilter><![CDATA[(&(objectClass=group)(CN=AUTOMIC*))]]></groupsListSearchFilter>
<groupsSearchDepth>SUBTREE_SCOPE</groupsSearchDepth>
<!-- nested groups -->
<nestedGroups>NO</nestedGroups>
<nestedGroupsSearchBase>ou=groups,dn=yourdomain,dc=com</nestedGroupsSearchBase>
<nestedGroupsListSearchFilter><![CDATA[objectClass=group]]></nestedGroupsListSearchFilter>
<nestedGroupsSearchDepth>SUBTREE_SCOPE</nestedGroupsSearchDepth>
</instance>
</ldap>