Upgrade to Pro — share decks privately, control downloads, hide ads and more …

LDAP

 LDAP

Apresentação sobre o protocolo LDAP (Lightweight Directory Access Protocol).

Adriano J. Holanda

September 14, 2010
Tweet

More Decks by Adriano J. Holanda

Other Decks in Programming

Transcript

  1. LDAP LDAP Adriano J. Holanda Adriano J. Holanda Analista de

    Sistemas Depto de Computação e Matemática/FFCLRP/USP Professor FAFRAM – Ituverava 2010-09-14
  2. Pai → X.500 Pai → X.500 • Começo → meio

    de 1980 com as especificações: • ITU (International Telecommunication Union); • ISO (International Organization for Standardization) • Serviço de nomes para as redes e aplicações OSI (Open Systems Interconnection) • Fusão das 2 especificações→ 1988; • Publicação → 1990; • Atualizações → 1993, 1997, 2001 e 2008.
  3. X.500 – o que especifica? X.500 – o que especifica?

    • Modelos – X.501; • Autenticação – X.509; • Procedimentos de operações distribuídas – X.518; • Protocolos – X.519; • Tipos de atributos – X.520; • Classes de objetos – X.521; • Replicação – X.530.
  4. X.500 – inovações X.500 – inovações • Primeiro sistema de

    catálogos de propósito genérico; • Extensível e atendendo às necessidade de uma ampla variedade de aplicações; • Grande quantidade de operações que podem ser realizadas; • Sonho → catálogo global de rede.
  5. X.500 – problemas X.500 – problemas • Primeiras implementações continham

    muitos erros e não eram escaláveis; • Complexidade da especificação ocasionou dificuldades para os implementadores; • Associação ao modelo OSI que pela abrangência do TCP/IP dificultou a disseminação do X.500; • Internet cresceu rapidamente, descentralizada e com organizações independentes implementando serviços.
  6. LDAP – Criação LDAP – Criação • LDAP – Lightweight

    Directory Access Protocol =~ protocolo leve de acesso a catálogo; • Autores: Tim Howes , Steve Kille e Wengyik Yeong ; • Segue o modelo X.500 e surgiu como alternativa para o DAP (Directory Access Protocol); • 1993 – 1a especificação → RFC 1487; • 1995 – versão 2 (LDAPv2) → RFC 1777; • 1997 – LDAPv3 → RFC 2251.
  7. Primeiras implementações LDAP Primeiras implementações LDAP Cliente LDAP Protocolo Tradutor

    LDAP (ldapd) Requisição LDAP → ← Resultado Requisição DAP → ← Referência DAP X.500 DSA - 1995; - 99% de acesso através do servidor LDAP; - Melhoria da performance e redução da complexidade; - Promessa de serviço global interconectado tornou-se impraticável.
  8. Inovações do LDAP Inovações do LDAP • Funcionalidade: eliminação de

    operações redundantes ou raramente usadas do X.500; • Representação dos dados: a maioria dos dados são transmitidos em formato texto; • Codificação: subconjunto do X.500, simplificando o esquema de codificação; • Transporte: “roda” diretamente sobre TCP/IP.
  9. Versão atual – LDAPv3 → 2006 Versão atual – LDAPv3

    → 2006 • Segue conjunto de RFCs de acordo com a RFC 4520; • Internacionalização: UTF8; • Referências (referrals): melhorias; • Segurança: SASL, TLS; • Extensibilidade: suporta novas operações; • Busca de Esquema e Recursos.
  10. Esquema LDAP Esquema LDAP (Schema) (Schema) Classes de objetos atributos

    Classes de objetos atributos Classes de objetos atributos Esquema (Schema) Esquema ( 2.5.6.6 NAME 'person' SUP top STRUCTURAL MUST ( sn $ cn ) MAY ( userPassword $ telephoneNumber $ seeAlso $ description ) ) object class ( 0.9.2342.19200300.100.1.1 NAME 'uid' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) atributo
  11. Hierarquia das classes de objetos Hierarquia das classes de objetos

    top person organizaztionalUnit inetOrgPerson ... Mais atributos Classe superior ( 2.5.6.2 NAME 'country' DESC 'RFC2256: a country' SUP SUP top STRUCTURAL MUST c MAY ( searchGuide $ description ) ) exemplo:
  12. Atributos → exemplos Atributos → exemplos ( 2.5.4.35 NAME 'userPassword'

    EQUALITY octetStringMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 ) ( 2.5.4.20 NAME 'telephoneNumber' EQUALITY telephoneNumberMatch SUBSTR telephoneNumberSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.50 ) ( 2.5.4.46 NAME 'dnQualifier' EQUALITY caseIgnoreMatch ORDERING caseIgnoreOrderingMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.44 )
  13. Regras de emparelhamento Regras de emparelhamento • Boolean (1.3.6.1.4.1.1466.115.121.1.7 DESC

    'Boolean') → • BitString ( ... ) → • CountryString ( ... ) → • DN ( ... ) → • INTEGER ( ... ) → • IA5String ( ... ) → • GeneralizedTime ( ... ) →
  14. Hierarquia de nomes Hierarquia de nomes dc=br dc=edu dc=worktec ou=Pessoas

    ou=Grupos ou=Computadores dn: dc=br dn: dc=edu,dc=br dn: dc=worktec, dc=edu,dc=br dn: ou=Computadores, dc=worktec, dc=edu,dc=br dn: ou=Grupos, dc=worktec, dc=edu,dc=br dn: ou=Pessoas, dc=worktec, dc=edu,dc=br dn → Distinguished Name ou → Organization Unit dc → Domain Component
  15. Entrada LDAP Entrada LDAP dn: cn=Adriano Holanda,dc=worktec,dc=edu, dc=br cn: Adriano

    Holanda givenName: Adriano sn: Holanda telephoneNumber: +55 016 3999 5555 telephoneNumber: +55 016 3666 3399 mail: [email protected] objectClass: inetOrgPerson objectClass: organizationalPerson objectClass: person objectClass: top arquivo formato ldif LDIF – LDAP Data Interchange Format
  16. Funções Funções • ldap_search() – busca entradas; • ldap_bind() –

    autentica; • ldap_unbind() – encerra sessão; • ldap_modify() – modifica entrada; • ldap_add() – adiciona entrada; • ldap_delete() – remove entrada.
  17. Discussão Discussão • LDAP + SAMBA – infraestrutura de administração

    de recursos de rede para sistemas Windows ou baseados em Unix; • LDAP é a base do Active Directory que substitui a rede Windows (SMB – Server Message Block); • Possui ampla quantidade de programas com interface de comunicação LDAP: apache, postfix, samba, qmail, courier,...; • E também APIs: C, Perl, Java, .Net, PHP, … .