2006-09-29

Validação usando LDAP e Active Directory

O uso do package DBMS_LDAP.

Deve ser inicializada a sessão via

L_session:=DBMS_LDAP.init(hostname => l_hostname,portnum => l_port);


que no final deve ser desligada

DBMS_LDAP.unbind_s(l_session);




a parte mais obtusa para as pessoas não habituadas ao sistema de LDAP
é que o user deve ser identificado pelo "caminho" completo.
Por exemplo:

l_dn := 'uid=user01,ou=teste,ou=users,dc=fe,dc=up,dc=pt',

l_return_value :=DBMS_LDAP.simple_bind_s(ld => l_session,dn => l_dn,passwd => L_pass);

IF l_return_value = DBMS_LDAP.SUCCESS
THEN
--Sucesso !!! (User/password validados)
END IF;


A MS Active Directory é compatível com esta abordagem.
Já agora para saber a identificação completa de um user num Windows 2003 Server fazer

dsquery user -name

a resposta será do estilo
"CN=fsilva,OU=USINF,OU=CICA,OU=Pessoal,OU=Utilizadores,DC=FEUPsig,DC=fe,DC=up,DC =pt"

Dependendo do sistema aceitar ou não pedido anónimos talvez seja necessário a criaçaõ de um user somente para esse fim de modo a posteriormente poder-se inquirir a arvore de LDAP usando

DBMS_LDAP.search_s(...)

.....
Boa codificação para todos

No comments:

Post a Comment

Os comentários são moderados.
The comments are moderated.