Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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.

Slide 3

Slide 3 text

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.

Slide 4

Slide 4 text

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.

Slide 5

Slide 5 text

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.

Slide 6

Slide 6 text

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.

Slide 7

Slide 7 text

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.

Slide 8

Slide 8 text

TCP/IP Arquitetura LDAP sem replicação Arquitetura LDAP sem replicação Clientes Servidor Catálogo

Slide 9

Slide 9 text

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.

Slide 10

Slide 10 text

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.

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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:

Slide 13

Slide 13 text

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 )

Slide 14

Slide 14 text

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 ( ... ) →

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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.

Slide 18

Slide 18 text

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, … .

Slide 19

Slide 19 text

Referências Referências Understanding and Deploying LDAP Directory Services (2nd Edition) by Timothy A. Howe - RFCs citadas na apresentação

Slide 20

Slide 20 text

OBRIGADO!! http://holanda.xyz