Ir para o conteúdo

Funções LDAP

Introdução

LDAP (Lightweight Directory Access Protocol) é um protocolo que permite que você pesquise e atualize um diretório. Ele é suportado por vários servidores de diretório, como o Microsoft Active Directory e o 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 tem funcionalidade semelhante incorporada ao conector.

O padrão de uso segue estas etapas:

  • LDAPConnect: Estabelece uma conexão com o servidor
  • LDAPAdd, LDAPReplace, LDAPRemove,..: Ações de filas a serem tomadas
  • LDAPExecute: Executa a fila no servidor

Para pesquisar, você pode seguir este padrão:

  • LDAPConnect: Estabelece uma conexão com o servidor
  • LDAPSearch: Executa a busca no servidor e retorna o resultado

Defina 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 primeiro ser convertida para binário antes de poder ser definida. (A senha pode exigir ser colocada 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("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: Uma matriz 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 alvo LDAP. O array é convertido para XML e interpretado 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 tipo de registro ou atributo LDAP
  • ldapValue: O valor a ser adicionado para o tipo

Descrição

Para usar esta função, o LDAPConnect a função deve ser usada primeiro para estabelecer uma conexão com o diretório LDAP.

Após o estabelecimento da conexão, 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 entrem em vigor.

Veja também o LDAPConnect e LDAPExecute funções.

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 para conectar; pode incluir uma porta, como directory.example.com:10389
  • user: Nome de usuário para conectar ao hospedar LDAP
  • password: Senha a ser usada para conectar ao hospedar LDAP

Parâmetros Opcionais

  • mode: Modo de conexão; um dos seguintes:

    • 0: Conexão não segura; porta padrão: 389
    • 1: Conexão segura; porta padrão: 389
    • 2: Conexão segura usando LDAP sobre SSL; porta padrão: 636
  • port: 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.

Veja também o LDAPExecute função.

Dica

Ao usar este comando, use uma variável de projeto Jitterbit para armazenar a senha de forma segura, que não ficará visível quando o script estiver sendo visualizado.

Exemplos

// 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 conectado no momento

Descrição

Para usar esta função, o LDAPConnect a função deve ser usada primeiro para estabelecer uma conexão com o diretório LDAP.

Após o estabelecimento da conexão, 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 conectado no momento

Descrição

Para usar esta função, o LDAPConnect a função deve ser usada primeiro para estabelecer uma conexão com o diretório LDAP.

Após o estabelecimento da conexão, o LDAPExecute a função é usada para executar uma ou mais modificações (adicionar, remover, substituir) que foram previamente especificadas com a 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

  • ldapTyp: O tipo de atributo LDAP
  • ldapValue: O valor a ser removido para o tipo de atributo especificado

Descrição

Para usar esta função, o LDAPConnect a função deve ser usada primeiro para estabelecer uma conexão com o diretório LDAP.

Uma vez estabelecida a 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á lançado. 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 renomeado
  • newRDN: O novo nome distinto relativo

Parâmetros Opcionais

  • newParent: O nome distinto do novo pai desta entrada; o padrão é vazio
  • deleteOldRDN: Se true, 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 ser usada primeiro para estabelecer uma conexão com o diretório LDAP.

Uma vez estabelecida a conexão, o LDAPRename 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 tipo de registro ou atributo LDAP
  • ldapValue: O novo valor a ser definido para o tipo

Descrição

Para usar esta função, o LDAPConnect a função deve ser usada primeiro para estabelecer uma conexão com o diretório LDAP.

Uma vez estabelecida a 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 para substituir o valor de um atributo existente por um novo valor em um Active Directory, o texto pode ser convertido para 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 pesquisa
  • filter: Um filtro de pesquisa de sequência 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 filtro
    • 1: Passe para retornar uma representação XML dos resultados da pesquisa. Isso pode ser definido como um elemento de dados usando o Set função e então acessada posteriormente usando Get e uma consultar XPath usando o SelectSingleNode 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 o Get 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 ser usada primeiro para estabelecer uma conexão com o diretório LDAP.

Uma vez estabelecida a conexão, o LDAPSearch a função é usada para pesquisar dentro do 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 somente à entrada base
1 Pesquisar todas as entradas no primeiro nível abaixo da entrada base, excluindo a entrada base (padrão)
2 Pesquisar 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 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 Limitar 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 Fazer LDAPSearch() retornar nulo se a pesquisa 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");