Escolar Documentos
Profissional Documentos
Cultura Documentos
Sumrio
Diretrios
Introduo ao LDAP
Modelos do LDAP
Formato LDIF
Distribuio
Replicao
Diretrios
Diretrios
Viso Geral
O que um diretrio faz?
O que um diretrio permite fazer?
Bancos de Dados x Diretrios
Por que usar diretrios?
Tipos de Diretrios
Viso Geral
Base de dados especializada para
consulta
Servio de diretrio - coleo de
software, hardware, processos,
polticas, e procedimentos
administrativos para disponibilizar a
informao do diretrio aos seus
usurios
O que um diretrio
permite fazer?
Organizar as informaes
hierarquicamente
Compartilhar dados entre aplicaes
Controlar o acesso aos dados
Distribuir a gerncia dos dados
Estender as informaes com
facilidade
Bancos de Dados x
Diretrios
Bancos de Dados so usados para
armazenar dado que so alterados
constantemente.
Exemplos
Registro de transaes bancrias,
controle de estoque de um
supermercado, armazenar os dados
contbeis de uma empresa, etc.
Bancos de Dados x
Diretrios
Diretrios so usados para armazenar
dados que so alterados com pouca
freqncia, mas que so consultados
constantemente.
Exemplos
Cadastro de alunos de uma universidade,
informaes sobre computadores e redes,
listas de contatos, etc.
Tipos de Diretrios
Projetados para uma aplicao especfica
- IBM/Lotus Notes, Microsoft Exchange
Introduo ao LDAP
Introduo ao LDAP
O que o LDAP?
Histrico - X.500
Histrico - LDAP
Exemplos de Servidores LDAP
O que o LDAP?
Lightweight Directory Access Protocol
um protocolo que define o mtodo
no qual um diretrio acessado
Especificado em 1993 (RFC-1487)
Histrico - X.500
Conjunto completo de padres
propostos pela ITU que definem os
aspectos globais do servio de
diretrios
Define o DAP (Directory Access
Protocol), que consiste em um
conjunto de regras para se acessar
um diretrio X.500
Histrico - X.500
DAP
Cliente
X.500
Servidor
X.500
Histrico - LDAP
Desenvolvido inicialmente com
um front-end do X.500, assim
como o DAP
Diferenas para o DAP:
LDAP usa TCP/IP, enquanto o DAP
baseado nos protocolos de rede OSI
Excludas as funcionalidades obscuras,
redundantes e raramente usadas
Histrico - LDAP
LDAP
Cliente
X.500
DAP
Tradutor de
protocolo LDAP
Servidor
X.500
Histrico - LDAP
LDAP
Cliente
LDAP
Servidor
LDAP
Servidores LDAP
Modelos do LDAP
Modelos do LDAP
Modelo de Nomes
DIT
DN e RDN
Modelo de Informao
Objetos
Classes de objetos
Atributos
Schemas
Modelo Funcional
Leitura e Pesquisa
Alterao
Autenticao
Modelo de Segurana
Modelos do LDAP
O LDAP especifica os seguintes
modelos
Modelo de Nomes
Modelo de Informao
Modelo Funcional
Modelo de Segurana
Modelo de Nomes
Como a informao pode ser organizada e
referenciada
Objetivos
Organizar e referenciar as informaes no
diretrio
Facilitar a manuteno dos dados
Flexibilizar a poltica de controle de acesso
Permitir a partio e a replicao
Permitir uma navegao mais simples
Modelo de Nomes
Entradas so dispostas
hierarquicamente
Hierarquia representada por uma
Directory Information Tree - DIT
Cada entrada identificada
unicamente por um distinguished
name - DN
ou=coordenadores
cn=Maria Helena
DN e RDN
DN (Distinguished Name) identifica unicamente
uma entrada no DIT
Contm a informao do nvel em que a entrada
est na rvore
Exemplo
cn=Paulo Lara,ou=programadores, dc=empresa
Modelo de Informao
Tipo de dados e unidades bsicas de
informao que podem ser
armazenados
Baseia-se em entradas, que so
compostas por atributos
Entrada- coleo de informaes
sobre um objeto
Classes de Objetos
Definem os atributos opcionais e
obrigatrios das entradas
Podem ser abstratas, estruturais ou
auxiliares
Possuem um nome nico
So definidas em um Schema
Podem estar presentes em mais de uma
entrada
Podem herdar propriedades de outras
classes de objetos
Classes de Objetos
Sintaxe
objectclass ( <OID da classe de objeto>
[ "NAME" <nome da classe de objetos> ]
[ "DESC" <descrio da classe de objeto> ]
[ "OBSOLETE" ]
[ "SUP" <OID da classe de objeto ancestral> ]
[ ( "ABSTRACT" / "STRUCTURAL" / "AUXILIARY" ) ]
[ "MUST" <OID dos atributos obrigatrios> ]
[ "MAY" <OID dos atributos no obrigatrios> ]
)
Classes de Objetos
Exemplo
objectclass ( 1.3.6.1.4.1.15996.1.2.1
NAME objPessoa
SUP top STRUCTURAL
DESC Dados de pessoas
MUST ( pessoaID $ nome $
sobrenome $ cpf)
MAY ( endereco $ telefone $
nascimento $ naturalidade )
)
Atributos
Possuem nomes, s vezes abreviaes ou
apelidos
Definem o tipo de dados que podem
conter
Podem possuir um ou mais valores
Podem estar presentes em uma ou mais
classes de objetos
Alguns atributos funcionam como RDN,
por exemplo cn, ou, dc, o
Atributos
Sintaxe
attributetype ( <OID do atributo>
[ "NAME" <nome do atrituto> ]
[ "DESC" <descrio do atributo> ]
[ "OBSOLETE" ]
[ "SUP" <OID do atributo ancestral> ]
[ "EQUALITY" <regra de comparao>
[ "ORDERING" <regra de comparao>
[ "SUBSTR" <regra de comparao> ]
[ "SYNTAX" <OID da SYNTAX> ]
[ "SINGLE-VALUE" ]
[ "COLLECTIVE" ]
[ "NO-USER-MODIFICATION" whsp ]
[ "USAGE" whsp AttributeUsage ] ")"
Regras de Comparao
Define os mtodos de comparao
de atributos
So definidas nas propriedades
IGUALITY, SUBSTR e ORDERING
Utilizadas para indexao
Atributos
Exemplo
attributetype ( 1.3.6.1.4.1.15996.1.1.1
NAME nome
DESC Nome da pessoa
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
SINGLE-VALUE )
RNP/GT-Dir work
video related work
attributes
objectclass
Schemas
Arquivos com definies das classes
de objetos, atributos usados e regras
de comparao
Servidor LDAP deve conhecer os
Schemas usados pelas entradas
Modelo Funcional
Determina o que pode ser feito com a
informao, como pode ser acessada
e alterada
Categorias
Pesquisa
Alterao
Autenticao
Pesquisa
Leitura (read) - retorna os atributos
de um DN
Listagem (list) - retorna os DNs dos
descendentes do DN informado
Pesquisa (search) - seleciona
entradas de acordo com um filtro de
consulta
Filtros de Consulta
Operadores:
&e
| ou
! no
~= aproximadamente igual
>= maior ou igual
<= menor ou igual
* qualquer
Filtros de Consulta
Exemplos
(cn=Paulo C*)
Retorna entradas que possuem o
atributo cn com valor iniciado com
Paulo C
(&(uid=paulo)(sn=lara))
Retorna entradas com o atributo uid
com valor igual a paulo e o atributo sn
com valor igual a lara
Filtros de Consulta
(|(ou=mg)(ou=sp))
Seleciona entradas que possuem o
atributo ou com valor igual a mg ou
sp
(&(objectclass=inetOrgPerson)(cn=A*))
Retorna entradas que possuem o
objectclass inetOrgPerson e o atributo
cn com valor iniciado com A*
Pesquisa
Comparao (compare) - recebe um
DN, um nome de atributo e uma
suposio de valor
Indica se o valor corresponde ao
valor contido no atributo ou no
Usado para validao de senhas,
dentre outras aplicaes
Alterao
Alterao (modify) - modifica entradas
existentes. Permite adicionar, excluir e
alterar o valor de atributos
Adicionar (add) - insere entradas no
diretrio
Apagar (delete) - remove entradas do
diretrio
Alterao RDN (modify RDN) - muda o
nome das entradas
Autenticao
bind - promove a autenticao do
usurio e inicia uma sesso
unbind - encerra a sesso
Modelo de Segurana
Como a informao pode ser
protegida de acessos no
autorizados
Autenticao
Controle de Acesso e Autorizao
Integridade de Dados
Privacidade de dados
Formato LDIF
Formato LDIF
Forma de representao criada para
promover o intercambio de
informaes para o LDAP
Dois tipos:
Descrio de conjunto de entradas
Descrio de sentenas de atualizao
Formato LDIF
Exemplo: descrio de conjunto de entradas:
# empresa,com
dn: dc=empresa,dc=com
dc: example
objectClass: dcObject
objectClass: organization
o: Empresa LTDA.
# programadores,empresa,com
dn: ou=programadores,dc=empresa,dc=com
ou: programadores
description: Programadores da empresa
objectclass: organizationalunit
Formato LDIF
Exemplo: descrio de sentena de atualizao:
# apagando mltiplos atributos
dn: cn=Paulo
Lara,ou=programadores,dc=empresa,dc=com
changetype: modify
# apaga todos os nmeros de telefone
delete: telephonenumber
# acrescentando novos atributos para uma nova
entrada
dn: cn=Maria Helena,ou=analistas,dc=empresa,dc=com
changetype: add
objectclass: inetorgperson
cn: Maria Helena
cn: Maria Helena Silva
telephonenumber: 88487755
URLs do LDAP
URLs do LDAP
Utilizadas para
Identificao: registros ou consultas a
atributos de um servio
Localizao: pode incluir a localizao
do servio sendo registrado, como
endereo IP ou nome do servidor
URLs do LDAP
Forma geral
<ldapurl> ::= "ldap://" [ <hostport> ] "/" <dn>
[ "?" <attributes>
[ "?" <scope> "?" <filter> ] ]
<hostport> ::= <hostname> [ ":" <portnumber> ]
<attributes> ::= NULL | <attributelist>
<attributelist> ::= <attributetype> |
<attributetype> [ "," <attributelist> ]
<scope> ::= "base" | "one" | "sub"
URLs do LDAP
dn - Distinguished Name
attribute list - Lista de atributos
retornados
scope
base: Pesquisa na base do diretrio
one: Pesquisa no nvel de diretrio
expecificado
sub: Pesquisa nas sub-rvores do diretrio
URLs do LDAP
Exemplos
ldap://grude.com/dc=ufmg,dc=br?cn?sub?sn=
silva
Retorna o atributo cn de todas as entradas da
sub-rvore cujo atributo sn silva
ldap://ldap.ufrj.com/ou=people,dc=br,
dc=com??one?(&(cn=M*)(mail=*))
Retorna todos os atributos das entradas
imediatamente descendentes da entrada
people cujo atributo cn inicia-se com M e que
possua o atributo mail
Distribuio
Distribuio
Referrals
Chaining
Distribuio
LDAP permite distribuio da
informao entre vrios servidores
Objetivos
Melhorar o desempenho
Aumentar a disponibilidade
Permitir um bom gerenciamento
Esquema Bsico
partio 1
partio 2
Exemplo
dc=br
dc=ufmg
ou=alunos
cn=paulo
dc=ufpr
ou=professores
cn=carlos
Servidor UFMG
ou=alunos
cn=luiz
Servidor UFPR
Unio de paties
Referrals
O servidor requisitado indica em qual servidor
procurar as informaes requisitadas
Bibliotecas do cliente podem implementar o
acesso aos diferentes servidores
automaticamente
Chaining
Servidor entra em contato com outros
servidores antes de retornar a resposta para o
cliente
Referrals
Cliente
4
3
2
dc=br
dc=ufmg
ou=alunos
cn=paulo
dc=ufpr
ref:ldap://serivdor/
dc=br,dc=ufpr
ou=professores
cn=carlos
Servidor UFMG
dc=ufpr
ou=alunos
cn=luiz
Servidor UFPR
Referrals
Referncia feita pelo atributo ref no
servidor UFMG e pela configurao do
servidor UFRJ
O atributo ref contm a URL do servidor
que possui a sub-rvore do diretrio que
se deseja referenciar
O atributo ref definido na classe de
objeto referral
Chaining
Cliente
1
4
dc=br
dc=ufmg
ou=alunos
cn=paulo
ou=professores
cn=carlos
Servidor UFMG
dc=ufpr
ou=alunos
cn=luiz
Servidor UFPR
Replicao
Replicao
Cpia do contedo do diretrio (total ou
parcial)
No existe um modelo padro
Melhora o desempenho e a confiabilidade
Aproxima o dado dos usurios
Distribui melhor a carga dos servidores
Garante redundncia do servio
Replicao
dc=br
dc=br
dc=ufrj
dc=ufpr
dc=ufmg
dc=ufmg
Replicao
Mestre
Replica
Recaptulao
9 Histrico do LDAP
9 Utilidade de diretrios
9 Organizao da informao no LDAP
9 Operaes em LDAPs
9 Definio de classes de objetos e atributos
9 Formato LDIF
9 Distribuio
9 Replicao
Referncias
LDAP
RFC1558: A String Representation of LDAP Search Filters
RFC2251: Lightweight Directory Access Protocol (v3)
RFC2252:
Lightweight Directory Access Protocol (v3): Attribute Syntax
RFC
Definitions
RFC2254: The String Representation of LDAP Search Filters
RFC2255: The LDAP URL Format
RFC3296: Named Subordinate References in Lightweight Directory
Access Protocol (LDAP) Directories
http://www.zytrax.com/books/ldap/ch2/index.html
http://www.developer.com/java/data/article.php/10932_2197131_3
http://www.lc.leidenuniv.nl/awcourse/oracle/network.920/a96577/
concepts.htm#726741
http://www.wdvl.com/Authoring/Languages/PHP/Pro/prophp1_5.ht
ml
http://msdn.microsoft.com/library/default.asp?url=/library/enus/adsi/adsi/search_filter_syntax.asp
Referncias
X.500 e Diretrios
http://www.isi.salford.ac.uk/staff/dwc/Version.Web/Contents.htm
http://planeta.terra.com.br/informatica/silvello/openldap/capitulo1.html
http://penta2.ufrgs.br/aplicosi/x500/x5001.html
http://www.pr.gov.br/batebyte/edicoes/1995/bb45/x500.htm