The Lightweight Directory Access Protocol (LDAP) is an open, vendor-neutral, industry-standard application protocol for accessing and maintaining distributed directory information services over an Internet Protocol (IP) network.

LDAP integration allows connecting your instance to LDAP or AD server and using it as a source of the user data. It provides the ability to connect to a directory service storing the authentication data, such as usernames, passwords, user home directories used for keeping business and other data, etc. The global objective of the LDAP engine is importing users into the system. And through this, synchronization with various corporate services can be achieved, and one account can be used to authorize in all corporate services, such as email, website, VoIP, and so on.

The RDN (relative distinguished name) is the attribute defining the search directory like this: dc=instance,dc=com

In this client-server infrastructure scheme, the SimpleOne instance has to be a client connecting to the LDAP server.

The system synchronizes with the LDAP server in two ways:

  • via the Schedule Jobs (automatic) – scheduled script defining periods of synchronization (for example, every 3 hours). See the Scheduled Script article to learn more.
  • via the Autoprovision (triggered by logging in) – when user logs in, the system updates the requested data. Configure this way of synchronization via the user.ldap_autoprovision property.

You can also use third-party authorization services on your instance. See the Single Sign-On article to learn more.

Establishing LDAP connection


To establish the connection between your SimpleOne instance and the LDAP server, complete the following steps:

  1. Specify the LDAP server.
  2. Define the LDAP URL.
  3. Set up the LDAP.
  4. Check settings.
  5. (Optional) Data import.

Additional tools for setting up LDAP connection:

Specifying an LDAP server 


To configure an LDAP connection, complete the steps below:

  1. Navigate to LDAP → LDAP Servers.
  2. Click New and fill in the fields.
  3. Click Save to apply changes.
  4. Copy the current record ID.

LDAP Server form fields

FieldMandatoryDescription
NameYEnter the server name.
Root DirectoryN

Enter the RDN of the search directory.

Example: dc=instance,dc=ru

ActiveNSelect this checkbox to make the server active or inactive.
UsernameYSpecify the username authenticating the LDAP connection.
PasswordNSpecify the server password.

If the RDN attribute is not specified, then LDAP server will attempt to reach the server root directory during the authorization process. If the user logging in is not authorized to access this directory, the authorization process will be interrupted.

Defining an LDAP URL


Sometimes, customer infrastructure may contain more than one LDAP server, for example, as a standby (reserve) server. In this case, you may need to specify some particular server used for authorization by arranging the URL order. If you have more than one server, create a separate LDAP URL for each of them.

To create a URL, complete the steps below:

  1. Navigate to LDAP → LDAP URL.
  2. Click New and fill in the fields.
  3. Click Save or Save and Exit to apply changes.

LDAP URL form fields

FieldMandatoryDescription
URLY

Enter the LDAP URL there. Here's an example:

ldap://123.456.1.12:363

ActiveNSelect this checkbox to make the URL active or inactive.
OrderNSpecify the order of this URL if there are more than one similar items. In this case, they will be processed in descending order.
Operational StatusN

State of the LDAP connection. Available options:

  • Ready to connect – backup server is set up and ready to be used.
  • Connected – connection is established.
  • Disconnected – the system will not synchronize with this server.
  • Error – something went wrong. Check LDAP Logs.
ServerYSpecify the appropriate LDAP server.

LDAP Settings


After configuring an LDAP server and an LDAP URL and performing all necessary customer infrastructure preparations, you are ready to set up an LDAP.

To configure the LDAP, perform the following steps:

  1. Navigate to LDAP → LDAP Settings.
  2. Click New and fill in the fields.
  3. Click Save or Save and Exit to apply changes.

LDAP Definition form fields

FieldMandatoryDescription
NameYSpecify the LDAP definition name. The name you enter here becomes a target in the Import Sources record.
ActiveNSelect this checkbox to activate the LDAP definition and to allow data import.
Relative Distinguished Name (RDN)NEnter the relative distinguished name (RDN) of the subdirectory to search through.
ServerY

Specify the LDAP server containing users and groups directory and other information related to LDAP.

To configure the server, navigate to System LDAP → LDAP Servers and perform the needed actions.

TableY

Select the target table that will store data from your LDAP server. For users, select the Users (sys_user) table.

The target table specified is used for LDAP auto-provisioning (automatic creation of users in the Users (sys_user) table). This feature can be enabled or disabled by setting the user.ldap_autoprovision property.

FilterN

Enter a filter string to select specific records to import from the OU (organizational unit). 

For example, this filter specifies the excerpt, as shown below:

  • classified as a person
  • have an sn attribute value
  • are not computers
  • are not flagged as inactive
  • and login prerequisites are not equal to 'admin@simpleone.ru'

(&(objectClass=person)(sn=*)(!(objectClass=computer))(!(userAccountControl:1.2.840.113556.1.4.803:=2))(!(userPrincipalName=*.admin@simpleone.ru)))

For more information about LDAP filter syntax, refer to the appropriate RFC.

Query FieldN

Specify the attribute name within the LDAP server for querying the records.

Active Directory mostly uses the sAMAccountName attribute. Other LDAP servers tend to use the cn attribute.

Note that the Query Field is temporarily not working correctly – our team is working on its logic improvement to make it more efficient and secure. We will inform you about changes in the next releases.

Attribute ListN

Use the Attribute List field to specify (include and limit) the attributes the LDAP query returns. This approach is preferable for large LDAP imports in terms of timing.

If the field remains empty, the system loads all the objects with their attributes that your LDAP server is allowed to read.

You can check the LDAP structure by clicking the Browse LDAP on the corresponding LDAP Server record.

Checking settings 


Make sure that the connection is set up by performing the following steps:

  1. Navigate to LDAP → LDAP Servers.
  2. Open the record you need.
  3. Click Test connection. The system will check the first URL connection defined by the order. If the connection is fine, you will see the Successfully connected message.
  4. Click Test all connections. The system will check all defined connections. If the connections are fine, you will see the All connections are checked message.

If an error is thrown, check LDAP Log records.

LDAP Import


Import all necessary data from your LDAP server to the instance. 

To complete the data import using LDAP, you will need to set up the following system elements:

  • LDAP Settings – specifies filters for retrieving data from a defined LDAP table.
  • Import Source – loads row data for further processing and transformation.

The scheme below illustrates the process of data import from an LDAP server.

See the Importing using LDAP article to learn more.

Example of the integration with AD


The "out-of-the-box" solution contains an example of the connection to the Active Directory (AD) service. 

Check out the examples mentioned below before setting up the LDAP import on an instance. The settings of the examples are protected from changes. In the hamburger menu of each record, click Make a copy to copy the example setting and change their values.

The following records are created and configured:

  • the Demo_Active_Directory LDAP Server with the LDAP URL example. In your copy, specify the parameters of the server.
  • the SimpleOneCourses1 and SimpleOneCourses2 LDAP Settings. Use one of these definitions as an example to create a working connection to the AD service.

    FieldValueDescription
    Filter


    SimpleOneCourses1

    (&

     (objectClass=person)

    (sn=*)

    )

    SimpleOneCourses2

    (&

     (objectClass=person,top)

    (sn=*)

    )

    The defined filter selects user records with any username to import from the AD service. 
    Query FieldsAMAccountNameThe field that is used for connecting with the AD and querying the records.
    Attribute Listsamaccountname,sn,givenname,distinguishedname,msDS-cloudExtensionAttribute6,telephonenumber, mobile,mail,manager,company,useraccountcontrol,thumbnailphotoThe attributes the LDAP query returns.
  • the LDAP Users Import Source. Use one import source for the same LDAP settings.
  • the Daily Import SimpleOne Employees and Daily Import SimpleOne Employees 2 scheduled imports. The AD data is imported daily at a specific time. Use one of the imports as an example to create your scheduled import.
  • the Daily Deletion of Obsolete Import Sets scheduled script. The script deletes inactive import sets. When an import set is deleted, a cascading deletion occurs for the Import Set column of the Import Set Row table.

To connect and import users from the AD service, complete the following steps:

  1. Create a local pack in the Simple application for the LDAP import settings.
  2. Create copies of the records mentioned above and set up the LDAP integration by changing the field values to the required ones.
  3. Click Test connection in the LDAP Server record. If the connection is established successfully, click Browse LDAP to check the LDAP structure.
  4. After you checked the structure, go to the LDAP Setting you need and open the related import source.
  5. (optional) Click Test Load (20 records) to create a test import set.
  6. Click Load all records.
  7. Click View Transform Map to create a Transform Map record. The Target Table value should match the value of the Table field in the LDAP Settings record.
  8. On the Transform Map create Field Maps through the related list. The Login and Email field map records should have the selected Coalesce checkbox. The parameter defines the fields of the target table that will be used to search for the records based on the imported data. If a record is found in the target table, it will be updated. Otherwise, the system creates a new record.
  9. Go back to the Import Source record and open the Import Set record via the related list.
  10. Click Transform to import data from the AD service. 
  11. Configure the copy of the Daily Import SimpleOne Employees scheduled import. Add the reference to the created Import Source.
  12. Configure the copy of the Daily Deletion of Obsolete Import Sets scheduled script and select the Active checkbox. Copy the ID of the Import Source to the import_source_id variable of the script.

LDAP Log 


In case the system troughs an error, you can check the log messages to find the cause. In the LDAP Log, you can find records of failed authorization attempts or authorization policy avoidance attempts. In fact, all these messages are written into the Logs (sys_log) table.

To see the LDAP logs, navigate to LDAP → LDAP log.

LDAP Log form fields

FieldMandatoryDescription
SourceYDisplays the source from where this log record comes from (LDAP Authorization or LDAP Autoprovision, as an example).
MessageNThe log record message text.
LevelY

This field specifies the error level. Available options:

  • Info
  • Error
  • Warning
  • Debug
UsernameNReference to the user initiated this record creation.

LDAP System Properties


Some LDAP abilities can be configured on the client-side using the System Properties engine. These properties are listed below.

Property nameTypeDefault valueDescription

user.authorization_when_no_ldap_connection

BooleantrueEnables authorization if there's no LDAP connection.

user.ldap_authentication

BooleantrueEnables or disables LDAP authentication.

user.ldap_autoprovision

BooleantrueEnables the automatic creation of users in the User table if there is no such record on the instance.


.


  • No labels