Funções LDAP no Jitterbit Integration Studio
Introdução
LDAP (Protocolo Leve de Acesso a Diretórios) é um protocolo que permite pesquisar e atualizar um diretório. É suportado por diversos servidores de diretório, como Microsoft Active Directory e Netscape Directory Server. Um diretório geralmente contém informações sobre usuários e recursos de rede, mas pode conter qualquer tipo de dado. Essas funções permitem que scripts e transformações se conectem a um diretório usando LDAP. Essas funções são usadas independentemente do conector LDAP, que possui funcionalidade semelhante incorporada ao conector.
O padrão de uso segue estas etapas:
LDAPConnect
: Estabelece uma conexão com o servidorLDAPAdd
,LDAPReplace
,LDAPRemove
,..: Enfileira ações a serem realizadasLDAPExecute
: Executa a fila no servidor
Para pesquisa, você pode seguir este padrão:
LDAPConnect
: Estabelece uma conexão com o servidorLDAPSearch
: Executa a pesquisa no servidor e retorna o resultado
Definir senhas LDAP programaticamente
A partir da versão 9.9 do Harmony, as senhas LDAP podem ser definidas usando essas funções LDAP. A senha precisa ser convertida para binário antes de ser definida. (A senha pode precisar ser colocada entre aspas duplas antes da conversão para binário, pois o Active Directory exige que os valores estejam entre aspas duplas.) Este fragmento de script mostra como isso pode ser realizado:
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
Declaração
string ArrayToMultipleValues(array arr)
Sintaxe
ArrayToMultipleValues(<arr>)
Parâmetros obrigatórios
arr
: Um array com valores a serem usados para preencher um atributo LDAP de múltiplos valores
Descrição
Sinaliza que um array deve ser usado para preencher um atributo LDAP de múltiplos valores ao mapear para um destino LDAP. O array é convertido em XML e interpretado quando o servidor LDAP é escrito.
Exemplos
// 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
Declaração
bool LDAPAdd(string ldapType, string ldapValue)
Sintaxe
LDAPAdd(<ldapType>, <ldapValue>)
Parâmetros obrigatórios
ldapType
: O tipo de registro ou atributo LDAPldapValue
: O valor a ser adicionado para o tipo
Descrição
Para usar esta função, a função LDAPConnect
deve ser usada primeiro para estabelecer uma conexão com o diretório LDAP.
Após a conexão ser estabelecida, a função LDAPAdd
é usada para adicionar entradas e atributos ao diretório LDAP conectado. O valor é adicionado ao nó especificado na função LDAPExecute
, que deve ser chamada imediatamente em seguida para que as alterações tenham efeito.
Veja também as funções LDAPConnect
e LDAPExecute
.
Exemplos
// 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
Declaração
bool LDAPConnect(string hostname, string user, string password[, int mode, long port])
Sintaxe
LDAPConnect(<hostname>, <user>, <password>[, <mode>, <port>])
Parâmetros obrigatórios
hostname
: Nome do host de um servidor LDAP ao qual se conectar; pode incluir uma porta, comodirectory.example.com:10389
user
: Nome de usuário para se conectar ao host LDAPpassword
: Senha a ser usada para se conectar ao host LDAP
Parâmetros opcionais
-
mode
: Modo de conexão; um dos:0
: Conexão não segura; porta padrão: 3891
: Conexão segura; porta padrão: 3892
: Conexão segura usando LDAP sobre SSL; porta padrão: 636
-
port
: Porta a ser usada para conectar ao host LDAP (-1
indica usar as portas LDAP padrão)
Descrição
Conecta-se a um diretório usando LDAP.
Veja também a função LDAPExecute
.
Dica
Ao usar este comando, utilize uma variável de projeto Jitterbit para armazenar a senha de forma segura, que não será visível quando o script estiver sendo visualizado.
Nota
Os endpoints criados com esta função estão incluídos no relatório de uso de endpoints e contam para sua licença.
Exemplos
// Conecta-se a um servidor LDAP usando hostname:port, username, password, mode
connected = LDAPConnect("directory.company.example.com:10389", "admin", $adminpassword, 0);
LDAPDeleteEntry
Declaração
bool LDAPDeleteEntry(string distinguishedName)
Sintaxe
LDAPDeleteEntry(<distinguishedName>)
Parâmetros obrigatórios
distinguishedName
: Um nome distinto LDAP a ser removido do servidor atualmente conectado
Descrição
Para usar esta função, a função LDAPConnect
deve ser usada primeiro para estabelecer uma conexão com o diretório LDAP.
Após estabelecer uma conexão, a função LDAPDeleteEntry
é usada para remover uma entrada especificada por um nome distinto.
Veja também as funções LDAPConnect
e LDAPExecute
.
Exemplos
LDAPDeleteEntry("CN=wright,CN=Users,DC=company,DC=example,DC=com");
LDAPExecute
Declaração
bool LDAPExecute(string distinguishedName)
Sintaxe
LDAPExecute(<distinguishedName>)
Parâmetros obrigatórios:
distinguishedName
: Um nome distinto LDAP no servidor atualmente conectado
Descrição
Para usar esta função, a função LDAPConnect
deve ser utilizada primeiro para estabelecer uma conexão com o diretório LDAP.
Depois que uma conexão é estabelecida, a função LDAPExecute
é usada para executar uma ou mais modificações (adicionar, remover, substituir) que foram previamente especificadas com as funções LDAPAdd
, LDAPRemove
ou LDAPReplace
.
Veja também as funções LDAPConnect
e LDAPExecute
.
Exemplos
// 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
Declaração
bool LDAPRemove(string ldapType, string ldapValue)
Sintaxe
LDAPRemove(<ldapType>, <ldapValue>)
Parâmetros obrigatórios
ldapType
: O tipo de atributo LDAPldapValue
: O valor a ser removido para o tipo de atributo especificado
Descrição
Para usar esta função, a função LDAPConnect
deve ser utilizada primeiro para estabelecer uma conexão com o diretório LDAP.
Uma vez que uma conexão é estabelecida, a função LDAPRemove
é usada para remover um atributo de um tipo especificado e com um valor especificado.
Se o tipo de atributo desse valor não for encontrado, um erro é gerado. Veja também as funções LDAPConnect
e LDAPExecute
.
Exemplos
// 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
Declaração
bool LDAPRename(string distinguishedName, string newRDN[, string newParent, bool deleteOldRDN])
Sintaxe
LDAPRename(<distinguishedName>, <newRDN>[, <newParent>, <deleteOldRDN>])
Parâmetros obrigatórios
distinguishedName
: O caminho da entrada do diretório (nome distinto) a ser renomeadanewRDN
: O novo nome distinto relativo
Parâmetros opcionais
newParent
: O nome distinto do novo pai desta entrada; o padrão é vaziodeleteOldRDN
: Setrue
, o antigo nome distinto relativo será deletado; o padrão éfalse
Descrição
Para usar esta função, a função LDAPConnect
deve ser utilizada primeiro para estabelecer uma conexão com o diretório LDAP.
Uma vez que a conexão é estabelecida, a função LDAPRename
é usada para alterar o nome distinto de uma entrada no diretório conectado.
Veja também as funções LDAPConnect
e LDAPExecute
.
Exemplos
LDAPRename("telephoneNumber", "telephoneNumberHome");
LDAPExecute("CN=wright,CN=Users,DC=company,DC=example,DC=com");
LDAPReplace
Declaração
bool LDAPReplace(string ldapType, string ldapValue)
Sintaxe
LDAPReplace(<ldapType>, <ldapValue>)
Parâmetros obrigatórios
ldapType
: O tipo de registro ou atributo LDAPldapValue
: O novo valor a ser definido para o tipo
Descrição
Para usar esta função, a função LDAPConnect
deve ser utilizada primeiro para estabelecer uma conexão com o diretório LDAP.
Uma vez que a conexão é estabelecida, a função LDAPReplace
é usada para substituir o valor de um atributo existente por um novo valor.
Veja também as funções LDAPConnect
e LDAPExecute
.
Nota
Se você usar LDAPReplace
para substituir o valor de um atributo existente por um novo valor em um Active Directory, o texto pode ser convertido em um resultado diferente do esperado. Por exemplo, François retornaria FrançOis. Para mais informações sobre como adicionar suporte a UTF-8, veja a entrada LDAP em Editar o arquivo de configuração (jitterbit.conf).
Exemplos
// Substituindo uma entrada LDAP e executando-a
LDAPReplace("telephoneNumber", "(510) 555-1000");
LDAPExecute("CN=wright,CN=Users,DC=company,DC=example,DC=com");
LDAPSearch
Declaração
string LDAPSearch(string path, string filter, int detail, string attribute1[, ... string attributeN])
Sintaxe
LDAPSearch(<path>, <filter>, <detail>, <attribute1>[, ... <attributeN>])
Parâmetros obrigatórios
path
: O nome distinto usado como base da pesquisafilter
: Um filtro de pesquisa em forma de string, conforme definido por RFC 4515**-
detail
: Detalhes a serem retornados:0
: Passar para retornar uma string simples que é o primeiro atributo encontrado que corresponde ao filtro1
: Passar para retornar uma representação XML dos resultados da pesquisa. Isso pode ser definido como um elemento de dados usando a funçãoSet
e, em seguida, acessado mais tarde usandoGet
e uma consulta XPath usando a funçãoSelectSingleNode
.2
: Passar para retornar um array bidimensional, onde cada linha representa uma entrada LDAP e onde os elementos da linha são os valores dos atributos. Acesse os elementos usando a funçãoGet
.
-
attribute,... attributeN
: Um atributo a ser incluído no resultado da pesquisa (em outras palavras, o atributo que você está procurando). Atributos adicionais podem ser especificados; separe-os por vírgulas.
Descrição
Para usar esta função, a função LDAPConnect
deve ser usada primeiro para estabelecer uma conexão com o diretório LDAP.
Uma vez que a conexão é estabelecida, a função LDAPSearch
é usada para pesquisar dentro do diretório conectado.
Veja também as funções LDAPConnect
e LDAPExecute
.
Controlando variáveis do Jitterbit
Essas variáveis do Jitterbit afetam a busca:
Variável | Valor(es) | Descrição |
---|---|---|
jitterbit.scripting.ldap.scope | 0 | Limitar o escopo da consulta apenas à entrada base |
1 | Buscar todas as entradas no primeiro nível abaixo da entrada base, excluindo a entrada base (padrão) | |
2 | Buscar a entrada base e todas as entradas na árvore abaixo da base | |
jitterbit.scripting.ldap.include_dn_in_results | true | Incluir o nome distinto no resultado da busca (padrão: false ) |
jitterbit.scripting.ldap.use_paged_search | true | Usar uma busca paginada; útil para recuperar grandes conjuntos de resultados (padrão: false ) |
jitterbit.scripting.ldap.max_search_results | n | Limitar o número de resultados da busca a n resultados; um padrão é geralmente definido pelo servidor LDAP (padrão ilimitado: -1 ) |
jitterbit.scripting.ldap.return_null_if_no_results | true | Fazer com que LDAPSearch() retorne nulo se a busca não retornar nenhum resultado (padrão: false) |
Exemplos
// 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");