Funciones LDAP en Jitterbit Integration Studio
Introducción
LDAP (Protocolo Ligero de Acceso a Directorios) es un protocolo que permite buscar y actualizar un directorio. Es compatible con numerosos servidores de directorio, como Microsoft Active Directory y Netscape Directory Server. Un directorio generalmente contiene información sobre usuarios y recursos de red, pero puede contener cualquier tipo de datos. Estas funciones permiten que scripts y transformaciones se conecten a un directorio utilizando LDAP. Estas funciones se utilizan de manera independiente del conector LDAP, que tiene funcionalidad similar integrada en el conector.
El patrón de uso sigue estos pasos:
LDAPConnect
: Establece una conexión con el servidorLDAPAdd
,LDAPReplace
,LDAPRemove
,..: Encola acciones a realizarLDAPExecute
: Ejecuta la cola en el servidor
Para buscar, se puede seguir este patrón:
LDAPConnect
: Establece una conexión con el servidorLDAPSearch
: Ejecuta la búsqueda en el servidor y devuelve el resultado
Establecer contraseñas LDAP programáticamente
A partir de la versión 9.9 de Harmony, las contraseñas LDAP se pueden establecer utilizando estas funciones LDAP. La contraseña debe convertirse primero a binario antes de poder ser establecida. (La contraseña puede requerir estar entre comillas dobles antes de la conversión a binario, ya que Active Directory requiere que los valores estén entre comillas dobles.) Este fragmento de script muestra cómo se podría lograr:
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 requeridos
arr
: Un arreglo con valores que se utilizarán para poblar un atributo LDAP de múltiples valores
Descripción
Señales que se debe usar un arreglo para poblar un atributo LDAP de múltiples valores al mapear a un destino LDAP. El arreglo se convierte a XML e 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 requeridos
ldapType
: El tipo de registro o atributo LDAPldapValue
: El valor que se va a agregar para el tipo
Descripción
Para usar esta función, primero se debe utilizar la función LDAPConnect
para establecer una conexión con el directorio LDAP.
Una vez establecida la conexión, se utiliza la función LDAPAdd
para agregar entradas y atributos al directorio LDAP conectado. El valor se agrega al nodo especificado en la función LDAPExecute
, que debe ser llamada inmediatamente después para que los cambios surtan efecto.
Consulte también las funciones LDAPConnect
y LDAPExecute
.
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 requeridos
hostname
: Nombre del host de un servidor LDAP al que conectarse; puede incluir un puerto, comodirectory.example.com:10389
user
: Nombre de usuario para conectarse al host LDAPpassword
: Contraseña para usar al conectarse al host LDAP
Parámetros opcionales
-
mode
: Modo de conexión; uno de:0
: Conexión no segura; puerto predeterminado: 3891
: Conexión segura; puerto predeterminado: 3892
: Conexión segura utilizando LDAP sobre SSL; puerto predeterminado: 636
-
port
: Puerto a utilizar para conectarse al host LDAP (-1
indica usar los puertos LDAP predeterminados)
Description
Se conecta a un directorio utilizando LDAP.
Véase también la función LDAPExecute
.
Consejo
Al usar este comando, utilice una variable de proyecto de Jitterbit para almacenar la contraseña de manera segura que no será visible cuando se visualice el script.
Nota
Los puntos finales creados con esta función se incluyen en informe de uso de puntos finales y cuentan para su licencia.
Examples
// Conecta a un servidor LDAP utilizando hostname:port, username, password, mode
connected = LDAPConnect("directory.company.example.com:10389", "admin", $adminpassword, 0);
LDAPDeleteEntry
Declaration
bool LDAPDeleteEntry(string distinguishedName)
Syntax
LDAPDeleteEntry(<distinguishedName>)
Required parameters
distinguishedName
: Un nombre distinguido LDAP que se eliminará del servidor actualmente conectado
Description
Para utilizar esta función, primero se debe usar la función LDAPConnect
para establecer una conexión con el directorio LDAP.
Después de establecer una conexión, se utiliza la función LDAPDeleteEntry
para eliminar una entrada especificada por un nombre distinguido.
Véase también las funciones LDAPConnect
y LDAPExecute
.
Examples
LDAPDeleteEntry("CN=wright,CN=Users,DC=company,DC=example,DC=com");
LDAPExecute
Declaración
bool LDAPExecute(string distinguishedName)
Sintaxis
LDAPExecute(<distinguishedName>)
Parámetros requeridos:
distinguishedName
: Un nombre distinguido LDAP en el servidor actualmente conectado
Descripción
Para utilizar esta función, primero se debe usar la función LDAPConnect
para establecer una conexión con el directorio LDAP.
Una vez establecida la conexión, se utiliza la función LDAPExecute
para ejecutar una o más modificaciones (agregar, eliminar, reemplazar) que se han especificado previamente con las funciones LDAPAdd
, LDAPRemove
o LDAPReplace
.
Consulte también las funciones LDAPConnect
y LDAPExecute
.
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 requeridos
ldapType
: El tipo de atributo LDAPldapValue
: El valor que se va a eliminar para el tipo de atributo especificado
Descripción
Para utilizar esta función, primero se debe usar la función LDAPConnect
para establecer una conexión con el directorio LDAP.
Una vez establecida la conexión, se utiliza la función LDAPRemove
para eliminar un atributo de un tipo especificado y con un valor especificado.
Si no se encuentra el tipo de atributo de ese valor, se genera un error. Consulte también las funciones LDAPConnect
y LDAPExecute
.
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 requeridos
distinguishedName
: La ruta de la entrada del directorio (nombre distinguido) que se va a renombrarnewRDN
: El nuevo nombre distinguido relativo
Parámetros opcionales
newParent
: El nombre distinguido del nuevo padre de esta entrada; el valor predeterminado es vacíodeleteOldRDN
: Si estrue
, el antiguo nombre distinguido relativo será eliminado; el valor predeterminado esfalse
Descripción
Para usar esta función, primero se debe utilizar la función LDAPConnect
para establecer una conexión con el directorio LDAP.
Una vez establecida la conexión, se utiliza la función LDAPRename
para cambiar el nombre distinguido de una entrada en el directorio conectado.
Consulte también las funciones LDAPConnect
y LDAPExecute
.
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 requeridos
ldapType
: El tipo de registro o atributo LDAPldapValue
: El nuevo valor que se establecerá para el tipo
Descripción
Para usar esta función, primero se debe utilizar la función LDAPConnect
para establecer una conexión con el directorio LDAP.
Una vez establecida la conexión, se utiliza la función LDAPReplace
para reemplazar el valor de un atributo existente con un nuevo valor.
Consulte también las funciones LDAPConnect
y LDAPExecute
.
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 soporte para UTF-8, consulte la entrada LDAP en Editar el archivo de configuración (jitterbit.conf).
Ejemplos
// Reemplazando una entrada LDAP y ejecutándola
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 requeridos
path
: El nombre distinguido utilizado como base de la búsquedafilter
: Un filtro de búsqueda en forma de cadena de consulta, tal como se define en RFC 4515**-
detail
: Detalles que se devolverán:0
: Pasar para devolver una cadena simple que es el primer atributo encontrado que coincide con el filtro1
: Pasar para devolver una representación XML de los resultados de la búsqueda. Esto se puede establecer en un elemento de datos utilizando la funciónSet
y luego acceder más tarde utilizandoGet
y una consulta XPath usando la funciónSelectSingleNode
.2
: Pasar para devolver un arreglo bidimensional, donde cada fila representa una entrada LDAP y donde los elementos de la fila son los valores de los atributos. Acceda a los elementos utilizando la funciónGet
.
-
attribute,... attributeN
: Un atributo que se incluirá en el resultado de la búsqueda (en otras palabras, el atributo que está buscando). Se pueden especificar atributos adicionales; sepárelos con comas.
Descripción
Para utilizar esta función, primero se debe usar la función LDAPConnect
para establecer una conexión con el directorio LDAP.
Una vez que se establece una conexión, se utiliza la función LDAPSearch
para buscar dentro del directorio conectado.
Consulte también las funciones LDAPConnect
y LDAPExecute
.
Controlando variables de Jitterbit
Estas variables de Jitterbit afectan la búsqueda:
Variable | Valor(es) | Descripción |
---|---|---|
jitterbit.scripting.ldap.scope | 0 | Limitar el alcance de la consulta solo a la entrada base |
1 | Buscar todas las entradas en el primer nivel debajo de la entrada base, excluyendo la entrada base (predeterminado) | |
2 | Buscar la entrada base y todas las entradas en el á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 | Usar 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; un valor predeterminado generalmente es establecido por el servidor LDAP (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: false) |
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");