Você está na página 1de 4

Ttulo:

Relatrio sobre incluso de LDAP nos sistemas da Sincro na plataforma Windows.


Autor:
Colaborador Felipe Massa
Departamento de desenvolvimento
Introduo
Os sistemas de gerenciamento eletrnico de documentos da Sincro na plataforma Windows
possuem um sistema de verificao de usurios exclusivo cada sistema que verifica o password e o
grau de permisso do usurio entre outras propriedades. Este tipo de verificao pode-se tornar
ineficiente para uma empresa onde os usurios usarem vrios sistemas de gerenciamento de
documentos. Uma soluo para este problema o uso de um sistema de verificao de usurios e
aceso informao a travs da rede numa locao nica. Um exemplo deste tipo de sistema
usando o AD (Active Directory) que uma implementao de servio de diretrio que armazena
informaes sobre objetos em rede de computadores e disponibiliza essas informaes a usurios e
administradores desta rede. A comunicao a este servicio a travs do protocolo LDAP ou
Lightweight Directory Access Protocol pelas siglas em ingls.
LDAP um protocolo de aplicao aberto, livre de fornecedor e padro de indstria para acessar e
manter servios de informao de diretrio distribudo sobre uma rede de Protocolo da Internet (IP).
LDAP permite o compartilhamento de informaes sobre usurios, sistemas, redes, servios e
aplicaes atravs da rede. Os servios de diretrio podem fornecer qualquer conjunto de registros
organizado, geralmente com uma estrutura hierrquica. As informaes de cada usurio esto
resumidas em campos conhecidos como atributos.
Caratersticas do protocolo LDAP
Um cliente comea uma sesso de LDAP ligando-se a um servidor LDAP, normalmente pela porta
padro: 389, TCP. Este envia requisies para o servidor, o qual devolve respostas. As operaes
bsicas so:
Bind autentica e especifica a verso do protocolo LDAP;
Search procura por e/ou recupera entradas dos diretrios;
Compare testa se uma entrada tem determinado valor como atributo;
ADD adiciona uma nova entrada;
Delete apaga uma entrada;
Modify modifica uma entrada;
Modify DN move ou renomeia uma entrada;
StartTLS protege a conexo com a Transport Layer Security (TLS);
Abandon aborta uma requisio prvia;
Extended Operation operao genrica para definir outras operaes;
Unbind fecha a conexo, no o inverso de Bind.
Em contrapartida o servidor pode mandar Unsolicited Notifications (Notificaes no solicitadas)
que so respostas a nenhuma requisio, ex. antes deste terminar uma conexo. Com algumas
excees o cliente no precisa esperar uma resposta antes de enviar a prxima requisio, e o
servidor pode enviar a resposta em qualquer ordem.

Estrutura de diretrio
O protocolo fornece uma interface com diretrios que segue a edio de 1993 do modelo X.500:
Uma entrada consiste de um conjunto de atributos
Um atributo possui um nome (um tipo de atributo ou descrio de atributo) e um ou mais valores.
Os atributos so definidos em um esquema (ver abaixo).
Cada entrada possui um identificador nico: seu Distinguished Name (DN), em portugus Nome
Distinto. Ele consiste de seu Relative Distinguished Name (RDN), em portugus Nome Distinto de
Parente, construdo de algum(ns) atributo(s) na entrada, seguido pelo DN da entrada pai. O DN
pode ser visto como o caminho completo de um arquivo e o RDN como seu nome de arquivo
relativo em sua pasta pai (por exemplo, se /foo/bar/meuarquivo.txt fosse o DN, ento
meuarquivo.txt seria o RDN).
Um DN pode ser alterado durante o tempo de vida da entrada, por exemplo, quando entradas so
movidas dentro de uma rvore. Para identificar entradas com segurana e sem ambiguidade, um
UUID pode ser fornecido no conjunto de atributos operacionais da entrada.
Uma entrada pode parecer com isto quando representada no LDAP Data Interchange Format (LDIF)
(o LDAP propriamente dito um [[protocolo binrio]):
dn: cn=John Doe,dc=exemplo,dc=com
cn: John Doe
givenName: John
sn: Doe
telephoneNumber: +1 888 555 6789
telephoneNumber: +1 888 555 1232
mail: john@example.com
manager: cn=Barbara Doe,dc=exemplo,dc=com
objectClass: inetOrgPerson
objectClass: organizationalPerson
objectClass: person
objectClass: top

Caratersticas do protocolo LDAP em Windows


Existem vrias plataformas de desenvolvimento de clientes de LDAP em Windows. No entanto,
existe um SDK da Microsoft que o melhor candidato para incluir um cliente LDAP nos sistemas
Sincro.
Aplicatividade:
A API LDAP de Microsoft aplicvel a aplicativos de gerenciamento de diretrio e do browser que
no tm suporte do servio de diretrio como sua funo primria. Por outro lado, LDAP no nem
aplicveis criao de diretrios, nem especifica como um servio de diretrio opera.
Desenvolvimento:
A documentao da API LDAP no Software Development Kit (SDK) destinado para C e C ++
Requisitos de RunTime:
Os aplicativos cliente que usam a API LDAP podero ser executados nos sistemas operativos desde
Windows Vista em adiante. assumido que as plataformas deveram ter TCP / IP instalado.
Bibliotecas e headers adicionais:
Para o desenvolvimento de servios de comunicao usando o protocolo LDAP usando o SDK da
microsoft, dever ser includo os header principal:

#include "winldap.h"

e as bibliotecas:
Wldap32.lib
Wldap32.dll

Funes principais para estabelecer uma conexo com um servidor AD pelo protocolo LDAP
includas no SDK de visual studio:
Funo ldap_init inicia uma sesso num servidor LDAP.
LDAP* ldap_init(
PCHAR HostName,
ULONG PortNumber
);

Funo ldap_connect estabelece uma conexo com o servidor.


ULONG ldap_connect(
LDAP* ld,
LDAP_TIMEVAL* timeout
);

-Funo ldap_bind autentifica asSincromente o cliente no servidor LDAP. A operao bind


identifica um cliente no servidor de diretorio fornecendo um nome distinto e algum tipo de
autenticao de credencial, como uma senha.
ULONG ldap_bind(
LDAP* ld,
PCHAR dn,
PCHAR cred,
ULONG method
);

Funo ldap_unbind libera os recursos associados da sesso LDAP.


ULONG ldap_unbind(
LDAP* ld
);

-Funo ldap_add adiciona de maneira assncrona uma nova entrada na rvore de diretrios. Para
uma operao de adio para ter sucesso, o pai da entrada adicionada deve existir, ou o pai deve
estar vazio (igual ao nome distinto do root).
ULONG ldap_add(
LDAP* ld,
PCHAR dn,
LDAPMod* attrs[]

-Funo ldap_delete deleta uma entrada da rvore de diretrio.


ULONG ldap_delete(
LDAP* ld,
PCHAR dn
);

Funo ldap_modify modifica uma entrada existente na rvore do diretrio.


ULONG ldap_modify(
LDAP* ld,
PCHAR dn,

LDAPMod* mods[]

);

-Funo ldap_compare determina se um atributo para uma determinada entrada tem um valor
especfico.
ULONG ldap_compare(
LDAP* ld,
PCHAR dn,
PCHAR attr,
PCHAR value
);

-Funo ldap_search_s procura asSincromente no diretrio LDAP e retorna os valore de um


conjunto de atributos dados como input.
ULONG ldap_search_s(
LDAP* ld,
PCHAR base,
ULONG scope,
PCHAR filter,
PCHAR attrs[],
ULONG attrsonly,
LDAPMessage** res
);

-Funo ldap_get_values retorna la lista de valores de um atributo determinado


PCHAR* ldap_get_values(
LDAP* ld,
LDAPMessage* entry,
PCHAR attr
);
Concluses

De acordo com o problema plantado e depois de estudar as caratersticas do protocolo LDAP, podese concluir que os sistemas da Sincro desenvolvidos na plataforma Win32 podero incluir servios
de conexo com um diretrio DA usando o mencionado protocolo. A pesquisa mostra que o SDK do
Visual Studio inclui funes que permitem a conexo com um diretrio, verificao de usurios, a
incluso e/ou modificao de novos dados ou atributos, entre outras caratersticas. A comunicao
entre o cliente que ser includo nos sistemas y o diretrio DA poder ser sncrona ou assincrnica
que se adapta ao carcter multi-thread dos sistemas desenvolvidos pela Sincro.

Você também pode gostar