LDAP Integrantes: Carlos Fernando Papotti José Ricardo M. Bevilacqua Júlio César Marcondes Raul Baldin RA: 02131282 RA: 02534626 RA: 02121069 RA: 02088243 LDAP - Tópicos Introdução Definições Funcionamento Segurança Otimizações do LDAP Exemplos Conclusão 2 Introdução O que é um diretório? O que é o LDAP? História do LDAP Origem do LDAP Protocolo X.500 Cliente do X.500 DAP Pilha de protocolos Versões Por que usar o LDAP? Diretório LDAP 3 O que é um Diretório? O que é um diretório? Característica de um diretório: É um banco de dados especializado com informações descritivas baseadas em atributos e organizadas em forma de árvore. Resposta rápida a grande quantidade de consultas. Tipos de diretórios: De aplicações: diretório do MS Exchange, etc. De sistemas operacionais de rede: NIS (Sun), AD (Microsoft) De propósito específico: DNS De propósito geral: LDAP 4 O que é o LDAP? Lightweight Directory Access Protocol Protocolo Leve de Acesso a Diretórios. Trabalha na camada de aplicação da pilha de protocolos TCP/IP, como por exemplo o SMTP, HTTP, FTP, TELNET e tantos outros. RFCs 2251 – 2830 e 3377 Cliente-Servidor. Orientado a mensagens. 5 História do LDAP 1988 X.500 A CCITT (atual ITU) cria a versão Standard X.500 , ISO 9594 Data Communications Network Directory DAS: Directory Assistance Service (RFC 1202) DIXIE: Protocol Specification (RFC1249) LDAP: X.500 Lightweight Access Protocol (RFC 1487) LDAP (RFC 1777) 1998 LDAP v2 LDAP v3 (RFC 3377) 6 Origem do LDAP – Diretórios X.500 Características Principais do X.500 Conexão de Serviços de Diretórios locais a fim de formar um diretório global distribuído. Parte do diretório fica global e sua informação é disponibilizada através de um Agente do Sistema de Diretórios Trabalha com funções de gerenciamento, isto é, adição, modificação e deleção de entradas. 7 Origem do LDAP – Cliente do X.500 O LDAP foi desenvolvido para ser um cliente para o X.500, o serviço de Diretório OSI. O X.500 define o Protocolo de Acesso a Diretório (DAP) para os clientes usarem quando estiverem em contato com servidores de Diretório. www.ldap.org 8 Origem do LDAP - DAP O DAP era um protocolo difícil de trabalhar e implementar, e protocolos mais fáceis foram desenvolvidos com a maior parte de sua funcionalidade, mas com muito menos complexidade. www.ldap.org.br 9 Origem do LDAP – Pilha de Protocolos O LDAP roda diretamente sobre o TCP e fornece a maioria das funcionalidades do DAP, a um custo muito menor. www.ldap.org.br 10 Origem do LDAP – Versões Versões LDAP 1993 primeira versão 1996 LDAP v2 Autenticação forte com Kerberos v4. 1997 LDAP v3 (atual) Esta última foi desenvolvida para solucionar uma série de limitações existentes na anterior, incluindo aspectos de segurança, passando a suportar protocolos de autenticação forte como o Simple Authentication Security Layer (SASL) e o Transport Layer Security (TLS) 11 Por que usar o LDAP? Integração entre sistemas Operacionais Integração entre Serviços Interligação ( Windows , Linux, Unix , MacOS) Serviços de e-mail, FTP , Web etc. Desempenho nas consultas: Desenvolvido com ênfase na leitura, ou seja, os dados serão lidos rapidamente por um número maior de consultas simultâneas. Difundido no mercado Não requer hardware pesado para operações 12 Por que usar o LDAP? www.ldap.org.br 13 Diretório LDAP Representação gráfica de parte de um diretório LDAP: 14 Definições LDIF O que é LDIF? Exemplo simples com 2 entradas Exemplo com uma entrada codificada em base-64 Exemplo com uma entrada referenciando um arquivo externo Representação gráfica de um arquivo LDIF 15 O que é LDIF? LDAP Data Interchange Format Formato de intercâmbio de informações para o LDAP Definido na RFC 2849 - The LDAP Data Interchange Format Esse formato de dados descreve o diretório e suas entradas em formato texto Formato básico: dn: <indentificador_único> <atributo>: <valor> <atributo>:: <valor codif. em base-64> <atributo>: < <URL> ... 16 LDIF Exemplo Simples com 2 entradas version: 1 dn: cn=Barbara Jensen, ou=Product Development, dc=airius, dc=com objectclass: top objectclass: person objectclass: organizationalPerson cn: Barbara Jensen cn: Barbara J Jensen cn: Babs Jensen sn: Jensen uid: bjensen telephonenumber: +1 408 555 1212 description: A big sailing fan. dn: cn=Bjorn Jensen, ou=Accounting, dc=airius, dc=com objectclass: top objectclass: person objectclass: organizationalPerson cn: Bjorn Jensen sn: Jensen telephonenumber: +1 408 555 1212 17 LDIF Exemplo com uma entrada codificada em base-64 version: 1 dn: cn=Gern Jensen, ou=Product Testing, dc=airius, dc=com objectclass: top objectclass: person objectclass: organizationalPerson cn: Gern Jensen cn: Gern O Jensen sn: Jensen uid: gernj telephonenumber: +1 408 555 1212 description:: V2hhdCBhIGNhcmVmdWwgcmVhZGVyIHlvdSBhcmUhICBUaGlzIHZhbHVlIGlzIGJhc 2UtNjQtZW5jb2RlZCBiZWNhdXNlIGl0IGhhcyBhIGNvbnRyb2wgY2hhcmFjdGVyIG luIGl0IChhIENSKS4NICBCeSB0aGUgd2F5LCB5b3Ugc2hvdWxkIHJlYWxseSBnZXQ gb3V0IG1vcmUu 18 LDIF Exemplo com uma entrada referenciando um arquivo externo version: 1 dn: cn=Horatio Jensen, ou=Product Testing, dc=airius, dc=com objectclass: top objectclass: person objectclass: organizationalPerson cn: Horatio Jensen cn: Horatio N Jensen sn: Jensen uid: hjensen telephonenumber: +1 408 555 1212 jpegphoto:< file:///usr/local/directory/photos/hjensen.jpg 19 LDIF Representação gráfica de um arquivo LDIF: 20 Funcionamento Operação do protocolo LDAP Recebimento de uma única entrada (Pesquisa) Recebimento de várias entradas(Pesquisa) Requisição de várias operações Tipos de operações do LDAP Troca completa de mensagens entre Cliente e Servidor Combinação de simples operações Tarefa complexa 21 Operação do protocolo LDAP Recebimento de uma única entrada: Caso o LDAP Server ache apenas um valor para a operação de Search realizada, esse valor é retornado. Na requisição, o cliente envia um ID único (msgid). Esse ID é usado nas respostas para identificar as mensagens. 22 Operação do protocolo LDAP Recebimento de várias entradas: Caso o LDAP Server ache diversos valores para a operação de Search realizada, eles são retornados em mensagens separadas. Cada entrada retornada tem um nome único chamado de distinguished name (DN). 23 Operação do protocolo LDAP Requisição de várias operações: Como o LDAP é orientado a mensagem, é possível realizar diversas operações ao mesmo tempo. Isto torna o protocolo mais flexível e eficiente, pois não há a necessidade de esperar uma resposta do server antes de realizar outra operação, como no HTTP. 24 Operação do protocolo LDAP Tipos de operações do LDAP, divididas em 3 classes: Operações de pergunta: Operações de atualização: Search Compare Add Delete Modify Modify DN (Rename) Operações de autenticação e controle: Bind (Cliente se autentica com o Servidor) Unbind (Cliente termina sessão com o Servidor) Abandon (Cliente não está mais interessado nas respostas da requisição anteriormente enviada) 25 Operação do protocolo LDAP Troca completa de mensagens entre Cliente e Servidor: 26 Operação do protocolo LDAP A combinação de simples operações podem realizar tarefas complexas, exemplo: 27 Segurança A Segurança no LDAP Métodos de Autenticação Método de Criptografia Transport Layer Security LDAP usando SASL com SSL/TLS Comunicação pela Internet Modelo de Controle de Acesso 28 A Segurança no LDAP Protegendo informações de acessos indevidos: Autenticação. LDAP, só autenticação simples (texto aberto) LDAPv2, autenticação simples e pode utilizar Kerberos v4 e v5 LDAPv3, utiliza framework SASL (Simple Authentication and Security Layer) – múltiplos mecanismos de autenticação Transmissão de dados segura (criptografia). Modelos de controle de acesso. 29 Métodos de Autenticação LDAPv3: métodos de autenticação definidos na RFC 2829 (Authentication Methods for LDAP). Nessa RFC, os servidores foram quebrados em 3 grupos: Servidores LDAP públicos Somente-leitura (permitem login anônimo, sem senha). Servidores com autenticação usando senhas (usa mecanismo SASL DIGEST-MD5). Servidores com autenticação e criptografia de dados (usa StartTLS para camada de transporte segura e certificados com chaves públicas para autenticação de ambos os lados). 30 Método de Criptografia Transport Layer Security (TLS) TLS proporciona: Autenticidade, Integridade e Criptografia de dados Clientes que usam TLS na comunicação: Suas mensagens não serão decifradas caso sejam capturadas. Suas mensagens não serão alteradas (homem do meio) Podem autenticar o servidor (usando certificados com chaves públicas) Podem verificar a autenticidade de servidores nos quais ele já está conectado (usando certificados com chaves públicas) 31 Método de Criptografia LDAP usando SASL com SSL/TLS 32 Método de Criptografia 33 Modelo de Controle de Acesso Define os direitos de acesso as informações do diretório para cada usuário ou grupo: Ex: Somente leitura de nomes para usuário Administrator; Alteração de descrição para todos os usuários; Leitura de informações básicas do diretório para usuário Anônimo; Não foi padronizado pela IETF (ainda estão definindo um padrão). Cada fabricante tem um padrão distinto muito trabalho de migração caso seja necessário mudar de fabricante. 34 Otimizações do LDAP Tipos de otimizações Replicação de Diretório Problema Solução Resultado Diretórios Distribuídos Problema Solução 35 Tipos de Otimizações Replicação do serviço de diretórios Conceito de prover mecanismos de tolerância a falhas afim que manter o acesso as informações dos usuário sempre integra. Diretórios distribuídos Conceito que visa reduzir os pontos de falhas , alem de prover menor consumo de banda e tempo quando uma consulta é realizada. O principal benefício é a possibilidade de redução de custos com hardware 36 Replicação de Diretório Problema: Muitos computadores acessando um servidor ponto de falha. www.ldap.liceu.com.br/img/rep2.jpg 37 Replicação de Diretório Solução: Usar o conceito de Diretórios Replicados para usar uma redundância quando for necessário. 38 Replicação de Diretório Quando temos uma falha no serviço o outro servidor entra em operação de forma automática. 39 Diretórios Distribuídos Problema: Muitos Computadores acessando o local que reside a informação. ( Tempo elevado e utilização do hardware para consulta) 40 Diretórios Distribuídos Solução: Utilização de vários computadores na formação na arvore de Diretórios. 41 Exemplos Exemplo prático – Windows Conceitos e nomenclaturas Cenário Active Directory – Considerações Ferramentas - Linux PHP Admin 42 Exemplo Prático – Windows Conceitos e Nomenclaturas: Forest Root Principal Servidor da Floresta. Global Catalog Arquivo que reúne todas as informações sobre os Componentes do Domínio computadores, usuários , impressoras e seus atributos. Member Server : Servidor membro, roda aplicações (Banco de Dados, Controle de Versões, Servidor de Arquivos etc) Domain Controler Controlador do Domínio, controla os objetos do domínio. 43 Exemplo Prático – Windows - Cenário 44 Exemplo Prático – Windows - Cenário Nesta paste do Exemplo temos o Forest Root , onde fica armazenado o Global Catalog(Arquivo de Diretórios) principal da Floresta. 45 Exemplo Prático – Windows - Cenário www.microsoft.com 46 47 Active Directory – Considerações Interface LDAP para Windows Atualmente ADFS Cada Domain Controler tem o Active Directory Instalado para controlar os objetos do seu Domínio. As informações são replicadas de tempos em tempos para manter a consistência dos dados. Informações Urgentes são replicadas no momento da alteração. 48 Ferramentas Linux php LDAP admin Módulo Web para administração do servidor LDAP Visualização hierárquica da árvore LDAP Intuitivo, fácil e LIVRE! Funciona também em outros SOs Suporte internacional (8 línguas) Mais informações: http://phpldapadmin.sourceforge.net/ 49 phpLDAPadmin - Criação 50 phpLDAPadmin - Edição 51 phpLDAPadmin - Buscas 52 Conclusão Protocolo leve – não necessita de muitos recursos computacionais; Padrão aberto – é possível a construção de produtos para várias plataformas (OpenLDAP); Expansível – podem ser adicionadas novas funcionalidades para atender às necessidades dos serviços de diretório e de segurança (framework SASL); Porém não é a solução para todos os problemas, pois não substitui tão eficientemente serviços como Servidores FTP, Servidores WEB ou Sistemas de Arquivos, por exemplo. 53 Bibliografia Timothy A. Howes Ph.D., Mark C. Smith, Gordon S. Good, Understanding and Deploying LDAP Directory Services, 2nd Edition, 2003, Ed. Addison Wesley http://www.ldap.org.br/ http://penta2.ufrgs.br/~mfiorese/tutorial_quipu/x500 .htm http://www.openldap.com http://www.rnp.br/newsgen/0203/processamento_din amico.html#ng-2-2 http://phpldapadmin.sourceforge.net/ http://www.microsoft.com 54 Dúvidas? ? 55