X 500 e LDAP Liane Tarouco X 500

  • Slides: 77
Download presentation
X. 500 e LDAP Liane Tarouco

X. 500 e LDAP Liane Tarouco

X. 500 • X. 500 é um protocolo que especifica um modelo para a

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 • X. 500 é especificado como um serviço da Camada de

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.

Serviço de diretórios é uma aplicação (camada 7 do modelo OSI) que interopera usando

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

X. 500 • O padrão X. 500 define o Diretório como uma coleção de

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

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

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

Definições • Atributos - Um atributo é um pedaço de informação que descreve algum

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

Definições • Endereço - Um endereço indica a localização de um objeto dentro do

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

Nome distinto • Cada entrada no Diretório X. 500 descreve um objeto (uma pessoa,

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

Nomes • Em qualquer discussão sobre nomeação, é importante distinguir entre três conceitos: –

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á.

Nomes • A X. 500 especifica parcialmente regras para a estrutura dos nomes e

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

Características dos nomes • Eles têm uma ou mais partes denominadas atributos • As

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

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

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

AID - Árvore de Informação de Diretório • As entradas na BID são organizadas

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.

Exemplo { Country = Brasil, Organization = Empresa Geral de Acessórios, {Division = Auditoria,

Exemplo { Country = Brasil, Organization = Empresa Geral de Acessórios, {Division = Auditoria, Estado = RS}, Nome. Pessoal = Francisco Guedes}.

Recomendações série X. 500 • A série de recomendações X. 500 define – regras

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.

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

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

Sistema • Tipos de atributos de sistema denotam a classe de um objeto, um

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

Rotulação • Tipos de atributo de rotulação são cadeias de caracteres que as pessoas

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.

Geográfico • Tipos de atributos geográficos associam uma região ou posição geográfica com um

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.

Organizacionais • Tipos de atributos organizacionais identificam a organização em que o objeto e

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.

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

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.

Endereçamento postal • Tipos de atributo de endereçamento postal especificam a informação requerida para

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.

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

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.

Preferência • Tipos de atributos de preferência especificam a ordem prioritária de escolha do

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

Aplicação OSI • Tipos de atributo de aplicação OSI armazenam o endereço de apresentação

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.

Relacional • Tipos de atributo relacional implementam o conceito de grupos e relacionamentos no

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.

Segurança • Tipos de atributo de segurança suportam mecanismos de autenticação que podem ser

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.

Protocolos • Existem dois protocolos usados pelo Diretório. – O Protocolo de Acesso ao

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

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

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.

Atendimento AUD • Se o ASD pode atender o pedido do AUD por si

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

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

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.

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

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.

Sugerir • O ASD pode retornar ao AUD uma sugestão de um outro ASD

Sugerir • 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. • O AUD então pergunta ao segundo ASD o que deseja.

Operações do DSP • Leitura Encadeada - permite o encadeamento de operações de leitura,

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.

Protocolos X. 500 Operações remotas Conectar e desconectar

Protocolos X. 500 Operações remotas Conectar e desconectar

X. 500 é uma aplicação OSI

X. 500 é uma aplicação OSI

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

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

Limites no uso dos recursos • Controle são providos em, entre outras coisas: –

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.

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

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.

Conexão e Desconexão (Binding e Unbinding) As operações de conexão e desconexão são as

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. AUD ASD

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

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.

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

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.

Operações de Modificação • Três Operações são usadas para manter a informação armazenada nos

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.

Operação de Abandono • Abandono (abandon) pode ser invocado por um AUD - Agente

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.

LDAP • Lightweight Directory Access Protocol (LDAP) – subconjunto do X. 500 DAP sem

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

Versões LDAP • 1993 primeira versão • 1996 LDAPv 2 • 1997 LDAP v

Versões LDAP • 1993 primeira versão • 1996 LDAPv 2 • 1997 LDAP v 3

Aplicações do LDAP • Localizar usuários e recursos da rede • Gerenciar usuários e

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

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

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

LDAP x DNS • LDAP não é substitutivo para DNS • Não pode competir

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

Estrutura do LDAP

Estrutura do LDAP

Modelo de informação • Coleção de atributos e valores • Tipo de de dados

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

LDAP schema • Define os elementos de dados que efetivamente podem ser armazenados num

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

Naming Model • Como a informação é organizada e referenciada • Nomes LDAP são

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

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

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

Modelo de funcionamento • Como os clientes acessam e atualizam a informação bem como

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)

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

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

LDAPMessage : : = SEQUENCE { message. ID protocol. Op } } Mensagens do

LDAPMessage : : = SEQUENCE { message. ID protocol. Op } } Mensagens do LDAP Message. ID, CHOICE { bind. Request Bind. Request, bind. Response Bind. Response, unbind. Request Unbind. Request, search. Request Search. Request, search. Response Search. Response, modify. Request Modify. Request, modify. Response Modify. Response, add. Request Add. Request, add. Response Add. Response, del. Request Del. Request, del. Response Del. Response, modify. RDNRequest Modify. RDNRequest, modify. RDNResponse Modify. RDNResponse, compare. DNRequest Compare. Request, compare. DNResponse Compare. Response, abandon. Request Abandon. Request

Bind. Request : : = [APPLICATION 0] SEQUENCE { version INTEGER (1. . 127),

Bind. Request : : = [APPLICATION 0] SEQUENCE { version INTEGER (1. . 127), name LDAPDN, authentication CHOICE { simple [0] OCTET STRING, krbv 42 LDAP [1] OCTET STRING, krbv 42 DSA [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

Unbind Encerrar uma sessão Unbind. Request : : = [APPLICATION 2] NULL

Unbind Encerrar uma sessão Unbind. Request : : = [APPLICATION 2] NULL

Search. Request : : = [APPLICATION 3] SEQUENCE { base. Object LDAPDN, scope ENUMERATED

Search. Request : : = [APPLICATION 3] SEQUENCE { base. Object LDAPDN, scope ENUMERATED { base. Object (0), single. Level (1), whole. Subtree (2) }, deref. Aliases ENUMERATED { never. Deref. Aliases (0), deref. In. Searching (1), deref. Finding. Base. Obj (2), deref. Always (3) }, size. Limit INTEGER (0. . max. Int), time. Limit INTEGER (0. . max. Int), attrs. Only BOOLEAN, filter Filter, attributes SEQUENCE OF Attribute. Type } Search Permite a um cliente solicitar a execução de uma pesquisa a ser feita pelo servidor

Filter : : = CHOICE { and [0] SET OF Filter, or [1] SET

Filter : : = CHOICE { and [0] SET OF Filter, or [1] SET OF Filter, not [2] Filter, equality. Match [3] Attribute. Value. Assertion, substrings [4] Substring. Filter, greater. Or. Equal [5] Attribute. Value. Assertion, less. Or. Equal [6] Attribute. Value. Assertion, present [7] Attribute. Type, approx. Match [8] Attribute. Value. Assertion }

Substring. Filter SEQUENCE { type Attribute. Type, SEQUENCE OF CHOICE { initial [0] LDAPString,

Substring. Filter SEQUENCE { type Attribute. Type, SEQUENCE OF CHOICE { initial [0] LDAPString, any [1] LDAPString, final [2] LDAPString } }

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

Modify Permite a um cliente solicitar a modificação da BID (Base de Informações do Diretório) que será feita para ele pelo servidor Modify. Request : : = [APPLICATION 6] SEQUENCE { object LDAPDN, modification SEQUENCE OF SEQUENCE { operation ENUMERATED { add (0), delete (1), replace (2) }, modification SEQUENCE { type Attribute. Type, values SET OF Attribute. Value } } }

Add Permite a um cliente adicionar uma entrada no diretório Add. Request : :

Add Permite a um cliente adicionar uma entrada no diretório Add. Request : : = [APPLICATION 8] SEQUENCE { entry LDAPDN, attrs SEQUENCE OF SEQUENCE { type Attribute. Type, values SET OF Attribute. Value } }

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

Delete Permite a um cliente solicitar a remoção de uma entrada no diretório Del. Request : : = [APPLICATION 10] LDAPDN O pedido contém o Nome Distinto da entrada a seer deletada

Modify RDN A operação Modify RDN permite a um cliente alterar o último componente

Modify RDN A operação Modify RDN permite a um cliente alterar o último componente do nome de uma entrada no diretório Modify. RDNRequest : : = [APPLICATION 12] SEQUENCE { entry LDAPDN, newrdn Relative. LDAPDN, deleteoldrdn BOOLEAN }

Compare Permite a um cliente comparar uma assertiva que ele provê com uma entrada

Compare Permite a um cliente comparar uma assertiva que ele provê com uma entrada no diretório Compare. Request : : = [APPLICATION 14] SEQUENCE { entry LDAPDN, ava Attribute. Value. Assertion }

Abandon Permite a um cliente pedir ao servidor para abandonar o atendimento a um

Abandon Permite a um cliente pedir ao servidor para abandonar o atendimento a um pedido em atendimento. Abandon. Request : : = [APPLICATION 16] Message. ID

Considerações de segurança A versão do protocolo definida no RFC 1777 prove apenas facilidades

Considerações de segurança A versão do protocolo definida no RFC 1777 prove apenas facilidades de autenticação simples usando uma senha não cifrada ou autenticação com o sistema kerberos versão 4

LDAP 1, 2 • Nas versões 1 e 2 do LDAP não há previsão

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

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

LDAP API • Application Program Interface (API) usados em plataformas rodando C/C++, Javascript, Perl • LDIF- LDAP Interchange Format - oferece formato textual simples para representar entradas do diretório

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

LDAP clients • LDAP é um protocolo de acesso para cliente. • Existem muitos clientes LDAP embutidos em aplicações tais como email