Serviço de diretórioUm serviço de diretório é o sistema de software que armazena, organiza e fornece acesso a informações em um diretório do sistema operacional de computador. Em engenharia de software, um diretório é um mapa entre nomes e valores. Ele permite a consulta de valores nomeados, semelhante a um dicionário. Como uma palavra em um dicionário deve possuir várias definições, um serviço de diretório pode associar um nome com vários pedaços de informações diferentes. Do mesmo modo, como uma palavra pode ter partes diferentes de articulação e diferentes definições, um nome em um diretório pode ter vários tipos de dados diferentes. Diretórios podem ser muito limitados em escopo, suportando apenas um pequeno conjunto de tipos de nós e tipos de dados, ou eles podem ser muito amplos, suportando um conjunto de tipos arbitrário ou extensível. Em um diretório de telefones, os nós são nomes e os itens de dados são números de telefone. No DNS os nós são nomes de domínio e os itens de dados são endereços IP (e apelidos, nomes de servidor de e-mail, etc.). Em um diretório usado por um sistema operacional de rede, os nós representam recursos que são gerenciados pelo SO, incluindo usuários, computadores, impressoras e outros recursos compartilhados. Muitos serviços de diretório diferentes têm sido usados desde o aparecimento da Internet, mas este artigo foca principalmente naqueles que descenderam do serviço de diretório X.500. IntroduçãoUm serviço de diretório chamado de um serviço de nomes, mapeia os nomes de recursos da rede para seus respectivos endereços de rede. Com o tipo de diretório de serviço de nomes, um usuário não tem que se lembrar do endereço físico de um recurso da rede. Fornecer um nome localiza o recurso. Cada recurso na rede é considerado um objeto no servidor de diretórios. Informações sobre um recurso particular é armazenado como atributos daquele objeto. Informações dentro de objetos podem se tornar seguros de maneira que apenas usuários com as permissões disponíveis sejam capazes de acessá-las. Diretórios mais sofisticados são projetados com espaços de nomes como Assinantes, Serviços, Dispositivos, Direitos, Preferências, Conteúdos e assim por diante. Este processo de projeto é altamente relacionado com gerenciamento de identidade. Um serviço de diretório define o espaço de nomes para a rede. Um espaço de nomes neste contexto é o termo que é usado para armazenar um ou mais objetos como entradas nomeadas. O processo de projeto de diretório normalmente possui um conjunto de regras que determinam como recursos de rede são nomeados e identificados. As regras especificam que os nomes sejam únicos e não-ambíguos. No X.500 (o padrão de serviço de diretório) e no LDAP (Lightweight Directory Access Protocol) o nome é chamado de Distinguished name (DN), em português nome distinto, e refere-se a uma coleção de atributos (nomes distintos relativos) que compõem o nome de uma entrada de diretório. Um serviço de diretório é uma infraestrutura de informação compartilhada para localizar, gerenciar, administrar e organizar itens comuns e recursos de rede, o que pode incluir volumes, pastas, arquivos, impressoras, usuários, grupos, dispositivos, números de telefone e outros objetos. Um serviço de diretório é um componente importante de um Sistema Operacional de Rede. Nos casos mais complexos, um serviço de diretório é o repositório central de informação para uma Plataforma de Entrega de Serviços. Por exemplo, consultar "computadores" usando um serviço de diretório pode produzir uma lista de computadores disponíveis e informações para acessá-los. A replicação e distribuição possuem significados muito distintos no projeto e gerenciamento de um diretório de serviços. O termo replicação é usado para indicar que o mesmo espaço de nomes de diretório (os mesmos objetos) são copiados para outro servidor de diretório por razões de redundância e de taxas de transferência. O espaço de nome replicado é governado pela mesma autoridade. O termo distribuição é usado para indicar que vários servidores de diretório, que armazenam espaços de nomes diferentes, são interconectados para formar um serviço de diretório distribuído. Cada espaço de nomes pode ser governado por autoridades diferentes. Comparação com bancos de dados relacionaisVários fatores distinguem um serviço de diretório tradicional de um banco de dados relacional comum. Obviamente há exceções, porém em geral:
Esquemas de diretório são definidos como classes de objeto, atributos, ligações de nomes e conhecimento (espaços de nome), onde uma classe de objeto possui:
Implementações de serviços de diretórioOs serviços de diretório foram parte de uma iniciativa da Interconexão de Sistemas Abertos (Open Systems Interconnection - OSI) para conseguir que todos na indústria concordem com os padrões comuns de rede para fornecer interoperabilidade entre vários fornecedores. Na década de 1980, a ITU e o OSI vieram com um conjunto de normas - X.500, para serviços de diretório, inicialmente para suportar os requisitos de mensagens eletrônicas entre operadoras e pesquisa de nome de rede. O Lightweight Directory Access Protocol, LDAP, baseia-se nos serviços de informação de diretório do X.500, mas usa a pilha TCP/IP e um esquema de codificação de cadeias de caracter do protocolo DAP baseado no X.500, dando-lhe mais relevância na Internet. Houve inúmeras formas de implementações de serviço de diretório de diferentes fornecedores. Os sistemas desenvolvidos antes do advento do X.500 incluem:
Implementações LDAPEntre as implementações LDAP/X.500 estão:
Há também uma série de ferramentas de código aberto para a criação de serviços de diretório, incluindo o OpenLDAP e o protocolo Kerberos e o software Samba, que pode atuar como um controlador de domínio do Windows com beackends Kerberos e LDAP. A administração é feita usando GOsa ou Samba desde SWAT. Usando serviços de nomeSistemas operacionais UnixServiços de nome em sistemas Unix são normalmente configurados através do nsswitch.conf. Informações dos serviços de nome podem ser recuperadas usando getent. Ver também |