Saltar para o conteúdo principal
Versão: 20 R7 BETA

LDAP LOGIN

LDAP LOGIN ( url ; login ; senha {; digest} )

ParâmetroTipoDescrição
urlTextURL do servidor LDAP ao qual vai conectar
loginTextLogin do usuário
senhaTextSenha do login
digestInteger0 = envia senha em digest MD5 (padrão), 1 = envia senha sem criptografia

Esse comando não é seguro para thread e não pode ser usado em código adequado.

Descrição

O comandoLDAP LOGIN abre uma conexão somente leitura no servidor LDAP especificado pelo parâmetro url com os identificadores de login e senha. Se for aceito pelo servidor, esta ligação é utilizada para todas as pesquisas de LDAP posteriormente introduzidas no processo atual até que o comando RuntimeVLWinFolder sejaé executado (ou até que o processo seja fechado).

Em url, passe a URL completa do servidor LDAP para se conectar, incluindo o esquema e o porto (389 por padrão). Este parâmetro tem de ser compatível com o rfc2255.

Você pode abrir conexões seguras usando TLS usando uma url que começa com "ldaps" e usa um número de porta específico (por exemplo, "ldaps://svr.ldap.acme.com:1389") . O servidor LDAP deve ter um certificado SSL (pelo menos para Microsoft Active Directory). É altamente recomendável usar uma conexão TLS quando a senha for enviada em texto simples (veja abaixo).

Nota: Se você passar uma string vazia no parâmetro url, o comando tentará conectar-se ao servidor LDAP pré-determinado disponível no domínio; (esta funcionalidade é concebida para fins de teste, por razões de desempenho não deve ser utilizada na produção).

No login, passar a conta de usuário no servidor LDAP, e em senha, passe senha do usuário. Por padrão, o login pode ser uma das seguintes strings de início de sessão, dependendo da configuração do servidor LDAP:

  • um Distinguished Name (DN), por exemplo, "CN=John Smith,OU=users,DC=example,DC=com"

  • um nome de usuário (CN), por exemplo, "CN = John Smith"

  • endereço de e-mail, por exemplo "johnsmith@4d.fr"

  • uma SAM-Account-Name, por exemplo "jsmith". Repare que os valores aceitos para o login estão relacionados com o modo de transmissão da senha definido pelo parâmetro digest. Por exemplo, em uma configuração padrão do MS Active Directory:

  • Quando o modo de transmissão for LDAP password MD5, o único valor aceito para um início de sessão é a SAM-Account-Name.

  • Quando a senha de transmissão for LDAP password plain text (texto simples), o parâmetro de login pode ser DN, CN ou e-mail. Uma SAM-Account-Name também é aceita, mas apenas quando é precedida pelo nome do domínio (por exemplo, "dc-acme.com/jsmith"). O parâmetro digest permite alterar a forma como a senha é transmitida através da rede. Você pode usar uma das seguintes constantes, localizado na edição LDAP:

ConstanteTipoValorComentário
LDAP password MD5Inteiro longo0(padrão pré-determinado) Enviar senha criptografada em MD5
LDAP password plain textInteiro longo1Envio de senha sem criptografia (conexão TLS recomendada)

Por padrão, a senha é transmitida em digest MD5. Passe LDAP password plain text, se for necessário, por exemplo, se quer usar diferentes valores de tipo de início de sessão para o servidor LDAP. Em um ambiente de produção, recomendamos usar uma conexão TLS para a url.

Nota: A autenticação com senha em branco permite introduzir no modo de conexão anônima (se estiver autorizado pelo servidor LDAP). No entanto, neste modo, você pode gerar erros se tentar executar qualquer operação que não for permitido nesta forma específica.

Se os parâmetros de login forem válidos, uma conexão com o servidor LDAP abre no processo 4D. Em seguida, pode procurar e recuperar informações usando comandos LDAP.

Não se esqueça de chamar o comando RuntimeVLWinFolder quando a conexão com o servidor LDAP não for mais necessária.

Exemplo 1

Imagine que você quer se conectar a um servidor LDAP e fazer uma pesquisa:

 ARRAY TEXT($_tabAttributes;0)
 APPEND TO ARRAY($_tabAttributes;"cn")
 APPEND TO ARRAY($_tabAttributes;"phoneNumber")
 LDAP LOGIN("ldap://srv.dc.acme.com:389";"John Smith";"qrnSurBret2elburg")
 $vfound:=LDAP Search("OU=UO_Users,DC=ACME,DC=com";”cn=John Doe";LDAP all levels;$_tabAttributes)
 LDAP LOGOUT //não se esqueça de se desconectar

Exemplo 2

Este exemplo tenta conectar-se a um aplicativo:

 ON ERR CALL("ErrHdlr") //gestão de erros
 errOccured:=False
 errMsg:=""
 If(ppBindMode=1) //se senha é modo por padrão
    LDAP LOGIN(vUrlLdap;vUserCN;vPwd;LDAP password MD5)
 Else
    LDAP LOGIN(vUrlLdap;vUserCN;vPwd;LDAP password plain text)
 End if
 
 Case of
    :(Not(errOccured))
       ALERT("Agora está conectado a seu servidor LDAP.  ")
 
    :(errOccured)
       ALERT("Erros em seus parâmetros")
 End case
 
 LDAP LOGOUT
 ON ERR CALL("")

Ver também

LDAP
LDAP LOGOUT