Saltar al contenido

Funciones LDAP

Introducción

LDAP (Lightweight Directory Access Protocol) es un protocolo que permite buscar y actualizar un directorio. Es compatible con numerosos servidores de directorios, como Microsoft Active Directory y Netscape Directory Server. Un directorio suele contener información sobre los usuarios y los recursos de red, pero puede contener cualquier tipo de datos. Estas funciones permiten que los secuencias de comandos y las transformaciones se conecten a un directorio mediante LDAP. Estas funciones se utilizan independientemente del conector LDAP, que tiene una funcionalidad similar incorporada en el conector.

El patrón de uso sigue estos pasos:

  • LDAPConnect: Establece una conexión con el servidor
  • LDAPAdd, LDAPReplace, LDAPRemove,..: Pone en cola las acciones que se deben realizar
  • LDAPExecute: Ejecuta la cola en el servidor

Para realizar búsquedas, puedes seguir este patrón:

  • LDAPConnect: Establece una conexión con el servidor
  • LDAPSearch: Ejecuta la búsqueda en el servidor y devuelve el resultado

Establecer Contraseñas LDAP Mediante Programación

A partir de la versión 9.9 de Harmony, las contraseñas LDAP se pueden configurar mediante estas funciones LDAP. La contraseña debe convertirse primero a binario antes de poder configurarse. (Es posible que sea necesario escribir la contraseña entre comillas dobles antes de la conversión a binario, ya que Active Directory requiere que los valores se escriban entre comillas dobles). Este fragmento de secuencia de comandos muestra cómo se puede lograr esto:

LDAPConnect("directory.company.example.com:10389", "admin", $adminpassword, 0);
$plain = '"J1tterb1t!@#"';
$pwd = StringToHex($plain);
$i=0;
$newPwd = "";
While($i < Length($pwd)/2,
    $newPwd = $newPwd + Mid($pwd, $i * 2, 2) + "00";
    $i = $i+1;
);
$newPwd = HexToBinary($newPwd);

LDAPReplace("unicodePwd", $newPwd);
LDAPExecute("CN=wright,CN=Users,DC=company,DC=example,DC=com");

ArrayToMultipleValues

Declaración

string ArrayToMultipleValues(array arr)

Sintaxis

ArrayToMultipleValues(<arr>)

Parámetros Necesarios

  • arr: Una matriz con valores que se utilizarán para completar un atributo LDAP de múltiples valores

Descripción

Indica que se debe utilizar una matriz para completar un atributo LDAP de varios valores al asignarlo a un destino LDAP. La matriz se convierte a XML y se interpreta cuando se escribe en el servidor LDAP.

Ejemplos

// Create two LDAP attributes using an array
arr = Array();

// Length(arr) will always return the index of
// the next-after-last element of an array
arr[Length(arr)] = "First instance";
arr[Length(arr)] = "Second instance";

// The array will be converted to the string
// "<JB_Array><it>First instance</it><it>Second instance</it></JB_Array>"
result = ArrayToMultipleValues(arr);

LDAPAdd

Declaración

bool LDAPAdd(string ldapType, string ldapValue)

Sintaxis

LDAPAdd(<ldapType>, <ldapValue>)

Parámetros Necesarios

  • ldapType: El tipo de registro o atributo LDAP
  • ldapValue: El valor que se agregará para el tipo

Descripción

Para utilizar esta función, el LDAPConnect la función debe utilizarse primero para establecer una conexión con el directorio LDAP.

Una vez establecida la conexión, el LDAPAdd la función se utiliza para agregar entradas y atributos al directorio LDAP conectado. El valor se agrega al nodo especificado en el LDAPExecute función, que debe llamarse inmediatamente después para que los cambios surtan efecto.

Véase también la LDAPConnect y LDAPExecute funciones.

Ejemplos

// Adding a user entry to a directory:
LDAPAdd("objectClass", "user");
LDAPAdd("cn", "wright");
LDAPExecute("CN=wright,CN=Users,DC=company,DC=example,DC=com");

// Adding attributes to a user:
LDAPAdd("description", "Thinks a lot.");
LDAPExecute("CN=wright,CN=Users,DC=company,DC=example,DC=com");

LDAPConnect

Declaración

bool LDAPConnect(string hostname, string user, string password[, int mode, long port])

Sintaxis

LDAPConnect(<hostname>, <user>, <password>[, <mode>, <port>])

Parámetros Necesarios

  • hostname: Nombre de host de un servidor LDAP al que conectarse; puede incluir un puerto, como directory.example.com:10389- user: Nombre de usuario para conectarse al alojar LDAP
  • password: Contraseña a utilizar para conectarse al alojar LDAP

Parámetros Opcionales

  • mode: Modo de conexión; uno de los siguientes:

    • 0: Conexión no segura; puerto predeterminado: 389
    • 1: Conexión segura; puerto predeterminado: 389
    • 2: Conexión segura mediante LDAP sobre SSL; puerto predeterminado: 636
  • port: Puerto a utilizar para conectarse al alojar LDAP (-1 indica que se deben utilizar los puertos LDAP predeterminados)

Descripción

Se conecta a un directorio mediante LDAP.

Véase también el LDAPExecute función.

Consejo

Al utilizar este comando, utilice una variable de proyecto Jitterbit para almacenar la contraseña de una manera segura que no sea visible cuando se visualice el secuencia de comandos.

Ejemplos

// Connects to an LDAP server using hostname:port, username, password, mode
connected = LDAPConnect("directory.company.example.com:10389", "admin", $adminpassword, 0);

LDAPDeleteEntry

Declaración

bool LDAPDeleteEntry(string distinguishedName)

Sintaxis

LDAPDeleteEntry(<distinguishedName>)

Parámetros Necesarios

  • distinguishedName: Un nombre distinguido LDAP que se eliminará del servidor conectado actualmente

Descripción

Para utilizar esta función, el LDAPConnect la función debe utilizarse primero para establecer una conexión con el directorio LDAP.

Una vez establecida la conexión, el LDAPDeleteEntry la función se utiliza para eliminar una entrada especificada por un nombre distinguido.

Véase también la LDAPConnect y LDAPExecute funciones.

Ejemplos

LDAPDeleteEntry("CN=wright,CN=Users,DC=company,DC=example,DC=com");

LDAPExecute

Declaración

bool LDAPExecute(string distinguishedName)

Sintaxis

LDAPExecute(<distinguishedName>)

Parámetros obligatorios:

  • distinguishedName: Un nombre distinguido LDAP en el servidor conectado actualmente

Descripción

Para utilizar esta función, el LDAPConnect la función debe utilizarse primero para establecer una conexión con el directorio LDAP.

Una vez establecida la conexión, el LDAPExecute la función se utiliza para ejecutar una o más modificaciones (agregar, eliminar, reemplazar) que se hayan especificado previamente con la LDAPAdd, LDAPRemove, o LDAPReplace funciones.

Véase también la LDAPConnect y LDAPExecute funciones.

Ejemplos

// Adding LDAP entries and executing them
LDAPAdd("description", "Thinks a lot.");
LDAPReplace("telephoneNumber", "(510) 555 1000");
LDAPExecute("CN=wright,CN=Users,DC=company,DC=example,DC=com");

LDAPRemove

Declaración

bool LDAPRemove(string ldapType, string ldapValue)

Sintaxis

LDAPRemove(<ldapType>, <ldapValue>)

Parámetros Necesarios

  • ldapTyp: El tipo de atributo LDAP
  • ldapValue: El valor que se eliminará para el tipo de atributo especificado

Descripción

Para utilizar esta función, el LDAPConnect la función debe utilizarse primero para establecer una conexión con el directorio LDAP.

Una vez establecida la conexión, el LDAPRemove la función se utiliza para eliminar un atributo de un tipo específico y con un valor específico.

Si no se encuentra el tipo de atributo de ese valor, se genera un error. Consulte también la LDAPConnect y LDAPExecute funciones.

Ejemplos

// Removing an LDAP entry and executing it
LDAPRemove("telephoneNumber", "(510) 555-1000");
LDAPAdd("telephoneNumber", "(510) 555-2000");
LDAPExecute("CN=wright,CN=Users,DC=company,DC=example,DC=com");

LDAPRename

Declaración

bool LDAPRename(string distinguishedName, string newRDN[, string newParent, bool deleteOldRDN])

Sintaxis

LDAPRename(<distinguishedName>, <newRDN>[, <newParent>, <deleteOldRDN>])

Parámetros Necesarios

  • distinguishedName: La ruta de la entrada del directorio (nombre distintivo) que se va a renombrar
  • newRDN: El nuevo nombre distinguido relativo

Parámetros Opcionales

  • newParent: El nombre distintivo del nuevo padre de esta entrada; el valor predeterminado está vacío
  • deleteOldRDN: Si true, se eliminará el antiguo nombre distinguido relativo; el valor predeterminado es false

Descripción

Para utilizar esta función, el LDAPConnect la función debe utilizarse primero para establecer una conexión con el directorio LDAP.

Una vez establecida la conexión, el LDAPRename la función se utiliza para cambiar el nombre distintivo de una entrada en el directorio conectado.

Véase también la LDAPConnect y LDAPExecute funciones.

Ejemplos

LDAPRename("telephoneNumber", "telephoneNumberHome");
LDAPExecute("CN=wright,CN=Users,DC=company,DC=example,DC=com");

LDAPReplace

Declaración

bool LDAPReplace(string ldapType, string ldapValue)

Sintaxis

LDAPReplace(<ldapType>, <ldapValue>)

Parámetros Necesarios

  • ldapType: El tipo de registro o atributo LDAP
  • ldapValue: El nuevo valor que se establecerá para el tipo

Descripción

Para utilizar esta función, el LDAPConnect la función debe utilizarse primero para establecer una conexión con el directorio LDAP.

Una vez establecida la conexión, el LDAPReplace la función se utiliza para reemplazar el valor de un atributo existente por un nuevo valor.

Véase también la LDAPConnect y LDAPExecute funciones.

Nota

Si utiliza LDAPReplace para reemplazar el valor de un atributo existente con un nuevo valor en un Active Directory, el texto puede convertirse en un resultado diferente al de la entrada. Por ejemplo, François devolvería FrançOis. Para obtener más información sobre cómo agregar compatibilidad con UTF-8, consulte LDAP entrada en Editar el archivo de configuración (jitterbit.conf).

Ejemplos

// Replacing an LDAP entry and executing it
LDAPReplace("telephoneNumber", "(510) 555-1000");
LDAPExecute("CN=wright,CN=Users,DC=company,DC=example,DC=com");

LDAPSearch

Declaración

string LDAPSearch(string path, string filter, int detail, string attribute1[, ... string attributeN])

Sintaxis

LDAPSearch(<path>, <filter>, <detail>, <attribute1>[, ... <attributeN>])

Parámetros Necesarios

  • path: El nombre distintivo utilizado como base de la búsqueda
  • filter: Un filtro de búsqueda de cadena de consultar, según lo definido por RFC 4515**
  • detail: Detalles a devolver:

    • 0: Pase para devolver una cadena simple que es el primer atributo encontrado que coincide con el filtro
    • 1: Pase para devolver una representación XML de los resultados de la búsqueda. Esto se puede configurar como un elemento de datos mediante el comando Set función y luego se accede más tarde usando Get y una consultar XPath utilizando el SelectSingleNode función.
    • 2: Pase para devolver una matriz bidimensional, donde cada fila representa una entrada LDAP y donde los elementos de fila son los valores de los atributos. Acceda a los elementos utilizando el Get función.
  • attribute,... attributeN: Un atributo que se incluirá en el resultado de la búsqueda (en otras palabras, el atributo que estás buscando). Se pueden especificar atributos adicionales; sepáralos con comas.

Descripción

Para utilizar esta función, el LDAPConnect la función debe utilizarse primero para establecer una conexión con el directorio LDAP.

Una vez establecida la conexión, el LDAPSearch la función se utiliza para buscar dentro del directorio conectado.

Véase también la LDAPConnect y LDAPExecute funciones.

Control de Variables de Jitterbit

Estas variables de Jitterbit afectan la búsqueda:

Variable Valor(es) Descripción
jitterbit.scripting.ldap.scope 0 Limite el alcance de la consultar únicamente a la entrada base
1 Buscar todas las entradas en el primer nivel debajo de la entrada base, excluyendo la entrada base (predeterminado)
2 Busca en la entrada base y en todas las entradas del árbol debajo de la base
jitterbit.scripting.ldap.include_dn_in_results true Incluir el nombre distinguido en el resultado de la búsqueda (predeterminado: false)
jitterbit.scripting.ldap.use_paged_search true Utilice una búsqueda paginada; útil para recuperar grandes conjuntos de resultados (predeterminado: false)
jitterbit.scripting.ldap.max_search_results n Limitar el número de resultados de búsqueda a n resultados; el servidor LDAP suele establecer un valor predeterminado (predeterminado ilimitado: -1)
jitterbit.scripting.ldap.return_null_if_no_results true Hacer que LDAPSearch() devuelva nulo si la búsqueda no devuelve ningún resultado (predeterminado: falso)

Ejemplos

// Connecting to an LDAP server using a password set
// in a global variable ("$ldapPassword") and then performing a search
LDAPConnect("directory.company.example.com", "ghvwright", $ldapPassword, 0);
directorySearchResults = LDAPSearch("CN=Users,DC=company,DC=example,DC=com",
  "(&(objectCategory=person)(objectClass=user))", 1, "name", "whenCreated",
  "description", "telephoneNumber");