Funções LDAP
LDAP (Lightweight Directory Access Protocol) é um protocolo que permite pesquisar e atualizar um diretório. É suportado por vários 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 dados.
Essas funções permitem que scripts e transformações se conectem a um diretório usando LDAP.
O padrão de uso segue estas etapas:
LDAPConnect
: Estabelece uma conexão com o servidorLDAPAdd, LDAPReplace, LDAPRemove,...
: Enfileira ações a serem executadasLDAPExecute
: Executa a fila no servidor
Para pesquisar, você pode seguir este padrão:
LDAPConnect
: Estabelece uma conexão com o servidorLDAPSearch
: Executa a busca no servidor e retorna o resultado
Definir Senhas LDAP Programaticamente
A partir do Harmony versão 9.9, as senhas LDAP podem ser definidas usando estas funções LDAP. A senha precisa primeiro ser convertida em binário antes de poder ser definida. (A senha pode exigir que os valores sejam colocados entre aspas duplas antes da conversão para binário, pois o Active Directory exige que os valores sejam colocados entre aspas duplas.) Este fragmento de script mostra como isso pode ser feito:
LDAPConnect("<TAG>Project Name/Targets/LDAPTarget</TAG>");
$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
: Uma matriz com valores a serem usados para preencher um atributo LDAP de valores múltiplos
Descrição
Sinaliza que uma matriz deve ser usada para preencher um atributo LDAP de valores múltiplos ao mapear para um destino LDAP. A matriz é convertida em XML e interpretada quando o servidor LDAP é gravado.
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 registro LDAP ou tipo de atributoldapValue
: O valor a ser adicionado para o tipo
Descrição
Para usar esta função, o LDAPConnect
a função deve primeiro ser usada para estabelecer uma conexão com o diretório LDAP.
Depois que uma conexão for estabelecida, o LDAPAdd()
A função é usada para adicionar entradas e atributos ao diretório LDAP conectado. O valor é adicionado ao nó especificado no LDAPExecute
função, que deve ser chamada imediatamente depois para que as alterações tenham efeito.
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 ldapEndpointId)
bool LDAPConnect(string hostname, string user, string password[, int mode, long port])
Sintaxe
LDAPConnect(<ldapEndpointId>)
LDAPConnect(<hostname>, <user>, <password>[, <mode>, <port>])
Parâmetros Obrigatórios
ldapEndpointId
: (Primeiro formulário) Uma origem ou destino LDAP no projeto atualhostname
: (Segunda forma) Nome do host de um servidor LDAP ao qual se conectar; pode incluir uma porta, comodirectory.example.com:10389
user
: (Segunda forma) Nome de usuário para conectar-se ao hospedar LDAPpassword
: (Segunda forma) Senha a ser usada para conectar-se ao hospedar LDAP
Parâmetros Opcionais
mode
: (Segunda forma) Modo de conexão; um de: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
: (Segunda forma) Porta a ser usada para conectar ao hospedar LDAP (-1
indica usar as portas LDAP padrão)
Descrição
Conecta-se a um diretório usando LDAP. O endpoint LDAP deve ser definido no projeto atual ou especificado usando a segunda forma do comando. Veja as instruções em inserir itens do projeto.
Veja também o LDAPExecute
função.
Dica
Se você estiver usando a segunda forma deste comando, use uma variável de projeto Jitterbit para armazenar a senha de uma maneira segura que não ficará visível quando o script estiver sendo visualizado.
Exemplos
// Connects to an LDAP Target
connected = LDAPConnect("<TAG>Project Name/Targets/LDAPTarget</TAG>");
// Connects to an LDAP server using 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, o LDAPConnect
a função deve primeiro ser usada para estabelecer uma conexão com o diretório LDAP.
Depois que uma conexão for estabelecida, o LDAPDeleteEntry
a função é usada para remover uma entrada especificada por um nome distinto.
Veja também o LDAPConnect
e LDAPExecute
funções.
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, o LDAPConnect
a função deve primeiro ser usada para estabelecer uma conexão com o diretório LDAP.
Depois que uma conexão for estabelecida, o LDAPExecute()
função é usada para executar uma ou mais modificações (adicionar, remover, substituir) que foram previamente especificadas com o LDAPAdd
, LDAPRemove
, ou LDAPReplace
funções.
Veja também o LDAPConnect
e LDAPExecute
funções.
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, o LDAPConnect
a função deve primeiro ser usada para estabelecer uma conexão com o diretório LDAP.
Uma vez estabelecida uma conexão, o LDAPRemove
a função é 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 será gerado. Veja também o LDAPConnect
e LDAPExecute
funções.
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 renomeadonewRDN
: 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á excluído; o padrão éfalse
Descrição
Para usar esta função, o LDAPConnect
a função deve primeiro ser usada para estabelecer uma conexão com o diretório LDAP.
Uma vez estabelecida uma conexão, o LDAPRename
a função é usada para alterar o nome distinto de uma entrada no diretório conectado.
Veja também o LDAPConnect
e LDAPExecute
funções.
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 registro LDAP ou tipo de atributoldapValue
: O novo valor a ser definido para o tipo
Descrição
Para usar esta função, o LDAPConnect
a função deve primeiro ser usada para estabelecer uma conexão com o diretório LDAP.
Uma vez estabelecida uma conexão, o LDAPReplace
a função é usada para substituir o valor de um atributo existente por um novo valor.
Veja também o LDAPConnect
e LDAPExecute
funções.
Nota
Se você usar LDAPReplace()
função para substituir o valor de um atributo existente por um novo valor em um Active Directory, o texto poderá ser convertido em um resultado diferente da entrada. Por exemplo, François retornaria François. Para obter mais informações sobre como adicionar suporte a UTF-8, consulte o LDAP entrada em Editar o arquivo de configuração (jitterbit.conf).
Exemplos
// Replacing an LDAP entry and executing it
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 de string de consultar, conforme definido por RFC 4515**detail
: Detalhes a serem retornados:0
: Passe para retornar uma string simples que é o primeiro atributo encontrado que corresponde ao filtro1
: Passe para retornar uma representação XML dos resultados da pesquisa. Isso pode ser definido para um elemento de dados usando oSet
função e acessada posteriormente usandoGet
e uma consultar XPath usando oSelectSingleNode
função.2
: Passe 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 oGet
função.
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, o LDAPConnect
a função deve primeiro ser usada para estabelecer uma conexão com o diretório LDAP.
Uma vez estabelecida uma conexão, o LDAPSearch
a função é usada para pesquisar no diretório conectado.
Veja também o LDAPConnect
e LDAPExecute
funções.
Controlando Variáveis jitterbit
Estas variáveis Jitterbit afetam a pesquisa:
Variável | Valor(es) | Descrição |
---|---|---|
jitterbit.scripting.ldap.scope | 0 | Limitar o escopo da consultar apenas à entrada base |
1 | Pesquisa todas as entradas no primeiro nível abaixo da entrada base, excluindo a entrada base (padrão) | |
2 | Pesquise a entrada base e todas as entradas na árvore abaixo da base | |
jitterbit.scripting.ldap.include_dn_in_results | true | Inclua o nome distinto no resultado da pesquisa (padrão: false ) |
jitterbit.scripting.ldap.use_paged_search | true | Use uma pesquisa paginada; útil para recuperar grandes conjuntos de resultados (padrão: false ) |
jitterbit.scripting.ldap.max_search_results | n | Limite o número de resultados da pesquisa a n resultados; um padrão geralmente é definido pelo servidor LDAP (padrão ilimitado: -1 ) |
jitterbit.scripting.ldap.return_null_if_no_results | true | Faça com que LDAPSearch() retorne nulo se a pesquisa não retornar nenhum resultado (padrão: falso) |
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");