====== Extended synchronization rules for LDAP ======
LSC has some built-in fonctions to interact with generic LDAP servers.
===== Performing a BIND operation to test a password =====
You can check a user's password on any LDAP server by calling one of the methods described in [[http://lsc-project.org/javadoc/latest/org/lsc/utils/directory/LDAP.html|this JavaDoc]].
For example, the following would open an anonymous LDAP connection to the ldap.example.com server, and attempt a BIND operation with the DN "uid=1234,ou=people,dc=example,dc=com" and the password "secret":
LDAP.canBind("ldap://ldap.example.com/", "uid=1234,ou=people,dc=example,dc=com", \
"secret")
More complicated, you can connect and bind as a service DN, then search for a user's DN and use that to test a password in a BIND operation:
LDAP.canBindSearchRebind("ldap://ldap.example.com/o=demo??sub?uid=1234", \
"cn=svc-lsc,ou=technical,o=demo", "svc-lsc-password", "secret")
These methods all return booleans, so can be used in conditions. For example:
lsc.tasks.MySyncTask.condition.update = LDAP.canBind( \
"ldap://ldap.example.com/", "uid=1234,ou=people,dc=example,dc=com", "secret")