O documento discute os principais conceitos do OpenLDAP, incluindo: 1) Diretórios armazenam dados de usuários de forma centralizada e hierárquica; 2) LDAP fornece um protocolo leve para acessar esses diretórios; 3) O OpenLDAP é um software livre e leve para implementar serviços de diretório LDAP.
2. CONCEITOS ABORDADOS
Conceito de diretório / Serviço de diretório
Organização Hierárquica - Árvore
LDAP
Histórico
Características
Atributos
ObjectClasses
Schemas
Entrada
DNs
Arquivos LDIF
Daemons e Configurações
Integrações
Gabriel Stein - gabriel@gabrielstein.org Entendendo o OpenLDAP
3. CONCEITO DE DIRETÓRIO
● Diretórios são utilizados como centralizadores de dados;
● Dados são: Nome, Email, Telefone, Endereço ...
RE
DE
um cliente do
diretório
DADOS: Nome, Email
Um usuário do diretório
Servidor de diretório
Gabriel Stein - gabriel@gabrielstein.org Entendendo o OpenLDAP
4. SERVIÇO DE DIRETÓRIO
● Banco de Dados (NÃO RELACIONAL) para rápida leitura;
● Informações descritivas;
● Organização Hierárquica(árvore);
● Otimização para atender um grande número de
requisições;
● Exemplos: DNS, OpenLDAP e Novell eDirectory
Gabriel Stein - gabriel@gabrielstein.org Entendendo o OpenLDAP
5. Organização Hierárquica: Árvore
dn:dc=tchelinux,dc=org dc=org
Domain
OrganizationalUnit
dc=tchelinux
ou=palestrantes ou=organizacao
cn:Gabriel Stein Person
sn:Stein
description:Entendendo OpenLDAP
Gabriel Stein - gabriel@gabrielstein.org Entendendo o OpenLDAP
6. LDAP
● Interface de Acesso para o X.500
●Lightweight Directory Acess Protocol(LDAP) – Protocolo
Leve para acessar serviços de diretório;
● LDAP = Evolução do DAP = Directory Access Protocol;
●Conjunto de 4 modelos que servem de guia no uso do
diretório(Informação,Nomes,Funcional,Segurança)
Gabriel Stein - gabriel@gabrielstein.org Entendendo o OpenLDAP
7. LEVE? EVOLUÇÃO DO DAP?
DAP(X.500) - OSI
Aplicação
LDAP - TCP/IP
Apresentação Aplicação
Sessão
Transporte
Transporte
Enlace
Rede
Enlace Física
Física
Gabriel Stein - gabriel@gabrielstein.org Entendendo o OpenLDAP
8. OPENLDAP - Histórico
●Comecou a ser desenvolvido pela Universidade de
Michigan, mas foi descontinuado em 1996 (U-Mich LDAP
v.3.3);
● AGOSTO 1998:A empresa Net Boolean, que hospedava
serviços de e-mails para companhias utilizando software-
livre (Apache, FreeBSD,U-Mich LDAP, etc.) fundou o
projeto OpenLDAP, com o objetivo: “to provide open source
LDAP software and information”
● No mesmo mês, foi lançado o OpenLDAP 1.0;
Gabriel Stein - gabriel@gabrielstein.org Entendendo o OpenLDAP
9. Características
● Funcionamento sobre IPV4 e IPV6(LDAPv3)
● Leve e robusto;
● Suporte a vários backends(BDB,SQL,PASSWD);
● Suporte a múltiplas instâncias de dados;
● “Backup” feito através de réplicas;
● Suporte a SASL(Autenticação) e a TLS/SSL;
Gabriel Stein - gabriel@gabrielstein.org Entendendo o OpenLDAP
10. Atributos
●São campos que agregam elementos de dados, como
nome, telefone, email, endereço;
Tipo de Atributo Valor
cn: Gabriel Stein
sn: Stein
mail: gabriel@gabrielstein.org
●Possuem regras para determinar o tipo de valor que será
armazenado;
Gabriel Stein - gabriel@gabrielstein.org Entendendo o OpenLDAP
11. Atributos(Exemplos)
Tipo de Atributo Valor
cn commonName
sn: surname
mail: email
telephoneNumber telefone
Address Endereço
dc domainComponent
ou organizationalUnit
Gabriel Stein - gabriel@gabrielstein.org Entendendo o OpenLDAP
12. ObjectClasses
● ObjectClasses são compostas por um conjunto de atributos;
●A inclusão de uma ObjectClass em uma entrada determina quais
os atributos deverão ser utilizados e quais poderão ser
utilizados(MUST e MAY);
Ex: A objectclass person exige os atributos cn e sn, mas pode ser
utilizado o atributo telephoneNumber
● Possuem derivações, uma ObjectClass pode herdar atributos
requeridos de outra;
Ex: A objectclass inetorgperson tem como raiz a objectclass person,
por isso os atributos cn e sn são obrigatórios
Entendendo o OpenLDAP
13. Schemas
● Conjunto de “regras” integradas ao diretório;
●Regras que determinam qual o tipo de dados e como
esses dados serão armazenados na base;
●Essas “regras” são compostas de Atributos e
ObjectClasses;
●Cada aplicação integrada ao OpenLDAP pode ter o
próprio schema(Ex: SAMBA - samba.schema);
Gabriel Stein - gabriel@gabrielstein.org Entendendo o OpenLDAP
14. Schemas(Exemplo)
Atributo:
attributetype ( 2.5.4.9 NAME ( 'street' 'streetAddress' )
DESC 'RFC2256: street address of this object'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} )
ObjectClass:
objectclass ( 2.5.6.6 NAME 'person'
DESC 'RFC2256: a person'
SUP top STRUCTURAL
MUST ( sn $ cn )
MAY ( userPassword $ telephoneNumber $ seeAlso $
description ) )
Gabriel Stein - gabriel@gabrielstein.org Entendendo o OpenLDAP
15. Entrada
● É um conjunto de informações de UM objeto;
● É onde são referenciados atributos e objectclasses;
Ex:
cn: Gabriel Stein
sn: Stein
telephoneNumber: 55-5555555
mail:gabriel@gabrielstein.org
objectclass:inetorgperson
Gabriel Stein - gabriel@gabrielstein.org Entendendo o OpenLDAP
16. DN – Distinguished Name
●São nomes distintos que identificam cada entrada na
base;
●A utilização de dn é importante para referenciar itens da
base, adicionando, alterando ou removendo itens da base,
como atributos e até mesmo entradas;
●São utilizados nos arquivos LDIF e na autenticação de
usuários;
Ex:
dn:cn=Gabriel Stein,ou=palestrantes,dc=tchelinux,dc=org
Gabriel Stein - gabriel@gabrielstein.org Entendendo o OpenLDAP
17. DN: Representação => Árvore
dc=org
Domain
OrganizationalUnit dc=tchelinux
ou=palestrantes ou=organizacao
cn:Gabriel Stein
Person
sn:Stein
description:Entendendo OpenLDAP
dn:cn=Gabriel Stein,ou=palestrantes,dc=tchelinux,dc=org
Gabriel Stein - gabriel@gabrielstein.org Entendendo o OpenLDAP
18. Arquivos LDIF
● Arquivos texto utilizados para adicionar, alterar e remover
informações de uma base;
● Devem conter sempre DNs referenciando entradas e
informações;
Ex:
dn:uid=gabriel,ou=palestrantes,dc=tchelinux,dc=org
objectclass:inetorgperson
uid: gabriel
cn: Gabriel Stein
sn: Stein
telephoneNumber:55-123467
Gabriel Stein - gabriel@gabrielstein.org Entendendo o OpenLDAP
19. Daemons e confs
Daemons
● Daemon OpenLDAP: slapd
● Daemon para réplica OpenLDAP: slurpd
Confs
● Configuração servidor OpenLDAP: slapd.conf
● Configuração cliente OpenLDAP: ldap.conf
Gabriel Stein - gabriel@gabrielstein.org Entendendo o OpenLDAP
20. SLAPD.CONF
Diretivas principais
● Referencia a schemas
include /etc/ldap/schema/meuschema.schema
● Database
database bdb
● Sufixo
suffix “dc=tchelinux,dc=org”
Gabriel Stein - gabriel@gabrielstein.org Entendendo o OpenLDAP
21. SLAPD.CONF - 2
● DN para autenticação do administrador da base
rootdn “cn=manager,dc=tchelinux,dc=org”
● Senha para autenticação do administrador da base
rootpw {SSHA}I8QMpde4dJue4pP21+OToT+9WJ9ADtfl
● Diretório da base
directory /var/lib/ldap
Gabriel Stein - gabriel@gabrielstein.org Entendendo o OpenLDAP
22. SLAPD.CONF - 3
● Indexes para tornar a consulta mais rápida
index objectclass eq
● ACLs para controle de acesso da base
access to attrs=userPassword
by dn.base=”cn=manager,dc=tchelinux,dc=org” write
by self write
by * none
Gabriel Stein - gabriel@gabrielstein.org Entendendo o OpenLDAP
23. LDAP.CONF
● Possibilita o acesso a base LDAP através de clientes;
● Referência ao servidor OpenLDAP
HOST 10.0.0.1
● Referência a base LDAP
BASE dc=tchelinux,dc=org
Gabriel Stein - gabriel@gabrielstein.org Entendendo o OpenLDAP