X.500 : um serviço de diretório para redes de computadores em ambientes heterogêneos
Autor: Armando Rech Filho
A informatização da sociedade moderna apoia-se cada vez mais na integração de redes de computadores, constituindo um ambiente no qual inúmeros sistemas computacionais, das mais variadas tecnologias e dos mais diversos fabricantes, interconectam-se para interoperar de forma cooperativa na busca dos resultados necessários para atingir os objetivos. Esta dispersão que aumenta à medida que cresce o número de sistemas computacionais leva à necessidade de existência de um sistema de informações capaz de localizar e fornecer informações sobre os mais variados recursos existentes na rede.
Esta necessidade motivou a ISO- Organization for Standardization a desenvolver, no âmbito do Modelo de Referência OSI-Open Systems Interconection, um padrão internacional para sistemas de diretório, definindo uma série de protocolos que são implementados de forma padronizada nos vários tipos de sistemas computacionais, para tornar transparente, para as aplicações na rede, o processo de localização de objetos. Os padrões para o Serviço de Diretório foram definidos pelo conjunto de normas ISO-9594/n e pelas recomendações da série X.500 da ITU-T-International Telecommunication Union-Telecommunication.
0 Diretório X.500, como é conhecido no mercado, é capaz de localizar e prover informações sobre qualquer tipo de objeto estes que podem ser pessoas, organizações, endereços de correio eletrônico, endereços de rede, aplicações, autorizações de acesso, recursos computacionais, produtos, serviços, enfim, qualquer tipo de objeto que seja do interesse de urna comunidade interconectada em uma rede.
ESTRUTURA DO DIRETÓRIO
0 Diretório X.500 é constituído por uma base de dados conceitual para definição de objetos, representada pela DIB-Directory Information Base, e por uma estrutura hierárquica para acesso aos objetos, representada pela DIT-Directory Information Tree. No aspecto organizacional, possui abrangência global no domínio das redes inter- conectadas, sendo visto como uma única base de dados, operando, porém, de forma distribuída através de um número ilimitado de sistemas computacionais, onde cada ambiente pode ter a sua própria base de diretório.
A DIB consiste de um conjunto de informações estruturadas no conceito de orientação a objetos, sendo composta por entradas, denominadas de entradas de Diretório ou entradas de objeto, as quais representam os objetos do mundo real, contendo as respectivas informações características. As recomendações da série X.500 padronizam apenas a estrutura lógica do Diretório não se preocupando com a forma de armazenamento da DIB nos sistemas de arquivos de cada ambiente operacional na rede.
Um objeto no Diretório é descrito por um conjunto de atributos. Cada atributo, por sua vez, possui um tipo de atributo e um ou mais valores de atributo, conforme representado esquematicamente na Figura 1.
Objetos que possuem as mesmas características e que, portanto, são de um mesmo tipo, são agrupados em classes de objetos. Assim, existem as classes das pessoas, das organizações, dos países, das aplicações, dos endereços de redes e outras. A especificação de uma classe de objeto define os seus atributos, classificando-os entre mandatórios, os quais, por serem relevantes, devem estar sempre presentes, e os opcionais, que complementam a sua definição. Aplicam-se às definições de classes de objetos os conceitos de hierarquia de classes, ou seja, novas classes podem ser definidas a partir de super-classes, herdando destas os seus atributos. A Figura 2 exemplifica a estruturação de uma classe de objeto, corri valores de atributos para uma determinada instância, no caso a organização CELEPAR.
CLASSE DE OBJETO: organização
0 Diretório possue uma série de classes de objetos e uma série de tipos de atributos já definidos de forma padrão para uso universal. Dentre os objetos padronizados encontram-se, na recomendação X.521, classes como topo do Diretório (é uma classe raiz herdada obrigatoriamente por todas as classes), país, localidade, oganização, unidade da organização, pessoa, pessoa residencial, pessoa organizacional, processo de aplicação, DSA de Diretório dispositivo, dentre outros. Dentre os tipos de atributos padronizados pela recomendação X.520, destacam-se classe de objeto (obrigatório para todos os objetos), nome de país, nome de localidade, sigla de estado, endereço de ruas, categoria de negócio, número de telefone e de fax, endereço de rede X.25, nome e sobrenome de pessoa, nome de organização e de unidade da organização, código postal, caixa postal, endereço de aplicações e senha de usuário. Estas classes de objetos e tipos de atributos padronizados podem ser utilizados pelo usuário na criação de novas classes de objetos para atender as necessidades de suas aplicações. Também existem padronizações de sintaxe para os valores mais comumente encontrados nos atributos de objetos.
Para a especificação da DIB, as normas definem o denominado Esquema do Diretório, o qual consiste de um conjunto de regras estruturais que provêm moldes para a definição das classes de objetos, tipos de atributos e sintaxes para os atributos. Estes moldes, disponíveis para o projetista das aplicações de Diretório através de três macros, OBJECT-CLASS, ATTRIBUTE e ATTRIBUTE-SYNTAX, garantem consistência nas definições, prevenindo contra o uso de tipo de atributo inapropriado em uma dada classe de objeto, ou a adição de um valor com uma sintaxe que não combine com a sintaxe definida para um determinado tipo de atributo.
A DIT, estruturada de forma hierárquica, reflete o relacionamento natural que existe entre os objetos no mundo real. Considerando que o Diretório tem como principal característica ser único em termos de abrangência e distribuído em termos de implementação, a escolha do modelo hierárquico favorece dois aspectos importantes da sua administração. Primeiramente, como cada nó da árvore possue um único caminho até a raiz, este caminho pode ser utilizado para identificação não ambígua na nomeação dos objetos associados à cada nó da estrutura. Diferentes instâncias de um objeto podem ser implementadas em nós distintos com o mesmo nome, como é o caso, por exemplo, de pessoas que possuem o mesmo nome mas que trabalham em organizações diferentes, ou processos de aplicações que possuem o mesmo nome e operam em computadores diferentes. Em segundo lugar, como o Diretório possui um número muito grande e crescente de entradas, é possível delegar autoridades administrativas a partir de um determinado nó. Por exemplo, cada país pode assumir responsabilidade sobre as entradas que pertençam ao seu domínio, podendo estes, por sua vez, delegarem responsabilidade para organizações administrarem seus segmentos da árvore, e assim por diante.
Cada nível na estrutura da DIT é associado a uma determinada classe de objeto. Para o projeto de um determinado nível, a primeira tarefa a ser desenvolvida é a determinação da classe de objeto do Diretório e dos atributos que serão utilizados na nomeação dos objetos. A Figura 3 mostra um exemplo de estrutura da DIT, onde o primeiro nível é composto pela classe país, nomeada pelo atributo país(C=), o segundo nível é composto pela classe organização, nomeado pelo atributo organização (0=), e o terceiro compreende a classe unidade da organização, nomeada pelo atributo unidadeOrganização(OU=).
A DIT representa o modelo conceitual de organização do Diretório. A sua implementação no sistema de arquivos em cada ambiente operacional não está sujeita a qualquer tipo de padronização, ficando a critério de cada implementador. 0 importante em uma rede composta por ambientes heterogêneos, é que cada sistema possa ser acessado para oferecer os serviços de Diretório. solicitados, de acordo com o padrão de organização lógica definido.
0 nome de uma entrada de objeto no Diretório é denominado RDN-Relative Distinguished Name, ou nome característico relativo, o qual é constituído por um conjunto de atributos diferenciadores, que são escolhidos pelo administrador do Diretório. para cada classe de objeto. Os valores dos atributos diferenciadores de um RDN têm que ser únicos sob um determinado nó da estrutura da DIT. Para que um determinado objeto possa também ser unicamente identificado em todo o Diretório. os RDNs são encadeados seguindo os níveis imediatamente superiores na DIT, constituindo uma seqüência ordenada, que parte da raiz e se estende até o nível da entrada que está sendo endereçada. Esta concatenação ordenada de RDN é denominada dn Name, ou nome característico. A Figura 4 apresenta exemplos de RDNs e de DNs associados à estrutura da DIT exemplificada na Figura 3.
Figura 4 - Exemplos de nomeação de entradas no diretório.
SERVIÇOS DE ACESSO
Os serviços do Diretório são providos aos seus usuários através de dois agentes, o DSA-Directory Service Agent, que é o agente servidor do Diretório e do DUA-Directory User Agent, que é o agente de interfaceamento com a aplicação do usuário, cujas especificações estão contidas na recomendação X.51 1. A comunicação entre os agentes se dá através do uso de dois protocolos, o DAP-Directory Access Protocol, que é o protocolo de acesso ao Diretório o qual estabelece as regras para comunicação entre o DUA e o DSA, e o DSP-Directory Service Profocol, protocolo de serviços do Diretório, que determina a forma de cooperação entre os diversos DSAs que compõem o Diretório. Estes protocolos são especificados na recomendação X.519. A relação entre agentes e protocolos é esquematicamente mostrada na Figura 5.
0 DUA é um processo de aplicação que assiste ao usuário, que pode ser uma pessoa, através de uma interface interativa, ou então um programa de aplicação, na preparação das operações que o mesmo pretende realizar, seja uma leitura, uma pesquisa ou uma modificação de informações no Diretório. Para a prestação do serviço requerido pelo usuário, o DUA estabelece uma ligação ou associação com o Diretório, interagindo através do protocolo DAP com um DSA previamente definido, o qual pode estar em seu próprio ambiente operacional ou em um ambiente operacional remoto.
0 DSA é também um processo de aplicação, responsável pela resposta à solicitação efetuada pelo DUA. Caso a informação não esteja contida no seu domínio, uma vez que o Diretório, é implementado de forma distribuída, é função do DSA prover a busca nos DSAs dos demais domínios, através do protocolo DSP, retornando a resposta ou uma referência de onde a informação requisitada pode ser encontrada, de acordo com o método de pesquisa escolhido na implementação.
Os serviços do Diretório, definidos na recomendação X.511 são oferecidos através de acesso a portas que implementam os protocolos DAP e DSP, portas estas que se comunicam entre dois sistemas através dos serviços de operação remota oferecidos pelo elemento de serviço de aplicação de uso genérico ROSE-Remote Operations Service Element, da camada de aplicação do modelo OSI. Cada porta executa as operações para prover os serviços ao usuário através de um elemento de serviço de aplicação, ASE-Application Service Element, específico da camada de aplicação do modelo OSI para o Diretório.
Atualmente a padronização do Diretório. define três portas para operações sobre a DIB: portas para interrogação denominadas Read, para acesso a um objeto específico, e Search, para pesquisar um conjunto de objetos, e ainda a porta denominada Modify, para proceder modificações.
A porta Read, que possui os protocolos implementados pelo elemento de serviço de aplicação readASE, permite ao usuário o acesso a informações da entrada de um objeto específico da DIB, podendo ser:
Read: permite ao DUA recuperar informações da entrada do objeto especificado pelos argumentos, os quais contêm o dn da entrada do objeto, acompanhado da lista dos atributos que se deseja recuperar.
Compare: efetua a comparação de valor de um determinado atributo de uma entrada de objeto particular, representado pelo seu dn, com um ou mais valores que são informados como parâmetro na operação, retornado o resultado da comparação. Um exemplo de uso desta operação é a verificação de uma senha de acesso contida em um objeto no Diretório, contra um valor fornecido pelo usuário.
A porta Search, implementada pelo elemento de serviço de aplicação searchASE, tem como função proceder pesquisa sobre um conjunto de objetos no Diretório, podendo ser de duas formas:
List: retorna a lista dos subordinados diretos da entrada do objeto especificado. Considerando a Figura 3, que exemplifica uma estrutura de DIT, a execução do List com o objeto país, com valor de atributo C=BR, retorna a lista das organizações que pertencem ao Brasil na árvore do Diretório, ou seja O=Cefet e O=Celepar.
Search: retorna a subárvore inteira da DIB, pertencente à entrada do objeto especificado na operação, não restringindo ao primeiro nível de subordinação como ocorre no List. Os argumentos incluem, além do dn da entrada do objeto base da pesquisa, o parâmetro de subconjunto, definindo o escopo de pesquisa, o parâmetro de filtro com condições que limitam o volume dos resultados retornados, e o parâmetro de seleção, que define os atributos de cada entrada que serão apresentados no resultado.
A porta Modify, implementada pelo elemento de serviço de aplicação modifyASE, oferece serviços de modificações sob a DIB, contando atualmente com a existência de quatro operações definidas:
AddEntry: adiciona uma nova entrada de objeto à DIT, estando previsto para o futuro a possibilidade de adição de uma subárvore inteira. Os argumentos contém o dn da entrada de objeto superior, sob o qual o novo objeto vai ser inserido, e o conjunto das informações que compreendem a nova entrada.
RemoveEntry: remove uma entrada de objeto, podendo também ser estendida futuramente para possibilitar remoção de subárvore completas da DIT.
ModifyEntry: efetua modificações sobre uma entrada existente no Diretório, compreendendo as seguintes possibilidades: adicionar um novo atributo, remover atributos existentes, adicionar, modificar ou remover valores de atributos.
ModifyRDN: modifica o RDN, nome característico relativo de uma entrada de objeto, tendo como argumentos o dn da entrada do objeto cujo RDN vai ser modificado e o novo RDN.
OPERAÇÕES DE ACESSO DISTRIBUÍDO
As operações remotas entre os DSAs, que ocorrem quando a informação solicitada não se encontra no DSA pesquisado, são especificadas pelo protocolo DSP, que utiliza os mesmos tipos de portas descritas acima para o DAP, sendo estas denominadas respectivamente Chained Read, Chained Search e Chained Modify.
A resposta a uma consulta do usuário pode ser precedida por uma pesquisa completa sobre toda a estrutura do Diretório, distribuído. Para isto, cada DSA precisa conhecer quais informações são mantidas por outros DSAs, e de que forma podem ser acessadas, para o que são especificados mecanismos de navegação de forma a garantir que a DIT inteira seja potencialmente pesquisada. Esta navegação é realizada através de um sistema inteligente de conhecimento, cujas informações são armazenadas em cada DSA, contendo referências aos contextos existentes nos demais DSAs. As informações de conhecimento permitem ao DSA saber onde seus contextos de nomeação estão posicionados na DIT global. Sempre que for requisitado o acesso a uma entrada de objeto que não esteja sob a autoridade administrativa do DSA ao qual o usuário estabeleceu associação, este DSA procura, em suas informações de conhecimento, a localização da autoridade administrativa responsável pela raiz do contexto de nome que contém a entrada. As informações de conhecimento podem ser expressas em termos de cinco tipos de referências:
Referências internas: o DSA precisa manter uma referência interna para cada entrada no Diretório, que esteja sob sua autoridade administrativa, a qual consiste do RDN da respectiva entrada e da localização onde a entrada está armazenada.
Referências subordinadas: para cada entrada imediatamente abaixo de qualquer das entradas de seu contexto de nomeação, e que esteja em um contexto externo, o DSA mantém uma referência subordinada que constitui-se do RDN da entrada e do DSA no qual a mesma está localizada.
Referência superior: cada DSA possui uma referência apontando para o DSA que mantém o contexto de nomeação imediatamente superior. Estas referências não existem para os DSAs de primeiro nível, ou seja, aqueles que estão localizados imediatamente abaixo da raiz do Diretório,
Referência cruzada: com o objetivo de tornar a pesquisa mais rápida, um DSA pode ter ponteiros de referência direta para contextos de nomes externos, compostos pelo prefixo de contexto e o DSA que mantém aquele contexto. Este tipo de referência é opcional no Diretório, podendo um DSA armazenar qualquer número de referências cruzadas.
Referência subordinada não específica: consiste de um ponteiro para um DSA externo que mantém um ou mais contextos de nomes subordinados imediatos de uma entrada. Difere da referência subordinada por não serem conhecidos os prefixos de contexto dos subordinados.
A navegação entre DSAs no Diretório pode ser realizada de três formas básicas, que podem ser utilizadas isoladamente ou combinadas em um sistema:
Encadeamento: esta forma estabelece uma passagem seqüencial da solicitação do usuário entre os diversos DSAs, até atingir o DSA que mantém a entrada de objeto que contém as informações requeridas pelo usuário. 0 resultado da pesquisa encadeada retorna ao DSA originador na seqüência inversa, para ser entregue ao DUA requisitante.
Referência: quando o DSA que está sendo acessado não consegue resolver a pesquisa, ele devolve ao solicitante uma referência de qual DSA pode conter as informações requisitadas pelo usuário. É estabelecida então uma nova ligação com o DSA indicado e assim procede até que seja encontrado o DSA que pode atender a solicitação.
Múltiplos caminhos: o DSA ao qual o DUA estabeleceu uma associação, dispara uma mesma consulta simultaneamente para vários outros DSAs, cada um retornando uma resposta ao DSA interessado.
CONTEXTOS DO DIRETÓRIO
Tendo em vista a organização conceitual das entradas de objetos na estrutura hierárquica definida pela DIT, e os aspectos de distribuição do Diretório, são estabelecidos contextos de nomeação mantidos sob responsabilidade exclusiva de um determinado DSA. Um contexto de nomeação representa um fragmento da DIT, composto por uma subárvore, ou parte dela, na estrutura do Diretório, podendo um mesmo DSA manter vários contextos.
0 início de um contexto de nomeação é um nó da DIT, que é denominado vértice inicial do contexto, ou raiz do contexto, sendo o dn da entrada do vértice inicial denominado prefixo de contexto. 0 contexto estende-se pela estrutura da subárvore subordinada ao vértice inicial até que não se encontrem mais referências subordinadas, ou então, até que se encontre um outro nó que se constitui no vértice inicial de um novo contexto de nomeação.
0 Diretório, além das informações das entradas de objetos, possui também informações de conhecimento sobre os contextos de nomes que são mantidos por um determinado DSA, e de que forma estes contextos estão posicionados na DIT como um todo. A figura 6 mostra uma estrutura de contextos de nomeação. No exemplo, o dsabr é o DSA que abriga um único contexto de nomeação denominado ContextoBR, o qual atribui autoridade de administração de nomes para outros dois contextos denominados ContextoSP e ContextoPR, para as localidades São Paulo e Paraná respectivamente. 0 DSASP contém somente o contextoSP, enquanto no DSAPR estão contidos três contextos de nomeação. 0 ContextoPR, além de administrar a nomeação dos objetos em seu próprio contexto, atribui ainda direitos de nomeação para os outros dois contextos subordinados, ContextoCEL e ContextoCFT, para as organizações Celepar e Cefet respectivamente.
Os prefixos de contexto para a estrutura mostrada na Figura 6 são os seguintes: { C=BR }, {C=BR, L=SP }, { C=BR, L=PR}, {C=BR, L=PR, O=Celepar } e { C=BR, L=PR, O=Cefet }.
A administração de nomeações no Diretório distribuído é efetuada por domínios de gerenciamento denominados DMD-Directory Management Domain. Cada domínio é constituído por um ou mais DSAs e zero ou mais DUAs, e o conjunto dos domínios, agregando todas as partes da DIB, forma então o Diretório global. Existem dois tipos de domínio: ADDMD-Administration Directory Management Domain, os quais são operados por empresas públicas, como é o caso das operadoras de telecomunicações, e PRDMD-Private Directory Management Domain, que são implementados por outras organizações para uso privativo.
REPLICAÇÃO DE INFORMAÇÕES NO DIRETÓRIO
No conceito de diretório distribuído, a rede de computadores que interliga os equipamentos onde residem os DSAs, impõe limitações à operação do Diretório com respeito a tempo de resposta para as consultas e disponibilidade para acesso em caso de falhas de qualquer dos componentes envolvidos. As operações locais em um sistema computacional, por sua vez, não são influenciadas por fatores externos. Por isso, o Diretório define padrões para implementação de cópias replicadas de partes da DIT remota no ambiente local dos usuários, garantindo disponibilidade e performance compatíveis com a qualidade de serviço requerida.
A replicação do Diretório é efetuada sob forma de espelhamento de imagem, ou sffidowing, de parte da DIT de um DSA para outro. Para que possa ocorrer um espelhamento de imagem entre dois DSAs é necessário que seja estabelecido um acordo entre as autoridades administrativas dos mesmos, acordo este que inclui no mínimo termos como a especificação de subárvore, entradas e atributos a serem replicados e a forma como as atualizações das imagens replicadas serão efetuadas.
0 processo de replicação do Diretório requer dois protocolos específicos para sua operacionalização: o DOP-Directory Operational Binding Prolocol, protocolo de ligação operacional, e o DISP-Directory Information Shadowing Protocol, protocolo de informação de espeIhamento de imagem. Estes protocolos e os procedimentos de replicação estão definidos na recomendação X.525. 0 DOP, protocolo de ligação operacional, é utilizado para o estabelecimento, modificação e terminação de uma ligação entre DSAs para a replicação de informações através do espelhamento de imagem de parte da DIT, Estabelece o mútuo entendimento entre as partes envolvidas, as quais expressam a concordância para engajamento em um processo de interação. 0 DISP, protocolo de informação de espelhamento de imagem, operacionaliza efetivamente o processo de replicação de informações, sendo executado a partir do estabelecimento do acordo feito entre os DSAs através do protocolo DOP.
APLICAÇÕES PARA 0 DIRETÓRIO
As utilizações de Diretório que têm sido propostas, compreendem ainda poucos tipos básicos de aplicações, apesar de sua potencialidade como instrumento para disponibilização de informações em redes de computadores. Uma das aplicações mais conhecidas é a utilização do Diretório para localização de organizações, pessoas e aplicações em uma rede, operada sob a forma de acesso a uma entrada específica da DIT, ou então através de entradas múltiplas classificadas por determinada característica comum aos objetos em pesquisa, como uma lista telefônica amarela. Um dos exemplos é o uso do Diretório em sistemas de correio eletrônico, onde, possuindo-se os nomes pelos quais os destinatários são conhecidos, o acesso ao Diretório permite obter os respectivos endereços X400 e o endereço de rede onde estão localizadas as caixas postais de cada um, para onde as mensagens devem ser encaminhadas.
Outra aplicação importante, que inclusive é padronizada pela recomendação X.509, é a de certificação de identidade de usuários na rede, a qual pode ser realizada através de dois métodos básicos denominados: Autenticação Simples, Simple Authontication, e Autenticação Forte, Strong Authentication.
A autenticação simples baseia-se no princípio comum de verificação de senha de acesso do usuário, como encontramos normalmente em qualquer aplicação. Cada usuário que deseja ser identificado possui uma entrada no Diretório, na qual um dos atributos é a sua senha secreta. Ao solicitar o acesso, o usuário informa o seu dn e a sua senha, a qual é verificada através de uma operação Compare, sendo devolvida como resposta uma confirmação ou uma negativa.
A autenticação forte é realizada com o uso de técnicas de criptografia baseada em chave pública, onde cada usuário possui uma chave pública e uma chave privada. Este sistema possui como propriedades a inviabilidade de se derivar a chave privada a partir da chave pública correspondente, e que uma mensagem criptografada com a chave pública só pode ser decifrada com o uso da chave privada correspondente e vice-versa. Assume-se que a chave privada é mantida em segredo pelo usuário, enquanto a chave pública do usuário é armazenada em sua entrada no Diretório.
Para aplicações como as acima referenciadas, os produtos de mercado que implementam as recomendações X.500 podem ser utilizados diretamente, sem esforços de desenvolvimento de aplicação, necessitando um trabalho de modelagem de um diretório para a organização, inserido no contexto de um diretório global, para acessar e ser acessado pela comunidade universal dos usuários de Diretório. Entretanto, um sistema que implementa Serviço de Diretório possui uma série de recursos e capacidades já disponíveis para que desenvolvedores de aplicações utilizem na solução de uma grande quantidade de problemas. Duas propostas de aplicação são apresentadas para ilustrar a potencialidade do Diretório:
Uma delas tem como objetivo facilitar os acessos de um usuário de uma rede a múltiplos ambientes operacionais através do uso de uma identificação única. Nas redes corporativas heterogêneas existe uma grande variedade de ambientes operacionais de diferentes tecnologias, cada um deles com uma estruturação diferente para identificação do usuário. Por outro lado, mesmo para ambientes de mesma tecnologia, cada um pode ter uma filosofia diferente de identificação, que fica por conta do administrador. Desta forma é comum que um mesmo usuário que possua acessos a vários ambientes em uma rede corporativa, precise usar diversas identificações até o limite de uma por ambiente. A proposta, neste caso, reside na definição de uma classe de objeto do Diretório, cujo principal tipo de atributo é a identificação única do usuário, contendo outros atributos para informar quais são os ambientes na rede corporativa que o usuário possui permissão de acesso e quais são as respectivas identificações em cada um deles, e as respectivas senhas de acesso. A aplicação desenvolvida é uma interface de um DUA, a qual, além de identificar o usuário de forma única na rede, pode ainda prover a execução automática dos procedimentos de acesso ao ambiente desejado.
Outra proposta de aplicação interessante do Diretório é o suporte para uma aplicação originada do conceito de uma função denominada Trader, existente nas definições do Modelo de Referência para Processamento Distribuído Aberto da ISO, ODP-Open Distributed Processing. 0 Trader executa uma função de agente de negociação entre provedores e tomadores de serviços em uma rede de computadores. Um determinado provedor que possui serviços para oferecer, efetua uma operação de exportação para o Trader, com a finalidade de anunciar a existência do serviço. Um usuário da rede, ao necessitar um determinado serviço, executa uma operação de importação junto ao Trader, no sentido de obter as referências necessárias para localização do serviço desejado. A ligação entre o tomador e o provedor do serviço é efetuada diretamente entre ambos, com a utilização das interfaces repassadas pelo Trader. Uma classe de objetos do Diretório pode ser estruturada para armazenar as informações sobre as características de serviços do provedor, as interfaces requeridas para acesso aos serviços, o endereço de rede onde o provedor está instalado naquele momento, dentre outras informações. Uma aplicação de interface com o DUA executa as funções do Trader sendo possível, inclusive, que uma aplicação provedora de serviços migre de um ambiente para outro de forma transparente para a aplicação tomadora daquele serviço.
EXPERIÊNCIAS DE UTILIZAÇÃO
As experiências no Brasil limitam-se ainda ao meio acadêmico através de um produto denominado QUIPU, que é uma implantação de diretório de domínio público, tendo sido desenvolvido com o intuito de experimentação através de um piloto de diretório global, compatível com as especificações das recomendações X.500. Este piloto está contido no projeto denominado Paradise que implementa este diretório, cujo DSA mestre global é administrado pelo ULCC-University of London Computíng Center, a quem todos os demais, no mundo inteiro, se referem. No Brasil o DSA mestre é o da UFRGS-Universidade federal do Rio Grande do Sul, a quem os demais domínios estão ligados. Além da UFRGS, os outros domínios existentes no Brasil atualmente são os do CPQD-Telebrás, UFMG-Universidade Federal de Minas Gerais e do CEFET-Centro Federal de Educação Tecnológica do Paraná, este último implantado no ano passado. As classes de objeto encontradas nas pesquisas efetuadas no diretório do projeto Paradise são: C=país, 0=organização, OU=unidade da organização e CN=pessoa.
Para uso comercial, existem informações de que a Embratel está em processo de aquisição de um sistema para o fornecimento de serviços públicos de diretório, podendo tornar-se o ADMDD para o Brasil, constituindo-se, assim, no ponto de entrada e saída do país para integração com os diretórios de outros países, assim como acontece com o sistema de correio eletrônico público X.400 baseado no sistema STM-400. As demais organizações no Brasil estariam ligadas hierarquicamente como subárvore da entrada C=BR. Em âmbito privativo, o primeiro projeto de Diretório em fase de estruturação é o do governo federal, para implantação em toda a administração pública.
Na Rede Integrada de Comunicação de Dados e Serviços, desenvolvida e operada pela CELEPAR para uso pelos órgãos do Governo do Estado do Paraná, o projeto para desenvolvimento e implantação de um Serviço de Diretório, baseado nas recomendações X.500, deverá iniciar ainda neste segundo semestre de 1995 para implantação no próximo ano. É mais um serviço da Rede que manterá o Paraná ligado ao mundo.
A informatização da sociedade moderna apoia-se cada vez mais na integração de redes de computadores, constituindo um ambiente no qual inúmeros sistemas computacionais, das mais variadas tecnologias e dos mais diversos fabricantes, interconectam-se para interoperar de forma cooperativa na busca dos resultados necessários para atingir os objetivos. Esta dispersão que aumenta à medida que cresce o número de sistemas computacionais leva à necessidade de existência de um sistema de informações capaz de localizar e fornecer informações sobre os mais variados recursos existentes na rede.
Esta necessidade motivou a ISO- Organization for Standardization a desenvolver, no âmbito do Modelo de Referência OSI-Open Systems Interconection, um padrão internacional para sistemas de diretório, definindo uma série de protocolos que são implementados de forma padronizada nos vários tipos de sistemas computacionais, para tornar transparente, para as aplicações na rede, o processo de localização de objetos. Os padrões para o Serviço de Diretório foram definidos pelo conjunto de normas ISO-9594/n e pelas recomendações da série X.500 da ITU-T-International Telecommunication Union-Telecommunication.
0 Diretório X.500, como é conhecido no mercado, é capaz de localizar e prover informações sobre qualquer tipo de objeto estes que podem ser pessoas, organizações, endereços de correio eletrônico, endereços de rede, aplicações, autorizações de acesso, recursos computacionais, produtos, serviços, enfim, qualquer tipo de objeto que seja do interesse de urna comunidade interconectada em uma rede.
ESTRUTURA DO DIRETÓRIO
0 Diretório X.500 é constituído por uma base de dados conceitual para definição de objetos, representada pela DIB-Directory Information Base, e por uma estrutura hierárquica para acesso aos objetos, representada pela DIT-Directory Information Tree. No aspecto organizacional, possui abrangência global no domínio das redes inter- conectadas, sendo visto como uma única base de dados, operando, porém, de forma distribuída através de um número ilimitado de sistemas computacionais, onde cada ambiente pode ter a sua própria base de diretório.
A DIB consiste de um conjunto de informações estruturadas no conceito de orientação a objetos, sendo composta por entradas, denominadas de entradas de Diretório ou entradas de objeto, as quais representam os objetos do mundo real, contendo as respectivas informações características. As recomendações da série X.500 padronizam apenas a estrutura lógica do Diretório não se preocupando com a forma de armazenamento da DIB nos sistemas de arquivos de cada ambiente operacional na rede.
Um objeto no Diretório é descrito por um conjunto de atributos. Cada atributo, por sua vez, possui um tipo de atributo e um ou mais valores de atributo, conforme representado esquematicamente na Figura 1.
Objetos que possuem as mesmas características e que, portanto, são de um mesmo tipo, são agrupados em classes de objetos. Assim, existem as classes das pessoas, das organizações, dos países, das aplicações, dos endereços de redes e outras. A especificação de uma classe de objeto define os seus atributos, classificando-os entre mandatórios, os quais, por serem relevantes, devem estar sempre presentes, e os opcionais, que complementam a sua definição. Aplicam-se às definições de classes de objetos os conceitos de hierarquia de classes, ou seja, novas classes podem ser definidas a partir de super-classes, herdando destas os seus atributos. A Figura 2 exemplifica a estruturação de uma classe de objeto, corri valores de atributos para uma determinada instância, no caso a organização CELEPAR.
CLASSE DE OBJETO: organização
0 Diretório possue uma série de classes de objetos e uma série de tipos de atributos já definidos de forma padrão para uso universal. Dentre os objetos padronizados encontram-se, na recomendação X.521, classes como topo do Diretório (é uma classe raiz herdada obrigatoriamente por todas as classes), país, localidade, oganização, unidade da organização, pessoa, pessoa residencial, pessoa organizacional, processo de aplicação, DSA de Diretório dispositivo, dentre outros. Dentre os tipos de atributos padronizados pela recomendação X.520, destacam-se classe de objeto (obrigatório para todos os objetos), nome de país, nome de localidade, sigla de estado, endereço de ruas, categoria de negócio, número de telefone e de fax, endereço de rede X.25, nome e sobrenome de pessoa, nome de organização e de unidade da organização, código postal, caixa postal, endereço de aplicações e senha de usuário. Estas classes de objetos e tipos de atributos padronizados podem ser utilizados pelo usuário na criação de novas classes de objetos para atender as necessidades de suas aplicações. Também existem padronizações de sintaxe para os valores mais comumente encontrados nos atributos de objetos.
Para a especificação da DIB, as normas definem o denominado Esquema do Diretório, o qual consiste de um conjunto de regras estruturais que provêm moldes para a definição das classes de objetos, tipos de atributos e sintaxes para os atributos. Estes moldes, disponíveis para o projetista das aplicações de Diretório através de três macros, OBJECT-CLASS, ATTRIBUTE e ATTRIBUTE-SYNTAX, garantem consistência nas definições, prevenindo contra o uso de tipo de atributo inapropriado em uma dada classe de objeto, ou a adição de um valor com uma sintaxe que não combine com a sintaxe definida para um determinado tipo de atributo.
A DIT, estruturada de forma hierárquica, reflete o relacionamento natural que existe entre os objetos no mundo real. Considerando que o Diretório tem como principal característica ser único em termos de abrangência e distribuído em termos de implementação, a escolha do modelo hierárquico favorece dois aspectos importantes da sua administração. Primeiramente, como cada nó da árvore possue um único caminho até a raiz, este caminho pode ser utilizado para identificação não ambígua na nomeação dos objetos associados à cada nó da estrutura. Diferentes instâncias de um objeto podem ser implementadas em nós distintos com o mesmo nome, como é o caso, por exemplo, de pessoas que possuem o mesmo nome mas que trabalham em organizações diferentes, ou processos de aplicações que possuem o mesmo nome e operam em computadores diferentes. Em segundo lugar, como o Diretório possui um número muito grande e crescente de entradas, é possível delegar autoridades administrativas a partir de um determinado nó. Por exemplo, cada país pode assumir responsabilidade sobre as entradas que pertençam ao seu domínio, podendo estes, por sua vez, delegarem responsabilidade para organizações administrarem seus segmentos da árvore, e assim por diante.
Cada nível na estrutura da DIT é associado a uma determinada classe de objeto. Para o projeto de um determinado nível, a primeira tarefa a ser desenvolvida é a determinação da classe de objeto do Diretório e dos atributos que serão utilizados na nomeação dos objetos. A Figura 3 mostra um exemplo de estrutura da DIT, onde o primeiro nível é composto pela classe país, nomeada pelo atributo país(C=), o segundo nível é composto pela classe organização, nomeado pelo atributo organização (0=), e o terceiro compreende a classe unidade da organização, nomeada pelo atributo unidadeOrganização(OU=).
A DIT representa o modelo conceitual de organização do Diretório. A sua implementação no sistema de arquivos em cada ambiente operacional não está sujeita a qualquer tipo de padronização, ficando a critério de cada implementador. 0 importante em uma rede composta por ambientes heterogêneos, é que cada sistema possa ser acessado para oferecer os serviços de Diretório. solicitados, de acordo com o padrão de organização lógica definido.
0 nome de uma entrada de objeto no Diretório é denominado RDN-Relative Distinguished Name, ou nome característico relativo, o qual é constituído por um conjunto de atributos diferenciadores, que são escolhidos pelo administrador do Diretório. para cada classe de objeto. Os valores dos atributos diferenciadores de um RDN têm que ser únicos sob um determinado nó da estrutura da DIT. Para que um determinado objeto possa também ser unicamente identificado em todo o Diretório. os RDNs são encadeados seguindo os níveis imediatamente superiores na DIT, constituindo uma seqüência ordenada, que parte da raiz e se estende até o nível da entrada que está sendo endereçada. Esta concatenação ordenada de RDN é denominada dn Name, ou nome característico. A Figura 4 apresenta exemplos de RDNs e de DNs associados à estrutura da DIT exemplificada na Figura 3.
Nível da DIT | RDN | dn |
país | C= BR | {C=BR} |
organização | O= CELEPAR | {O=BR O=CELEPAR} |
unidadeOrganização | OU=Tecn | {C=BR, O=CELEPAR, OU=Tecn} |
Figura 4 - Exemplos de nomeação de entradas no diretório.
SERVIÇOS DE ACESSO
Os serviços do Diretório são providos aos seus usuários através de dois agentes, o DSA-Directory Service Agent, que é o agente servidor do Diretório e do DUA-Directory User Agent, que é o agente de interfaceamento com a aplicação do usuário, cujas especificações estão contidas na recomendação X.51 1. A comunicação entre os agentes se dá através do uso de dois protocolos, o DAP-Directory Access Protocol, que é o protocolo de acesso ao Diretório o qual estabelece as regras para comunicação entre o DUA e o DSA, e o DSP-Directory Service Profocol, protocolo de serviços do Diretório, que determina a forma de cooperação entre os diversos DSAs que compõem o Diretório. Estes protocolos são especificados na recomendação X.519. A relação entre agentes e protocolos é esquematicamente mostrada na Figura 5.
0 DUA é um processo de aplicação que assiste ao usuário, que pode ser uma pessoa, através de uma interface interativa, ou então um programa de aplicação, na preparação das operações que o mesmo pretende realizar, seja uma leitura, uma pesquisa ou uma modificação de informações no Diretório. Para a prestação do serviço requerido pelo usuário, o DUA estabelece uma ligação ou associação com o Diretório, interagindo através do protocolo DAP com um DSA previamente definido, o qual pode estar em seu próprio ambiente operacional ou em um ambiente operacional remoto.
0 DSA é também um processo de aplicação, responsável pela resposta à solicitação efetuada pelo DUA. Caso a informação não esteja contida no seu domínio, uma vez que o Diretório, é implementado de forma distribuída, é função do DSA prover a busca nos DSAs dos demais domínios, através do protocolo DSP, retornando a resposta ou uma referência de onde a informação requisitada pode ser encontrada, de acordo com o método de pesquisa escolhido na implementação.
Os serviços do Diretório, definidos na recomendação X.511 são oferecidos através de acesso a portas que implementam os protocolos DAP e DSP, portas estas que se comunicam entre dois sistemas através dos serviços de operação remota oferecidos pelo elemento de serviço de aplicação de uso genérico ROSE-Remote Operations Service Element, da camada de aplicação do modelo OSI. Cada porta executa as operações para prover os serviços ao usuário através de um elemento de serviço de aplicação, ASE-Application Service Element, específico da camada de aplicação do modelo OSI para o Diretório.
Atualmente a padronização do Diretório. define três portas para operações sobre a DIB: portas para interrogação denominadas Read, para acesso a um objeto específico, e Search, para pesquisar um conjunto de objetos, e ainda a porta denominada Modify, para proceder modificações.
A porta Read, que possui os protocolos implementados pelo elemento de serviço de aplicação readASE, permite ao usuário o acesso a informações da entrada de um objeto específico da DIB, podendo ser:
Read: permite ao DUA recuperar informações da entrada do objeto especificado pelos argumentos, os quais contêm o dn da entrada do objeto, acompanhado da lista dos atributos que se deseja recuperar.
Compare: efetua a comparação de valor de um determinado atributo de uma entrada de objeto particular, representado pelo seu dn, com um ou mais valores que são informados como parâmetro na operação, retornado o resultado da comparação. Um exemplo de uso desta operação é a verificação de uma senha de acesso contida em um objeto no Diretório, contra um valor fornecido pelo usuário.
A porta Search, implementada pelo elemento de serviço de aplicação searchASE, tem como função proceder pesquisa sobre um conjunto de objetos no Diretório, podendo ser de duas formas:
List: retorna a lista dos subordinados diretos da entrada do objeto especificado. Considerando a Figura 3, que exemplifica uma estrutura de DIT, a execução do List com o objeto país, com valor de atributo C=BR, retorna a lista das organizações que pertencem ao Brasil na árvore do Diretório, ou seja O=Cefet e O=Celepar.
Search: retorna a subárvore inteira da DIB, pertencente à entrada do objeto especificado na operação, não restringindo ao primeiro nível de subordinação como ocorre no List. Os argumentos incluem, além do dn da entrada do objeto base da pesquisa, o parâmetro de subconjunto, definindo o escopo de pesquisa, o parâmetro de filtro com condições que limitam o volume dos resultados retornados, e o parâmetro de seleção, que define os atributos de cada entrada que serão apresentados no resultado.
A porta Modify, implementada pelo elemento de serviço de aplicação modifyASE, oferece serviços de modificações sob a DIB, contando atualmente com a existência de quatro operações definidas:
AddEntry: adiciona uma nova entrada de objeto à DIT, estando previsto para o futuro a possibilidade de adição de uma subárvore inteira. Os argumentos contém o dn da entrada de objeto superior, sob o qual o novo objeto vai ser inserido, e o conjunto das informações que compreendem a nova entrada.
RemoveEntry: remove uma entrada de objeto, podendo também ser estendida futuramente para possibilitar remoção de subárvore completas da DIT.
ModifyEntry: efetua modificações sobre uma entrada existente no Diretório, compreendendo as seguintes possibilidades: adicionar um novo atributo, remover atributos existentes, adicionar, modificar ou remover valores de atributos.
ModifyRDN: modifica o RDN, nome característico relativo de uma entrada de objeto, tendo como argumentos o dn da entrada do objeto cujo RDN vai ser modificado e o novo RDN.
OPERAÇÕES DE ACESSO DISTRIBUÍDO
As operações remotas entre os DSAs, que ocorrem quando a informação solicitada não se encontra no DSA pesquisado, são especificadas pelo protocolo DSP, que utiliza os mesmos tipos de portas descritas acima para o DAP, sendo estas denominadas respectivamente Chained Read, Chained Search e Chained Modify.
A resposta a uma consulta do usuário pode ser precedida por uma pesquisa completa sobre toda a estrutura do Diretório, distribuído. Para isto, cada DSA precisa conhecer quais informações são mantidas por outros DSAs, e de que forma podem ser acessadas, para o que são especificados mecanismos de navegação de forma a garantir que a DIT inteira seja potencialmente pesquisada. Esta navegação é realizada através de um sistema inteligente de conhecimento, cujas informações são armazenadas em cada DSA, contendo referências aos contextos existentes nos demais DSAs. As informações de conhecimento permitem ao DSA saber onde seus contextos de nomeação estão posicionados na DIT global. Sempre que for requisitado o acesso a uma entrada de objeto que não esteja sob a autoridade administrativa do DSA ao qual o usuário estabeleceu associação, este DSA procura, em suas informações de conhecimento, a localização da autoridade administrativa responsável pela raiz do contexto de nome que contém a entrada. As informações de conhecimento podem ser expressas em termos de cinco tipos de referências:
Referências internas: o DSA precisa manter uma referência interna para cada entrada no Diretório, que esteja sob sua autoridade administrativa, a qual consiste do RDN da respectiva entrada e da localização onde a entrada está armazenada.
Referências subordinadas: para cada entrada imediatamente abaixo de qualquer das entradas de seu contexto de nomeação, e que esteja em um contexto externo, o DSA mantém uma referência subordinada que constitui-se do RDN da entrada e do DSA no qual a mesma está localizada.
Referência superior: cada DSA possui uma referência apontando para o DSA que mantém o contexto de nomeação imediatamente superior. Estas referências não existem para os DSAs de primeiro nível, ou seja, aqueles que estão localizados imediatamente abaixo da raiz do Diretório,
Referência cruzada: com o objetivo de tornar a pesquisa mais rápida, um DSA pode ter ponteiros de referência direta para contextos de nomes externos, compostos pelo prefixo de contexto e o DSA que mantém aquele contexto. Este tipo de referência é opcional no Diretório, podendo um DSA armazenar qualquer número de referências cruzadas.
Referência subordinada não específica: consiste de um ponteiro para um DSA externo que mantém um ou mais contextos de nomes subordinados imediatos de uma entrada. Difere da referência subordinada por não serem conhecidos os prefixos de contexto dos subordinados.
A navegação entre DSAs no Diretório pode ser realizada de três formas básicas, que podem ser utilizadas isoladamente ou combinadas em um sistema:
Encadeamento: esta forma estabelece uma passagem seqüencial da solicitação do usuário entre os diversos DSAs, até atingir o DSA que mantém a entrada de objeto que contém as informações requeridas pelo usuário. 0 resultado da pesquisa encadeada retorna ao DSA originador na seqüência inversa, para ser entregue ao DUA requisitante.
Referência: quando o DSA que está sendo acessado não consegue resolver a pesquisa, ele devolve ao solicitante uma referência de qual DSA pode conter as informações requisitadas pelo usuário. É estabelecida então uma nova ligação com o DSA indicado e assim procede até que seja encontrado o DSA que pode atender a solicitação.
Múltiplos caminhos: o DSA ao qual o DUA estabeleceu uma associação, dispara uma mesma consulta simultaneamente para vários outros DSAs, cada um retornando uma resposta ao DSA interessado.
CONTEXTOS DO DIRETÓRIO
Tendo em vista a organização conceitual das entradas de objetos na estrutura hierárquica definida pela DIT, e os aspectos de distribuição do Diretório, são estabelecidos contextos de nomeação mantidos sob responsabilidade exclusiva de um determinado DSA. Um contexto de nomeação representa um fragmento da DIT, composto por uma subárvore, ou parte dela, na estrutura do Diretório, podendo um mesmo DSA manter vários contextos.
0 início de um contexto de nomeação é um nó da DIT, que é denominado vértice inicial do contexto, ou raiz do contexto, sendo o dn da entrada do vértice inicial denominado prefixo de contexto. 0 contexto estende-se pela estrutura da subárvore subordinada ao vértice inicial até que não se encontrem mais referências subordinadas, ou então, até que se encontre um outro nó que se constitui no vértice inicial de um novo contexto de nomeação.
0 Diretório, além das informações das entradas de objetos, possui também informações de conhecimento sobre os contextos de nomes que são mantidos por um determinado DSA, e de que forma estes contextos estão posicionados na DIT como um todo. A figura 6 mostra uma estrutura de contextos de nomeação. No exemplo, o dsabr é o DSA que abriga um único contexto de nomeação denominado ContextoBR, o qual atribui autoridade de administração de nomes para outros dois contextos denominados ContextoSP e ContextoPR, para as localidades São Paulo e Paraná respectivamente. 0 DSASP contém somente o contextoSP, enquanto no DSAPR estão contidos três contextos de nomeação. 0 ContextoPR, além de administrar a nomeação dos objetos em seu próprio contexto, atribui ainda direitos de nomeação para os outros dois contextos subordinados, ContextoCEL e ContextoCFT, para as organizações Celepar e Cefet respectivamente.
Os prefixos de contexto para a estrutura mostrada na Figura 6 são os seguintes: { C=BR }, {C=BR, L=SP }, { C=BR, L=PR}, {C=BR, L=PR, O=Celepar } e { C=BR, L=PR, O=Cefet }.
A administração de nomeações no Diretório distribuído é efetuada por domínios de gerenciamento denominados DMD-Directory Management Domain. Cada domínio é constituído por um ou mais DSAs e zero ou mais DUAs, e o conjunto dos domínios, agregando todas as partes da DIB, forma então o Diretório global. Existem dois tipos de domínio: ADDMD-Administration Directory Management Domain, os quais são operados por empresas públicas, como é o caso das operadoras de telecomunicações, e PRDMD-Private Directory Management Domain, que são implementados por outras organizações para uso privativo.
REPLICAÇÃO DE INFORMAÇÕES NO DIRETÓRIO
No conceito de diretório distribuído, a rede de computadores que interliga os equipamentos onde residem os DSAs, impõe limitações à operação do Diretório com respeito a tempo de resposta para as consultas e disponibilidade para acesso em caso de falhas de qualquer dos componentes envolvidos. As operações locais em um sistema computacional, por sua vez, não são influenciadas por fatores externos. Por isso, o Diretório define padrões para implementação de cópias replicadas de partes da DIT remota no ambiente local dos usuários, garantindo disponibilidade e performance compatíveis com a qualidade de serviço requerida.
A replicação do Diretório é efetuada sob forma de espelhamento de imagem, ou sffidowing, de parte da DIT de um DSA para outro. Para que possa ocorrer um espelhamento de imagem entre dois DSAs é necessário que seja estabelecido um acordo entre as autoridades administrativas dos mesmos, acordo este que inclui no mínimo termos como a especificação de subárvore, entradas e atributos a serem replicados e a forma como as atualizações das imagens replicadas serão efetuadas.
0 processo de replicação do Diretório requer dois protocolos específicos para sua operacionalização: o DOP-Directory Operational Binding Prolocol, protocolo de ligação operacional, e o DISP-Directory Information Shadowing Protocol, protocolo de informação de espeIhamento de imagem. Estes protocolos e os procedimentos de replicação estão definidos na recomendação X.525. 0 DOP, protocolo de ligação operacional, é utilizado para o estabelecimento, modificação e terminação de uma ligação entre DSAs para a replicação de informações através do espelhamento de imagem de parte da DIT, Estabelece o mútuo entendimento entre as partes envolvidas, as quais expressam a concordância para engajamento em um processo de interação. 0 DISP, protocolo de informação de espelhamento de imagem, operacionaliza efetivamente o processo de replicação de informações, sendo executado a partir do estabelecimento do acordo feito entre os DSAs através do protocolo DOP.
APLICAÇÕES PARA 0 DIRETÓRIO
As utilizações de Diretório que têm sido propostas, compreendem ainda poucos tipos básicos de aplicações, apesar de sua potencialidade como instrumento para disponibilização de informações em redes de computadores. Uma das aplicações mais conhecidas é a utilização do Diretório para localização de organizações, pessoas e aplicações em uma rede, operada sob a forma de acesso a uma entrada específica da DIT, ou então através de entradas múltiplas classificadas por determinada característica comum aos objetos em pesquisa, como uma lista telefônica amarela. Um dos exemplos é o uso do Diretório em sistemas de correio eletrônico, onde, possuindo-se os nomes pelos quais os destinatários são conhecidos, o acesso ao Diretório permite obter os respectivos endereços X400 e o endereço de rede onde estão localizadas as caixas postais de cada um, para onde as mensagens devem ser encaminhadas.
Outra aplicação importante, que inclusive é padronizada pela recomendação X.509, é a de certificação de identidade de usuários na rede, a qual pode ser realizada através de dois métodos básicos denominados: Autenticação Simples, Simple Authontication, e Autenticação Forte, Strong Authentication.
A autenticação simples baseia-se no princípio comum de verificação de senha de acesso do usuário, como encontramos normalmente em qualquer aplicação. Cada usuário que deseja ser identificado possui uma entrada no Diretório, na qual um dos atributos é a sua senha secreta. Ao solicitar o acesso, o usuário informa o seu dn e a sua senha, a qual é verificada através de uma operação Compare, sendo devolvida como resposta uma confirmação ou uma negativa.
A autenticação forte é realizada com o uso de técnicas de criptografia baseada em chave pública, onde cada usuário possui uma chave pública e uma chave privada. Este sistema possui como propriedades a inviabilidade de se derivar a chave privada a partir da chave pública correspondente, e que uma mensagem criptografada com a chave pública só pode ser decifrada com o uso da chave privada correspondente e vice-versa. Assume-se que a chave privada é mantida em segredo pelo usuário, enquanto a chave pública do usuário é armazenada em sua entrada no Diretório.
Para aplicações como as acima referenciadas, os produtos de mercado que implementam as recomendações X.500 podem ser utilizados diretamente, sem esforços de desenvolvimento de aplicação, necessitando um trabalho de modelagem de um diretório para a organização, inserido no contexto de um diretório global, para acessar e ser acessado pela comunidade universal dos usuários de Diretório. Entretanto, um sistema que implementa Serviço de Diretório possui uma série de recursos e capacidades já disponíveis para que desenvolvedores de aplicações utilizem na solução de uma grande quantidade de problemas. Duas propostas de aplicação são apresentadas para ilustrar a potencialidade do Diretório:
Uma delas tem como objetivo facilitar os acessos de um usuário de uma rede a múltiplos ambientes operacionais através do uso de uma identificação única. Nas redes corporativas heterogêneas existe uma grande variedade de ambientes operacionais de diferentes tecnologias, cada um deles com uma estruturação diferente para identificação do usuário. Por outro lado, mesmo para ambientes de mesma tecnologia, cada um pode ter uma filosofia diferente de identificação, que fica por conta do administrador. Desta forma é comum que um mesmo usuário que possua acessos a vários ambientes em uma rede corporativa, precise usar diversas identificações até o limite de uma por ambiente. A proposta, neste caso, reside na definição de uma classe de objeto do Diretório, cujo principal tipo de atributo é a identificação única do usuário, contendo outros atributos para informar quais são os ambientes na rede corporativa que o usuário possui permissão de acesso e quais são as respectivas identificações em cada um deles, e as respectivas senhas de acesso. A aplicação desenvolvida é uma interface de um DUA, a qual, além de identificar o usuário de forma única na rede, pode ainda prover a execução automática dos procedimentos de acesso ao ambiente desejado.
Outra proposta de aplicação interessante do Diretório é o suporte para uma aplicação originada do conceito de uma função denominada Trader, existente nas definições do Modelo de Referência para Processamento Distribuído Aberto da ISO, ODP-Open Distributed Processing. 0 Trader executa uma função de agente de negociação entre provedores e tomadores de serviços em uma rede de computadores. Um determinado provedor que possui serviços para oferecer, efetua uma operação de exportação para o Trader, com a finalidade de anunciar a existência do serviço. Um usuário da rede, ao necessitar um determinado serviço, executa uma operação de importação junto ao Trader, no sentido de obter as referências necessárias para localização do serviço desejado. A ligação entre o tomador e o provedor do serviço é efetuada diretamente entre ambos, com a utilização das interfaces repassadas pelo Trader. Uma classe de objetos do Diretório pode ser estruturada para armazenar as informações sobre as características de serviços do provedor, as interfaces requeridas para acesso aos serviços, o endereço de rede onde o provedor está instalado naquele momento, dentre outras informações. Uma aplicação de interface com o DUA executa as funções do Trader sendo possível, inclusive, que uma aplicação provedora de serviços migre de um ambiente para outro de forma transparente para a aplicação tomadora daquele serviço.
EXPERIÊNCIAS DE UTILIZAÇÃO
As experiências no Brasil limitam-se ainda ao meio acadêmico através de um produto denominado QUIPU, que é uma implantação de diretório de domínio público, tendo sido desenvolvido com o intuito de experimentação através de um piloto de diretório global, compatível com as especificações das recomendações X.500. Este piloto está contido no projeto denominado Paradise que implementa este diretório, cujo DSA mestre global é administrado pelo ULCC-University of London Computíng Center, a quem todos os demais, no mundo inteiro, se referem. No Brasil o DSA mestre é o da UFRGS-Universidade federal do Rio Grande do Sul, a quem os demais domínios estão ligados. Além da UFRGS, os outros domínios existentes no Brasil atualmente são os do CPQD-Telebrás, UFMG-Universidade Federal de Minas Gerais e do CEFET-Centro Federal de Educação Tecnológica do Paraná, este último implantado no ano passado. As classes de objeto encontradas nas pesquisas efetuadas no diretório do projeto Paradise são: C=país, 0=organização, OU=unidade da organização e CN=pessoa.
Para uso comercial, existem informações de que a Embratel está em processo de aquisição de um sistema para o fornecimento de serviços públicos de diretório, podendo tornar-se o ADMDD para o Brasil, constituindo-se, assim, no ponto de entrada e saída do país para integração com os diretórios de outros países, assim como acontece com o sistema de correio eletrônico público X.400 baseado no sistema STM-400. As demais organizações no Brasil estariam ligadas hierarquicamente como subárvore da entrada C=BR. Em âmbito privativo, o primeiro projeto de Diretório em fase de estruturação é o do governo federal, para implantação em toda a administração pública.
Na Rede Integrada de Comunicação de Dados e Serviços, desenvolvida e operada pela CELEPAR para uso pelos órgãos do Governo do Estado do Paraná, o projeto para desenvolvimento e implantação de um Serviço de Diretório, baseado nas recomendações X.500, deverá iniciar ainda neste segundo semestre de 1995 para implantação no próximo ano. É mais um serviço da Rede que manterá o Paraná ligado ao mundo.