entendendo o openldap - gabriel stein
DESCRIPTION
TRANSCRIPT
Entendendo o OpenLDAPPor GABRIEL STEIN
Entendendo o OpenLDAP
CONCEITOS ABORDADOS
Conceito de diretório / Serviço de diretórioOrganização Hierárquica - Árvore
LDAPHistórico
CaracterísticasAtributos
ObjectClassesSchemasEntrada
DNsArquivos LDIF
Daemons e ConfiguraçõesIntegrações
Gabriel Stein - [email protected]
CONCEITO DE DIRETÓRIO
● Diretórios são utilizados como centralizadores de dados;
● Dados são: Nome, Email, Telefone, Endereço ...
Um usuário do diretório
um cliente do diretório
Servidor de diretório
REDE
DADOS: Nome, Email
Entendendo o OpenLDAPGabriel Stein - [email protected]
Entendendo o OpenLDAP
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 - [email protected]
Entendendo o OpenLDAPEntendendo o OpenLDAP
Organização Hierárquica: Árvore
dc=org
dc=tchelinux
ou=palestrantes ou=organizacao
cn:Gabriel Steinsn:Steindescription:Entendendo OpenLDAP
OrganizationalUnit
Person
Domain
dn:dc=tchelinux,dc=org
Gabriel Stein - [email protected]
Entendendo o OpenLDAP
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 - [email protected]
Entendendo o OpenLDAP
LEVE? EVOLUÇÃO DO DAP?
Física
Enlace
Rede
Transporte
Sessão
Apresentação
Aplicação
Física
Enlace
Transporte
Aplicação
DAP(X.500) - OSILDAP - TCP/IP
Gabriel Stein - [email protected]
Entendendo o OpenLDAP
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 - [email protected]
Entendendo o OpenLDAPEntendendo o OpenLDAP
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 - [email protected]
Entendendo o OpenLDAPEntendendo o OpenLDAP
Atributos
● São campos que agregam elementos de dados, como nome, telefone, email, endereço;
● Possuem regras para determinar o tipo de valor que será armazenado;
Tipo de Atributo Valor
cn: Gabriel Stein
sn: Stein
mail: [email protected]
Gabriel Stein - [email protected]
Entendendo o OpenLDAPEntendendo o OpenLDAP
Atributos(Exemplos)
Tipo de Atributo Valor
cn commonName
sn: surname
mail: email
telephoneNumber telefone
Address Endereço
dc domainComponent
ou organizationalUnit
Gabriel Stein - [email protected]
Entendendo o OpenLDAPEntendendo o OpenLDAP
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 OpenLDAPEntendendo o OpenLDAP
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 - [email protected]
Entendendo o OpenLDAPEntendendo o OpenLDAP
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 - [email protected]
Entendendo o OpenLDAPEntendendo o OpenLDAP
Entrada● É um conjunto de informações de UM objeto;
● É onde são referenciados atributos e objectclasses;
Ex:
cn: Gabriel Steinsn: SteintelephoneNumber: 55-5555555mail:[email protected]:inetorgperson
Gabriel Stein - [email protected]
Entendendo o OpenLDAPEntendendo o OpenLDAP
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 - [email protected]
Entendendo o OpenLDAPEntendendo o OpenLDAP
DN: Representação => Árvoredc=org
dc=tchelinux
ou=palestrantes ou=organizacao
cn:Gabriel Stein
sn:Stein
description:Entendendo OpenLDAP
OrganizationalUnit
Person
Domain
dn:cn=Gabriel Stein,ou=palestrantes,dc=tchelinux,dc=org
Gabriel Stein - [email protected]
Entendendo o OpenLDAPEntendendo o OpenLDAP
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=orgobjectclass:inetorgpersonuid: gabrielcn: Gabriel Steinsn: SteintelephoneNumber:55-123467
Gabriel Stein - [email protected]
Entendendo o OpenLDAPEntendendo o OpenLDAP
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 - [email protected]
Entendendo o OpenLDAPEntendendo o OpenLDAP
SLAPD.CONF
Diretivas principais
● Referencia a schemas
include /etc/ldap/schema/meuschema.schema
● Database
database bdb
● Sufixo
suffix “dc=tchelinux,dc=org”
Gabriel Stein - [email protected]
Entendendo o OpenLDAPEntendendo o OpenLDAP
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 - [email protected]
Entendendo o OpenLDAPEntendendo o OpenLDAP
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 - [email protected]
Entendendo o OpenLDAPEntendendo o OpenLDAP
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 - [email protected]