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.