LDAP Tools

Overview

This Plug-in provides the ability to update Appian user profiles from data retrieved from an LDAP server. The data that can be synchronized include all the default user profile fields except the username (e.g. first name, last name, address, phone, supervisor, title, etc…) as well as the custom fields.

Key Features & Functionality

  • LDAP User Profile Synchronization (Smart Service) - available in the Process Modeler under Integration Services > Connectivity Services
  • LDAP Sync Process Model (Sample Process Model) - will need to be tailored and tested based on identity management requirements
  • ldapSearch() Function - returns an array of LDAP attributes for a specific search query

See the instructions documentation (attached PDF) and https://community.appian.com/w/the-appian-playbook/520/ldap-synchronization for more information.

Anonymous
  • We are receiving below error in LDAP Sync, this is due to more that 1000 users in AD group. Can anyone please let me know how to enable batching with LDAP User Profile Synchronization Smart service?

    com.appiancorp.services.exceptions.ServiceException: com.appiancorp.services.exceptions.ServiceException: javax.naming.SizeLimitExceededException: [LDAP: error code 4 - Sizelimit Exceeded]; remaining name 'dc=AD,dc=abc,dc=com'

  • Hej Zach, 

    Thanks for responding. We did upgrade to 1.5.0 version for the plugin on right after we upgraded the platform to 23.1. 

    Did some digging in the log you mentioned and found this ERROR msg: 

    2023-10-02 11:00:03,970 [ThreadPoolTaskExecutor-49977] ERROR com.appiancorp.process.workpoller.WorkItemListener - The following exception occurred while attempting to complete work item [[WorkId: 26, EngineId: execution00, Request: UnattendedJavaActivityRequest:1057423 as DeploymentDaemon by DeploymentDaemon, ProcessId: 222361, ProcessModelId: 301, Response: null]] - Exception: 
    javax.resource.spi.work.WorkCompletedException: java.lang.NoSuchMethodError: com.appiancorp.suiteapi.personalization.UserValidationUtils.isValidNameLength(Ljava/lang/String;I)Z

    I will investigate it on my end,however, if you already might know what's the cause of this, please feel free to respond.
  • User with last name with only ‘full stop’ is not getting sync as part of LDAP sync ‘and the moving towards failed user text.

  • Is your site using the latest plug-in version? More information will be available in the tomcat-stdout.log file about this error, but several users have reported issues with older version of this plug-in on 23.1 and later.

  • Hello, 

    Have anyone ran into any issues with this plugin while the system is on version 23.1 and above? 

    We are experiencing some issues with our plugin nodes, where is simply says that "An error occurred in executing an Activity Class."

  • We managed to get the plugin working. However, we are observing an issue. In the configuration screen, the filter testing results returns 3 users, however, in the "LDAP User Synch With Usernames" node, the "usernamesUpdated_texts" var will only return 2 users, therefore, 1 of the user will be removed from the current group in appian after the sync.

    We checked the setting on all 3 users in ldap are the same, what else are we missing here? Or can anyone tell us how can the same filter returns correct number of users in a group in ldap in configuration screen, and not in the smart node in process model?

  • I am trying to use ldapSearch() function from a expression editor and trying to pass the paraments the function needs. I am getting below error. Any Idea what might be the issue? 

    ERROR com.atlassian.plugins.rest.common.error.jersey.ThrowableExceptionMapper - Uncaught exception thrown by REST service: loader constraint violation: when resolving method "org.slf4j.impl.StaticLoggerBinder.getLoggerFactory()Lorg/slf4j/ILoggerFactory;" the class loader (instance of org/apache/felix/framework/BundleWiringImpl$BundleClassLoader) of the current class, org/slf4j/LoggerFactory, and the class loader (instance of org/apache/felix/framework/BundleWiringImpl$BundleClassLoader) for the method's defining class, org/slf4j/impl/StaticLoggerBinder, have different Class objects for the type org/slf4j/ILoggerFactory used in the signature
    java.lang.LinkageError: loader constraint violation: when resolving method "org.slf4j.impl.StaticLoggerBinder.getLoggerFactory()Lorg/slf4j/ILoggerFactory;" the class loader (instance of org/apache/felix/framework/BundleWiringImpl$BundleClassLoader) of the current class, org/slf4j/LoggerFactory, and the class loader (instance of org/apache/felix/framework/BundleWiringImpl$BundleClassLoader) for the method's defining class, org/slf4j/impl/StaticLoggerBinder, have different Class objects for the type org/slf4j/ILoggerFactory used in the signature

    Thanks

  • I am currently looking at the User record upgrade documentation and I noticed that in the record sync notes, the user record sync cannot be triggered except from specified OTB user smart services or where the userService public Java API has been used in the related plugin.
    I cannot find any reference to the userService public Java API inside the source for this plugin and so I would conclude that this plugin will not trigger the record synchronization.
    Am I correct in my findings above?
    Does anyone have any experience they would like to share or recommend a course of action that would result in the triggering of a User record sync when utilising this smart service?
    Thanks in advance.

  • Had similar issues, but after updating the plugin from 1.2 to LDAP-tools-1.5.1; the issue was resolved.

  • We found that the Users Deactivated output from the LDAP User Profile Synchronization With Usernames smart service is always returning 0, even when the Usernames Deactivated returns data for our current implementation. Is this intended or is there some issue there? We are currently on 1.5.1 in 22.2 Appian.