Você está na página 1de 4

Estudo LDAP

-O que é LDAP?
--LDAP (Lightweight Directory Access Protocol - Protocolo Leve de Acesso a
Diretórios) é um protocolo que define
acesso a serviços de diretórios.
É uma evolução do DAP.
É otimizado para pesquisa e recuperação de informações.

-Qual a História do LDAP?


--Foi proposta por uma universidade americana como uma alternativa ao DAP definido
pela X.500, especificando o acesso a serviço de
diretórios sobre uma rede TCP/IP.
--X.500 é uma compilação de padrões para serviço de diretórios. Um dos padrões é o
DAP, protocolo que define acesso a serviço de
diretórios sobre a pilha OSI.
--É importante salientar que o X.500 é comumente chamado de série X.500, uma vez
que são deifinidos vários proptocolos para serviços
de diretórios. Assim, quando se fala em X.500 ou serie x.500 está se falando do
x.500, x.501, x.509, x.511 e outros.
--O X.500 era muito inviável para ser implementado na prática, uma vez que foi
projetado para funcionar sobre a pilha OSI, tornando
sua adoção e implementação muito custosa. Por causa disso, várias alternativas ao
DAP do X.500 foram propostas, uma delas é o LDAP
--LDAP utiliza diretórios do tipo X.500. Dado que é um protocolo, ele apenas
especifica as mensagens trocadas entre um cliente e um
servidor de um serviço de diretórios.
--LDAP significa "Lightweight DAP", ou seja, DAP leve!
--Quando uma primeira implementação do LDAP foi disponibilizada, o sldap,
rapidamente ele se tornou popular, passando a ser um
padrão de fato para acesso a serviços de diretórios sobre uma rede TCP/IP.
--Embora o DAP tivesse evoluido com o tempo e passado a suporta TCP/IP, ele não
conseguiu desbancar a popularidade do LDAP.
--Dessa forma o LDAP pode ser definido como um protocolo da camada de aplicação que
espefica o acesso e armazenamento de serviço de
diretórios distribuidos sobre uma rede TCP/IP
---O LDAP por sua vez é padronizado e especificado em RFCs, sua última versão é a
versão 3 publicada na RFC 4511

Com o tempo várias implementações do protcolo LDAP foram propostas, entre as quais
podemos destacar:
-OpenLDAP: a mais famosa
-Apache Directory Server: desenvolvida pela propria Apache Fundation que fornece
também um cliente, o Apache Directory Studio
-OpenDJ: feito totalmente em java
-Active Directory: implmentação do LDAP para windows criada pela Microsoft
-Azure Active Directory:

-É importante salientar que, embora sigam o padrão LDAP e X.500, cada implementação
tem suas peculariedades. Ou seja, algumas
implementações podem vir com serviços adicionais, não definidos no protocolo.
-Algumas coisas a mais que vem no OpenLDAP são: criptografia para segurança no
armazenamento e transporte dos dados,
o que não é definido no protocolo original.
-O LDAP pode armazenar qualquer coisa, inclusive dados de contas de usuários,
certificados digitais, informações de ativos de
redes como impressoras.

-Por que utilizar LDAP?


--LDAP é utilizado para centralizar informações em uma rede, como por exemplo, os
dados dos funcionários de uma
empresa. Permitindo que qualquer serviço na rede acesse esses dados.
--Um uso bastante comum do LDAP é para fornecer o "logon único", no qual as
credências (username e password) de um usuário são
compartilhadas com vários serviços através da base LDAP.

-O que é um serviço de diretórios


--O objetivo de um serviço de diretórios é centralizar as informações dos usuários
em uma rede.
--um dos principais o uso é para autenticação. Todos os serviços em uma rede podem
utilizar o serviço de diretórios para
autenticar usuários.

-O que é um diretório?
--Quando se fala de serviço de diretórios de uma forma geral, o termo "diretório"
utilizado tem um seginificado diferente ao
de pastas de um sistema operacional
--um diretório pode ser visto como um banco de dados no qual as informações são
armazenadas de forma hierárquica.
--um diretório é uma espécie de banco de dados otimizado para busca e leitura.
--Assim, algumas definições para diretório no contexto de serviço de diretórios é
dada abaixo.
--estrutura de armazenamento organizada de forma hierárquica, que facilita o
armazenamento e busca de informações.
--banco de dados especializado que armazena informações sobre objetos e as relações
um com outro.
--base de dados especializada definida de forma hierárquica, otimizada para
leitura, suportando metodos de pesquisa sofisticada,
com o objetivo de proporcionar uma resposta rápida a um enorme volume de
consultas e onde são armazenadas informações estáticas
sobre objetos. Não existe restrições quanto aos objetos que podem ser guardados
em um diretório. OS objetos podem ser pessoas,
organizações, endereços de email, impressoras, computadores, etc..

-A unidade básica de informação armazenada em um diretório é chamda de "entrada"


-Uma entrada representa um objeto na DIT(Directory Information Tree)
-A DIT como um todo representa um diretório
-Assim uma entrada representa a descrição de um objeton de interesse no mundo
real(pessoa, computador, impressora, organizações, servidores, ...)
-Uma entrada é composta por uma coleção de atributos.
-Uma entrada é composta por um conjunto de atributos e seus valores referentes as
classes definidas para a entrada
-Toda entrada deve ter uma ou mais classes
-No LDAP as classes são chamadas de objectClass
-Há três tipos de classes: estrutural, auxiliar e abstrata
-Uma entrada deve ter especificado no mínimo uma classe estrtutural.
-Cada entrada pode ter quantas classes estrutural e auxiliar for necessário, desde
que não gere conflitos.
-Como uma entrada compreende um conjunto de atributos e seus valores obtidos a
partir das classes atribuidas as entradas. Então, como
espeficar quais classes uma entrada vai ter? Isso é feito através do atributo
especial "objectClass" que pode ser atribuido a uma
entrada especificando qual classe a entrada tem. Uma entrada pode ter vários
atributos "objectClass".
-Uma classe define o conteúdo e a proposta de uma entrada.
-Diferente da POO, um objeto(entrada) pode ter várias classes, como dito
anteriormente.

-Toda entrada tem um DN, que consiste no identificador único de uma entrada, ou
seja, que identifica unicamente uma entrada no diretório
-Sendo identificador de uma entrada, o DN é única para cada uma.
-Um DN é formado por uma sequência de RDNs que levam até a raiz.
-Um RDN nada mais é que um atributo de uma entrada escolhido para fazer parte do
DN.

-Schemas
-definem a estrutura dos dados a serem armazenados.
-Ou seja, uma schema especifica o que pode ser armazenado em um diretório
-Um schema define três coisas: classes, seus atributos e os valores possíveis.
-Cada servidor LDAP vem com um conjunto de esquemas pré-definidos. Alguns desses
são padrões, como o inetOrgPerson, enquanto outros
são específicos de cada servidor.
-Alguns exemplos de schemas definidos por entidades padronizadoras são:
--eduPerson, SCHAC, brEduPerson, inetOrgPerson, ...
-Esquema brEduPerson
--Esquema proposta pela RNP para atender as necessidades da realidade brasileira
para o LDAP
--Ele é baseado no eduPerson
---Isso quer dizer que as classes definidas no brEduPerson herdam de muitas classes
do eduPerson
--O nome do esquema "brEduPerson" também é nome da sua classe mais importante, a
qual representa a filiação de uma pessoa
com uma instituição.
--O esquema brEduPerson depende dos seguintes esquemas: inetOrgPerson, eduPerson e
SCHAC. Dessa forma o brEduPerson deve
ser utilizado em conjunto com esses esquemas.
--Esse esquema funciona da seguinte forma:
---Cada pessoa deve ter as seguintes classes: inetOrgPerson,
schacPersonalCharacteristics, eduPerson e brPerson
---Para cada vinculo que uma pessoa tem com uma instituição uma entrada da classe
brEduPerson deve ser criada.
---Uma mesma pessoa pode ter vários vinculos com uma instituição, como por exemplo,
ela pode ser aluno e funcionário.

-Qual a diferença de diretórios para serviço de diretórios?


--um serviço de diretórios é responsável por fornecer acesso a diretórios, ou seja,
permite aramzernar e recuperar dados na forma de diretórios.

-Serviço de Diretóriso vs Banco de Dados Relacional


--Em um serviço de diretórios as informações são armazenadas na forma de árvore
enquanto em um banco relaiconal elas são armazenadas
na forma de linhas e colunas.
--Um serviço de diretórios é otimizado para busca e recuperação de informações, as
informações armazenadas raramente são modificadas,
diferente de uma base de dados relacional, no qual as informações são atualizadas
a todo instante.
--Um banco de dados relacional é de proposito mais geral, podendo ser utilizado em
qualquer situação.
--Não existe isso de qual é o melhor, um não substitui o outro, ou seja, há
situações qu o LDAP é melhor e há situações que um Banco relaiconal é mehlor
--A pergunta é: Quando utilizar LDAP?
--UM serviço de diretórios: serviço de aramazenamento de informações otimizado para
busca e leitura.
-Partições
--Esse conceito de partição é apenas utilizado no ApacheDS
--uma partição representa uma subárvore da DIT.
--partições são subárvores independentes entre si.
--cada partição por si só é uma DIT
--entradas são armazenadas em partições
--Uma partição deve ser criada para todo novo conjunto de entradas, toda nova
estrutura de diretórios.
--O ApacheDS já vem com 4 partições pré-criadas: uma de exemplo e três expeciais
para armazenar configurações do próprio servidor.

--Há dois tipos de entradas(entry) no apacheDS


---A entry normal
---A entry para partições, chamada de context entry

--Para criar uma nova partição no ApacheDS é necessário fazer duas coisas
---1°: adicionar uma atributo chamado "namingContexts" na raiz (ROOT DSE). Isso é
feito criando uma nova partição normalmente.
---2°: criar uma Context Entry na ROOT DSE com a classe "domain".
--Em versões antigas do ApacheDS era necessário fazer esses dois passos
explicitamente. Nas versões mais atuais não
é mais necessário fazer isso. Apenas criar uma partição no ApacheDS ele já faz os
dois passos para vc.

Projeto de Servições de Diretórios


-uma grande questão da adoção do LDAP é o design da DIT, ou seja, o design da
estrutura de diretórios
--que entradas criar? que esquema seguir?
-Isso depende das necessidades da empresa
-Na prática, não há um padrão para fazer isso, pode-se seguir algumas dicas gerais.
-O primeiro passo a ser feito é definir que informações serão armazenadas no
diretório e pra e por quem elas serão utilizadas.

slapd
ldap-utils
phpldapadmin

-Um diretório é uma listagem de informações sobre objetos dispostos em alguma ordem
que fornece detalhes sobre cada objeto.

Você também pode gostar