77
X.500 e LDAP Liane Tarouco

X.500 e LDAP

  • Upload
    talisa

  • View
    57

  • Download
    0

Embed Size (px)

DESCRIPTION

X.500 e LDAP. Liane Tarouco. X.500. X.500 é um protocolo que especifica um modelo para a conexão de Serviços de Diretórios locais a fim de formar um diretório global distribuído. Serviços X.500. - PowerPoint PPT Presentation

Citation preview

Page 1: X.500 e LDAP

X.500 e LDAP

Liane Tarouco

Page 2: X.500 e LDAP

X.500

• X.500 é um protocolo que especifica um modelo para a conexão de Serviços de Diretórios locais a fim de formar um diretório global distribuído

Page 3: X.500 e LDAP

Serviços X.500

• X.500 é especificado como um serviço da Camada de Aplicação no mundo OSI, porém o seu projeto não depende significativamente das outras camadas OSI, e ele pode ser visto como um projeto de um Serviço de Diretório de propósito geral.

Page 4: X.500 e LDAP

Serviço de diretórios é uma aplicação (camada 7 do modelo OSI) que interopera usando protocolos definidos nas recomendações da série X.500

Page 5: X.500 e LDAP

X.500

• O padrão X.500 define o Diretório como uma coleção de sistemas abertos que cooperam para manter uma base de dados lógica com informações sobre um conjunto de objetos do mundo real.

• Os usuários do Diretório, incluindo pessoas e programas, podem ler e modificar as informações, ou parte dela, se tiverem permissão para isto

Page 6: X.500 e LDAP
Page 7: X.500 e LDAP

Definições• Entrada - Uma entrada é o bloco básico de um banco de

dados, ela guarda as informações sobre o objeto de interesse

• Objetos - Objetos são associados com entidades do mundo real, sendo identificados pelo seu nome.

• Classes de Objetos - Uma classe de objetos identifica objetos que possuem características similares, definindo as informações de interesse para estes objetos

Page 8: X.500 e LDAP

Definições

• Atributos - Um atributo é um pedaço de informação que descreve algum aspecto de uma entrada

• Nomes - Um nome simplesmente denota um objeto, descrevendo o objeto, com o objetivo de tornar mais fácil para as pessoas lembrarem-se deles

Page 9: X.500 e LDAP

Definições

• Endereço - Um endereço indica a localização de um objeto dentro do Diretório

• Rota - Uma rota indica como chegar a um determinado endereço através da estrutura do Diretório

Page 10: X.500 e LDAP

Nome distinto

• Cada entrada no Diretório X.500 descreve um objeto (uma pessoa, uma rede), que tem um identificador único chamado ND - Nome Distinto.

• Uma entrada consiste de uma coleção de atributos, sendo que, para uma pessoa, estes atributos podem ser nome, endereço, e-mail, etc.

• Exemplo de ND:

CN=Steve Kille, O=Isode Limited, C=GB

Page 11: X.500 e LDAP

Nomes

• Em qualquer discussão sobre nomeação, é importante distinguir entre três conceitos: – um nome denota um objeto; – um endereço indica onde o objeto esta; – uma rota diz como chegar lá.

Page 12: X.500 e LDAP

Nomes

• A X.500 especifica parcialmente regras para a estrutura dos nomes e os valores que estes nomes ou partes deles podem assumir.

Page 13: X.500 e LDAP

Características dos nomes

• Eles têm uma ou mais partes denominadas atributos

• As partes de um nome têm um relacionamento hierárquico.

•A autoridade para atribuir nomes pode ser delegada em qualquer nível de hierarquia

Page 14: X.500 e LDAP

Características dos nomes• As regras que governam a definição exata de um

nome (os atributos que são usados e os valores que os atributos podem assumir) podem variar em diferentes partes de espaços de nomes.

• Todos os objetos que compartilham o mesmo no parental têm nomes distintos relativos diferentes.

• Um nome distinto relativo (NDR) é composto de um ou mais atributos associados com o arco do pai para o filho

Page 15: X.500 e LDAP

AID - Árvore de Informação de Diretório

• As entradas na BID são organizadas em forma de árvore e esta estrutura é denominada Árvore de Informações do Diretório (AID).

• Os vértices da árvore representam as entradas. As entradas de mais alta ordem (próximas da raiz) usualmente representam objetos tais como países ou organizações enquanto que entradas de menor ordem representam pessoas ou

processos de aplicação.

Page 16: X.500 e LDAP

Exemplo

{ Country = Brasil,

Organization = Empresa Geral de Acessórios,

{Division = Auditoria,

Estado = RS},

NomePessoal = Francisco Guedes}.

Page 17: X.500 e LDAP

Recomendações série X.500

• A série de recomendações X.500 define – regras para dar nome a objetos, – uma BID - Base de Informações de Diretório

lógica para guardar informações sobre estes objetos

– as entidades de protocolo que cooperam para prover o Serviço de Diretórios.

Page 18: X.500 e LDAP
Page 19: X.500 e LDAP

Atributos

• A X.520 definiu onze grupos de tipos de atributos:

• Sistema• Rotulação• Geográficos• Organizacionais• Explanatórios

• Endereçamento postal• Telecomunicações• Preferência• Aplicação OSI• Relacional• Segurança

Page 20: X.500 e LDAP

Sistema

• Tipos de atributos de sistema denotam a classe de um objeto, um pseudônimo de um objeto, se existe, e uma descrição legível por seres humanos do conhecimento armazenado por um específico ASD (conhecimento de como a BID e distribuída entre os ASDs).

Page 21: X.500 e LDAP

Rotulação

• Tipos de atributo de rotulação são cadeias de caracteres que as pessoas associam com os objetos.

• Exemplos disso incluem nomes comum, tais como "Joao Silva" ou "Modem de Alta Velocidade" ou números seriais.

Page 22: X.500 e LDAP

Geográfico

• Tipos de atributos geográficos associam uma região ou posição geográfica com um objeto. Exemplos incluem país, estado e localidade.

Page 23: X.500 e LDAP

Organizacionais

• Tipos de atributos organizacionais identificam a organização em que o objeto e afiliado e o papel do objeto naquela organização tal como nome da organização e cargo.

Page 24: X.500 e LDAP

Explanatório

• Tipos de atributos explanatório fornecem auxílio ao usuário de Diretório.

• Por exemplo eles podem descrever o objetivo de um objeto, sugerir critério de pesquisa que pode ser útil numa sub-árvore ou dar a ocupação de uma pessoa.

Page 25: X.500 e LDAP

Endereçamento postal

• Tipos de atributo de endereçamento postal especificam a informação requerida para a entrega física de um objeto tal como um nome de rua ou uma caixa postal.

Page 26: X.500 e LDAP

Telecomunicações

• Tipos de atributos de telecomunicações associam um ou mais endereços eletrônicos com um objeto.

• Exemplos de tais endereços incluem números de telefones, números de telex números de teletex, números de fac-simile, endereços X.121, endereços RDSI e informação de endereçamento usada para telegramas.

Page 27: X.500 e LDAP

Preferência

• Tipos de atributos de preferência especificam a ordem prioritária de escolha do método a ser usado na tentativa de comunicar-se com o objeto (por exemplo correio eletrônico, telefone).

Page 28: X.500 e LDAP

Aplicação OSI

• Tipos de atributo de aplicação OSI armazenam o endereço de apresentação e o contexto de aplicação de uma entidade de aplicação OSI.

Page 29: X.500 e LDAP

Relacional

• Tipos de atributo relacional implementam o conceito de grupos e relacionamentos no Diretório.

• Exemplos desses atributos incluem membro, proprietário, papel e "veja outros".

• Note que o Diretório não inclui mecanismos explícitos para manter a consistência desta informação.

Page 30: X.500 e LDAP

Segurança

• Tipos de atributo de segurança suportam mecanismos de autenticação que podem ser usados pelo Diretório.

• Exemplos deste atributo incluem palavra-senha e certificações.

Page 31: X.500 e LDAP
Page 32: X.500 e LDAP

Protocolos

• Existem dois protocolos usados pelo Diretório. – O Protocolo de Acesso ao Diretório (PAD) é usado

em interações entre um AUD e um ASD. – Protocolo do Sistema de Diretórios (PSD) é usado

em interações entre dois ASD

Page 33: X.500 e LDAP

Procedimentos

• O AUD interage com o Diretório comunicando-se com um ou mais ASDs.

• Um AUD não precisa estar ligado a nenhum ASD em particular.

• Ele pode interagir diretamente com vários ASDs para fazer pedidos.

Page 34: X.500 e LDAP

Atendimento AUD

• Se o ASD pode atender o pedido do AUD por si mesmo, ele toma toda a atitude apropriada fornecendo ao AUD informação de sua BID-Base de Informações de Diretório.

• Se não tiver a informação solicitada pode ocorrer uma das seguintes situações: – Encadear– Disseminar– Sugerir

Page 35: X.500 e LDAP

Encadear

• O ASD pode encadear o pedido passando-o para outro ASD.

• O segundo ASD responderia ao primeiro ASD, não ao AUD. O encadeamento pode ser efetuado recursivamente.

Page 36: X.500 e LDAP

Disseminar• O ASD pode disseminar o pedido a dois ou mais ASDs

para resolução concorrente.

• O primeiro ASD coleta todas as respostas antes de responder ao AUD.

• A disseminação pode ser considerada como uma forma de encadeamento. Ela pode ser efetivada recursivamente.

Page 37: X.500 e LDAP

Sugerir

• O AUD então pergunta ao segundo ASD o que deseja.

• O ASD pode retornar ao AUD uma sugestão de um outro ASD que possa atender o pedido.

• Isto é, o primeiro ASD da o nome do segundo ASD para o AUD.

Page 38: X.500 e LDAP

Operações do DSP

• Leitura Encadeada - permite o encadeamento de operações de leitura, comparação e abandono.

• Pesquisa Encadeada - permite o encadeamento das operações de listagem e pesquisa.

• Modificação Encadeada - permite o encadeamento das operações de acréscimo, exclusão e modificação de entradas e modificação de NDR.

Page 39: X.500 e LDAP

Protocolos X.500

ROSE ACSE

Protocolos X.500

Operações remotas Conectar e desconectar

Page 40: X.500 e LDAP

X.500 é uma aplicação OSI

Page 41: X.500 e LDAP

Serviços proporcionados

• conexão ao diretório• interrogação do diretório • modificação do diretório

Page 42: X.500 e LDAP

Limites no uso dos recursos

• Controle são providos em, entre outras coisas: – quantidade de tempo– tamanho dos resultados– escopo da pesquisa – modos de interação– prioridade do pedido

• Mecanismos de segurança para proteger as informações do Diretório.

Page 43: X.500 e LDAP

Filtros

• Pedidos que envolvam informações sobre ou envolvendo diversa entradas podem carregar junto um filtro

• Um filtro expressa uma ou mais condições que uma entrada deve satisfazer para ser retornada como parte do resultado.

• Isto permite reduzir o conjunto de entradas retornadas para somente aquelas de interesse relevante.

Page 44: X.500 e LDAP

Conexão e Desconexão (Binding e Unbinding)

As operações de conexão e desconexão são as primeiras e as últimas numa série de operações que um AUD invoca num ASD.

Elas governam o relacionamento operacional entre um AUD e um ASD.

A ligação prove um meio para um AUD se identificar a um ASD e vice-versa.

O desligar é usado por um AUD para assinalar o fim de uma série de operações.

AUDASD

Page 45: X.500 e LDAP

Operações de Leitura• Duas operações ler (READ) e comparar (COMPARE) são

usadas para examinar a informação associada com uma entrada de objeto particular.

• Ler é usado para extrair informação de uma particular entrada ou para verificar um nome único e distinto.

• Comparar e similar a ler exceto que o AUD fornece informação para o ASD comparar contra uma entrada de objeto.

Page 46: X.500 e LDAP

Operações de Pesquisa• Duas operações, listar (LIST) e pesquisar (SEARCH)

podem retornar informações sobre múltiplos objetos.

• Dada uma particular entrada na AID-Árvore de Informações de Diretório, a operação de listar retorna os nomes distintos relativos de suas entradas subordinadas.

• Dado um conjunto de critérios de seleção, pequisar identifica as entradas de interesse numa sub-árvore na AID e retorna a informação extraída dessas entradas.

Page 47: X.500 e LDAP

Operações de Modificação

• Três Operações são usadas para manter a informação armazenada nos nodos folhas da AID: – adicionar (add) – remover (remove)– modificar (modify).

• Controles de acesso sobre adicionar, remover e modificar são decisões a cargo do implementador.

Page 48: X.500 e LDAP

Operação de Abandono

• Abandono (abandon) pode ser invocado por um AUD - Agente de Usuário de Diretório, após uma operação anteriormente invocada, para dizer ao ASD que não há mais interesse nos resultados da mesma.

• Deve-se notar que o abandono não necessariamente cancela a operação.

• Cancelar a operação poderia ser difícil de efetuar, dada a natureza distribuída do Diretório.

Page 49: X.500 e LDAP

LDAP

• Lightweight Directory Access Protocol (LDAP)

– subconjunto do X.500 DAP sem o overhead do ASN.1 ou da pilha OSI

– Destinado a rodar em qualquer desktop

• Roda sobre TCP

• Pode ser usado para acessar um servidor LDAP independente ou um servidor X.500 indiretamente, via servidor LDAP

Page 50: X.500 e LDAP

Versões LDAP

• 1993 primeira versão• 1996 LDAPv2• 1997 LDAP v3

Page 51: X.500 e LDAP

Aplicações do LDAP

• Localizar usuários e recursos da rede• Gerenciar usuários e recursos da rede

– Recursos on-line (Dublin Core)– Learning Objects (IEEE)

• Autenticar e proteger (segurança) usuários e recursos da rede

Page 52: X.500 e LDAP

Aspectos a considerar

• Replicação do diretório• Controle de acesso

Page 53: X.500 e LDAP

LDAP x DNS

• LDAP não é substitutivo para DNS• Não pode competir com a performance orientada

ao alto tráfego do DNS – não orientado a conexões– usa porta 389 mas pode usar outras portas– usa o protocolo LDAP para atendimento

Page 54: X.500 e LDAP

Estrutura do LDAP

Page 55: X.500 e LDAP

Modelo de informação

• Coleção de atributos e valores• Tipo de de dados armazenados no diretório• Praticamente todo o tipo de informação pode ser

colocado no diretório

Page 56: X.500 e LDAP

LDAP schema

• Define os elementos de dados que efetivamente podem ser armazenados num particular servidor e como se relacionam com objetos do mundo real

• Foram padronizados objetos representando:– países– organizações– pessoas– grupos

Page 57: X.500 e LDAP

Naming Model

• Como a informação é organizada e referenciada• Nomes LDAP são hierárquicos• Nomes individuais compostos de atributos e

valores• LDAP permite esquemas flexíveis de nomeação

Page 58: X.500 e LDAP

Modelo de segurança

• Como a informação é protegida contra acesso não autorizado

• Autenticação extensível permite a clientes e servidores provarem sua identidade unas aos outros

• Confidencialidade e integridade também podem ser implementadas para proteger a privacidade e contra ataques ativos

Page 59: X.500 e LDAP

Modelo de funcionamento

• Como os clientes acessam e atualizam a informação bem como o modo pelo qual os dados podem ser manipulados

• Funções básicas operacionais:– add delete modify– bind unbind (autenticação)– search compare– modify DN (distinguished name)– abandon (interromper operação em progresso)

Page 60: X.500 e LDAP

LDAP protocol

• Interação entre clientes e servidores e mapeamento sobre TCP/IP

• Cada LDAP request é portado em uma mensagem e as entradas contidas na resposta a uma pesquisa são transportadas em mensagens separadas

Page 61: X.500 e LDAP

Mensagens do LDAP

LDAPMessage ::=

SEQUENCE {

messageID MessageID,

protocolOp CHOICE {

bindRequest BindRequest,

bindResponse BindResponse,

unbindRequest UnbindRequest,

searchRequest SearchRequest,

searchResponse SearchResponse,

modifyRequest ModifyRequest,

modifyResponse ModifyResponse,

addRequest AddRequest,

addResponse AddResponse,

delRequest DelRequest,

delResponse DelResponse,

modifyRDNRequest ModifyRDNRequest,

modifyRDNResponse ModifyRDNResponse,

compareDNRequest CompareRequest,

compareDNResponse CompareResponse,

abandonRequest AbandonRequest

}

}

Page 62: X.500 e LDAP

BindBindRequest ::=

[APPLICATION 0] SEQUENCE {

version INTEGER (1 .. 127),

name LDAPDN,

authentication CHOICE {

simple [0] OCTET STRING,

krbv42LDAP [1] OCTET STRING,

krbv42DSA [2] OCTET STRING

}

}

Iniciar uma sessão entre um cliente e um servidor permitindo a autenticação do cliente para o servidor

Deve ser a primeira operação recebida por um servidor de um cliente numa sessão

Page 63: X.500 e LDAP

Unbind

Encerrar uma sessão

UnbindRequest ::= [APPLICATION 2] NULL

Page 64: X.500 e LDAP

Search SearchRequest ::=

[APPLICATION 3] SEQUENCE {

baseObject LDAPDN,

scope ENUMERATED {

baseObject (0),

singleLevel (1),

wholeSubtree (2)

},

derefAliases ENUMERATED {

neverDerefAliases (0),

derefInSearching (1),

derefFindingBaseObj (2),

derefAlways (3)

},

sizeLimit INTEGER (0 .. maxInt),

timeLimit INTEGER (0 .. maxInt),

attrsOnly BOOLEAN,

filter Filter,

attributes SEQUENCE OF AttributeType

}

Permite a um cliente solicitar a execução de uma pesquisa a ser feita pelo servidor

Page 65: X.500 e LDAP

Filter

Filter ::=

CHOICE {

and [0] SET OF Filter,

or [1] SET OF Filter,

not [2] Filter,

equalityMatch [3] AttributeValueAssertion,

substrings [4] SubstringFilter,

greaterOrEqual [5] AttributeValueAssertion,

lessOrEqual [6] AttributeValueAssertion,

present [7] AttributeType,

approxMatch [8] AttributeValueAssertion

}

Page 66: X.500 e LDAP

SubstringFilter

SubstringFilter

SEQUENCE {

type AttributeType,

SEQUENCE OF CHOICE {

initial [0] LDAPString,

any [1] LDAPString,

final [2] LDAPString

}

}

Page 67: X.500 e LDAP

ModifyPermite a um cliente solicitar a modificação da BID (Base de Informações do

Diretório) que será feita para ele pelo servidor

ModifyRequest ::=

[APPLICATION 6] SEQUENCE {

object LDAPDN,

modification SEQUENCE OF SEQUENCE {

operation ENUMERATED {

add (0),

delete (1),

replace (2)

},

modification SEQUENCE {

type AttributeType,

values SET OF

AttributeValue } }

}

Page 68: X.500 e LDAP

Add

Permite a um cliente adicionar uma entrada no diretório

AddRequest ::=

[APPLICATION 8] SEQUENCE {

entry LDAPDN,

attrs SEQUENCE OF SEQUENCE {

type AttributeType,

values SET OF AttributeValue

}

}

Page 69: X.500 e LDAP

Delete

Permite a um cliente solicitar a remoção de uma entrada no diretório

DelRequest ::= [APPLICATION 10] LDAPDN

O pedido contém o Nome Distinto da entrada a seer deletada

Page 70: X.500 e LDAP

Modify RDN

A operação Modify RDN permite a um cliente alterar o último componente do nome de uma entrada no diretório

ModifyRDNRequest ::=

[APPLICATION 12] SEQUENCE {

entry LDAPDN,

newrdn RelativeLDAPDN,

deleteoldrdn BOOLEAN

}

Page 71: X.500 e LDAP

Compare

Permite a um cliente comparar uma assertiva que ele provê com uma entrada no diretório

CompareRequest ::=

[APPLICATION 14] SEQUENCE {

entry LDAPDN,

ava AttributeValueAssertion

}

Page 72: X.500 e LDAP

Abandon

Permite a um cliente pedir ao servidor para abandonar o atendimento a um pedido em atendimento.

AbandonRequest ::= [APPLICATION 16] MessageID

Page 73: X.500 e LDAP

Considerações de segurança

A versão do protocolo definida no RFC1777 prove apenas facilidades de autenticação simples usando uma senha não cifrada ou autenticação com o sistema kerberos versão 4

Page 74: X.500 e LDAP

LDAP 1, 2

• Nas versões 1 e 2 do LDAP não há previsão para que os servidor retornem indicações de outros servidores que os clientes poderiam consultar

• Mas visando otimizar a performance e a distribuição do diretório o servidor pode retornar aos clientes referência a outros servidores

Page 75: X.500 e LDAP

LDAP API

• Application Program Interface (API) usados em plataformas rodando C/C++, Java Javascript, Perl

• LDIF- LDAP Interchange Format - oferece formato textual simples para representar entradas do diretório

Page 76: X.500 e LDAP
Page 77: X.500 e LDAP

LDAP clients• LDAP é um protocolo de acesso para cliente.

• Existem muitos clientes LDAP embutidos em aplicações tais como email