Eu posso recomendar LDAP para cientistas de foguetes , uma introdução muito boa e completa ao protocolo
Para responder à sua pergunta:
-
distinguishedname: caminho completo do objeto na árvore. Portanto, se o servidor ldap tiver uma base de
dc=domain,dc=tld
e o objeto estiver no contêinerou=users
, o dn poderá sercn=object,ou=users,dc=domain,dc=tld
-
rdn está no exemplo
cn=object
, porque é relativo aou=users,dc=domain,dc=tld
.
Se o objeto estivesse em ou=otherusers,dc=domain,dc=tld
, então o rdn ainda seria cn=object
, mas então teria um dn diferente: cn=object,ou=otherusers,dc=domain,dc=tld
.
Então o rdn é relativo ao seu pai.
E o canonicalname cn é apenas um atributo. Às vezes, o cn e o rdn têm o mesmo valor. Outras vezes, o rdn é uid = user (em vez de cn = user), como a maioria dos servidores ldap do unix. Então o dn seria então uid=user,ou=users,dc=domain,dc=tld
. E esse objeto poderia ter também um atributo cn para torná-lo ainda mais confuso.
As diferenças precisam ser feitas em relação ao tipo de objeto que está sendo referenciado, porque cada tipo de objeto tem um conjunto diferente de classes de objeto que definem quais atributos ele pode (ou não) ter.
O livro está livre para ler, a propósito.