Escolar Documentos
Profissional Documentos
Cultura Documentos
Assis
2008
AUTENTICAÇÃO E MANUTENÇÃO DAS CONTAS DE USUÁRIOS DE
SISTEMAS INTEGRADOS A SERVIÇOS DE DIRETÓRIOS
Assis
2008
JEDSON ZENDRON FIGUEIREDO
Orientador: __________________________________________________________
Assis
2008
DEDICATÓRIA
Em especial, ao meu pai pelo incentivo e determinação pelo meu sucesso. Pelo meu
primo Osvandre Martins, na qual apresentou algumas formas de escrita e conteúdo
do trabalho.
Aos amigos, Claudinei Moreira, Almir Rogério Camolesi, Alex Sandro Romeo de
Souza Poletto e a todos que colaboraram direta ou indiretamente na execução deste
trabalho.
RESUMO
The institutions of medium and large show difficulty keeping the accounts of users
online, owing to different computer systems used in different suppliers. Promoting,
redundancy in the information and endorsements missing. With this, one of the
technologies of computer networks, can assist in that circumstance, is the LDAP
(Lightweight Directory Access Protocol). Known as a lightweight protocol for access
to directories, which aims to solve the problems of decentralization of user
information, and to centralize authentication. It encourages greater security in the
user's information, reduction in the cost of deployment and management, media
resources for any network access services directories. From there, a new application
for maintenance of the users of these services integrated with LDAP protocol. And
other software with two algorithms for testing, evaluating statistically, as a scenario
involving other network technologies, to test the time (in seconds) for authentication
in up to one thousand thou and users.
1 INTRODUÇÃO ................................................................................... 17
1 INTRODUÇÃO
As empresas estão cada vez mais informatizando seus processos e nem sempre é
possível ter um único sistema que atenda a todas as necessidades, principalmente
se estes não forem desenvolvidos internamente, mas sim, adquiridos ou contratados
de fornecedores. Diante disso, é comum encontrar organizações que usam vários
sistemas diferentes, oriundos de fornecedores diferentes nos quais cada um possui
recursos específicos de controle de acesso (LUPPI, 2008).
No entanto, pode-se criar uma hierarquia em árvore que denomina uma estrutura do
ponto de vista lógico que se distribui fisicamente em repositórios de diferentes
servidores de diretórios, a fim de dividir os tipos de usuários por um único domínio
(Organização).
Segundo MALDANER (2004), o uso do LDAP pode trazer mais agilidade em vários
sistemas de empresas: “A pessoa não precisa lembrar de todas as senhas, basta
apenas lembrar da sua senha para abrir todos os sistemas da empresa e as demais
senhas são armazenadas no diretório LDAP".
1.2 OBJETIVOS
O Capítulo 3 descreve o protocolo LDAP, visto que opera quatro modelos básicos
com operações baseadas na comunicação entre cliente e servidor. Os aspectos
fundamentais para a segurança das informações, com a utilização de métodos de
autenticação e criptografia, bem como, o modelo de controle de acesso na qual,
restringe o tipo de acesso dos usuários e grupos. A otimização do LDAP a partir da
replicação e distribuição de diretórios, averiguando os pontos de falha e as maneiras
eficientes para a utilização do serviço de diretórios. O relato do padrão de código
aberto chamado OpenLDAP, na qual, traz este protocolo ao alcance dos usuários
Linux, ou mesmo, do desenvolvimento de sistemas para aplicações LDAP. E as
ferramentas que gerenciam as contas dos usuários contidas nos diretórios.
O serviço de diretórios, de uma forma simples, é uma base de dados em que podem
ser armazenadas informações de usuários, na qual poderão ser recuperadas a
qualquer momento, assim como em SGBD (Sistema de Gerenciamento de Base de
Dados) convencional (Mysql, Postgresql, Oracle, Microsoft SQL Server e etc)
(SUNGAILA, 2007).
Com base numa empresa (raiz da DIT), podem ser criadas estruturas independentes
para cada departamento ou unidade (ramos da DIT). Tais informações apresentarão
um modelo distribuído para armazenamento em servidores diferentes.
Optar pelo uso de um diretório, em alguns casos, torna-se uma tarefa difícil. Com
isso, para afirmar que uma base de dados terá desempenho mais adequado do que
um diretório para aplicação específica, envolve a análise de vários pontos, visto que
o SGBD contém estruturas muito similares à servidores de diretórios e compartilham
muitas características como pesquisa rápida e base de dados com fácil
personalização.
O DAP é um protocolo pesado, que roda sobre uma camada OSI completa, e
precisa de uma quantidade significante de recursos computacionais para ser
executado. Tendo isso em vista, pensou-se em criar um protocolo mais leve para
que também fosse utilizado em máquinas de menor poder computacional, em
desktops convencionais. Então foram desenvolvidos dois protocolos, o DAS
(Directory Assistance Service) e o DIXIE (Directory Interface to X.500 Implemented
Efficiently), que foram os predecessores do LDAP, mas que ainda eram muito
ligados ao X.500, já que precisavam de um servidor intermediário para efetuar a
“tradução” desses protocolos para o DAP, que se comunicaria com o diretório X.500
(Figura 2).
24
como LDAP, tornando uma alternativa independente do DAP, que ainda era mantido
compatível e paralelamente ao serviço de diretórios (SEZANOWITCH, 2006).
A partir daí, como foi citado anteriormente, o LDAP não precisa rodar na pilha de
sete camadas OSI, como o protocolo de camada de aplicação X.500. Os pacotes
X.500 carregam mais bagagem, pois precisam de cabeçalho para cada uma das
camadas da pilha de protocolos OSI. A suíte de protocolos TCP/IP, na qual o LDAP
roda, também necessita de cabeçalho nos pacotes, mas tem um overhear (escutar
algo sem que os outros saibam, ouvir por acaso) menor (MACHADO; MORIJR, 2006).
O LDAP foi desenvolvido para ser um cliente para o X.500 (Serviço de Diretório
OSI), que define o DAP para os clientes usarem quando estiverem em contato com
servidores de diretório (Figura 3) (PAPOTTI et. al., 2006).
2.4.3 DAP
Figura 5. DAP (Directory Access Protocol), adaptada por (PAPOTTI et. al., 2006)
2.4.5 Versões
Em 1997, publicou-se a terceira e última versão, na RFC 3377, que foi desenvolvida
para solucionar uma série de limitações existentes na anterior, a qual inclui aspectos
de segurança, que passa a suportar protocolos de autenticação forte, como o SASL
(Simple Authentication Security Layer) e o SSL (Secure Sockets Layer) / TLS
(Transport Layer Security) (Figura 1) (PAPOTTI et. al., 2006).
28
Porém, em alguns casos não substitui as bases de dados relacionais, raramente são
efetuadas atualizações, apenas convém guardar os dados estáticos. Obviamente
não é possível relacionar dois atributos, visto que não se trata de uma base de
dados relacional, mas sim de uma base de dados estruturada hierarquicamente.
Exemplo: “Não é possível relacionar o código de uma disciplina com o nome da
mesma” (CARTER, 2003).
2.7 SCHEMA
Se uma entrada, que é tratada como um objeto, não obedecer às regras do schema,
este não poderá ser inserido.
30
Um DN é formado por uma seqüência de RDN’s separados por vírgulas (Figura 10).
Cada classe de objeto, ou tipo de atributo, é identificada de forma sintática, isto quer
dizer que o OID (Object Identifier) é único em toda a estrutura de diretórios do LDAP.
Isso é representado, por números decimais separados por pontos, dando origem a
uma árvore hierárquica, ou mesmo, a uma DIT, propriamente dita (SUNGAILA, 2007).
OID Utilização
1.1 Organizações OID
1.1.1 Elementos SNMP
1.1.2 Elementos LDAP
1.1.2.1 Tipos de atributos
1.1.2.1.1 Meus atributos
1.1.2.2 Classes de objetos
1.1.2.2.1 Minhas classes de
objetos
Tabela 1. Alguns exemplos de Object Identifier
2.11 ATRIBUTOS
São identificados por um nome ou abreviatura que possui um único tipo com um ou
mais valores, sendo o tipo associado a uma sintaxe que define o tipo de valor que
pode ser armazenados no atributo (Tabela 2) (SUNGAILA, 2007).
32
2.12 ENTRADA
3 PROTOCOLO LDAP
Esse protocolo opera quatro tipos de modelos básicos, que podem ser armazenados
nos diretórios, bem como, a determinação de qual será o destino desses dados
(PAPOTTI et. al., 2006). Os modelos são:
3.1 OPERAÇÕES
atributos desta entrada são procurados, porém se não forem especificados, todos
serão retornados (TEIXEIRA; MERCER, 2000).
Existem tipos de operações que podem ser utilizadas de acordo com a necessidade,
visto que depende do número de entradas e requisições, para uma ou várias
operações.
Figura 13. Recebimento de uma única entrada, estimada por PAPOTTI et. al.
(2006)
Figura 14. Recebimento de várias entradas, estimada por PAPOTTI et. al. (2006)
Figura 15. Uma simples pesquisa no LDAP, estimada por PAPOTTI et. al. (2006)
Note que o cliente envia outra solicitação sem aguardar pela finalização da primeira
solicitação, com isso, não ocasionará nenhum problema, pois todas as mensagens
são identificadas, tornando o protocolo LDAP mais ágil na pesquisa das
informações, visto que uma mesma conexão aberta pode-se realizar várias
consultas ao invés de abrir uma conexão a todo instante (PAPOTTI et. al., 2006).
1) Operações de pergunta
2) Operações de atualização
O cliente abre uma conexão com o servidor LDAP e envia uma operação “ldapbind”.
Esta operação inclui o nome da entrada do diretório com a qual ele deseja
autenticar-se, seguido das credenciais que serão usadas na autenticação (PAPOTTI
et. al., 2006). As credenciais podem ser simples senhas ou até mesmo digitais.
Após o servidor conferir se as credenciais são válidas, ele retorna uma mensagem
de sucesso ao cliente, que posteriormente, enviará uma operação “ldapsearch”, visto
que o servidor realizará a operação e retornará as duas entradas encontradas para o
pedido (PAPOTTI et. al., 2006).
Porém, o servidor enviará uma mensagem com o resultado total. Com isso, o cliente
envia uma operação “ldapunbind”, indicando que o cliente deseja desconectar-se, e
por fim, o servidor obedecerá, terminando a conexão (PAPOTTI et. al., 2006) (Figura
16).
3.2 SEGURANÇA
Na atual versão do LDAP (LDAPv3), que trata a autenticação baseada nos modos
de como os servidores são acessados. Com isso, utilizam-se frameworks SASL,
bem como, múltiplos mecanismos de autenticação (SUNGAILA, 2007).
38
O PAM foi criado pela Sun Microsystems para oferecer um método de desenvolver
aplicações que sejam independentes do mecanismo de autenticação em uso. Estas
aplicações passam a solicitar ao PAM que o usuário seja autenticado. Este, por sua
vez, utiliza o módulo de autenticação definido pelo administrador local, durante a
fase de configuração do equipamento, e é totalmente transparente para as
aplicações (o login é uma destas) (CERQUEIRA, 2005). Todas as aplicações do PAM
foram publicadas pela Sun no formato de RFC, na qual o Linux baseia-se para a
utilização.
O SSL/ TLS (última versão do SSL) é um sistema aberto, protocolo não proprietário
desenvolvido pela Netscape para prover segurança durante as comunicações
sensíveis. Este é aceito pelo padrão WEB para a comunicação entre cliente-servidor
criptografada e autenticada, podendo rodar em baixo dos protocolos de aplicação
HTTP, SNMP, FTP, LDAP e Telnet [Baltimore] (COUTINHO; MSILVA, 2006). Este é
seguro, rápido e facilmente adaptado a outros protocolos WEB (Figura 17).
41
Figura 17. LDAP usando SASL com SSL/TLS, retirado do (BRANCO, 2004)
Conforme foi citado anteriormente, o NSS é uma interface de sistema, que pode
guardar as informações do usuário, na qual, delimita um conjunto de bibliotecas
designadas para o suporte de desenvolvimento de uma plataforma de segurança –
aplicações de servidores e clientes habilitados. A construção de aplicações com
NSS podem suportar certificados de SSL v2 e v3, TLS e outros padrões de
segurança (SUNGAILA, 2007).
Porém, esse controle de acesso não foi padronizado pela IETF (PAPOTTI et. al.,
2006), por que ainda está sendo definido um padrão. Cada fabricante tem um
padrão distinto, com muito trabalho de migração, visto que às vezes é necessária a
mudança de fabricante.
Figura 19. Redundância de Diretórios, estimada por (PAPOTTI et. al., 2006)
Quando se tem uma falha no serviço, o outro servidor entra em operação de forma
automática (Figura 20).
44
Figura 20. Ponto de Falha e Troca de Servidor, estimada por (PAPOTTI et. al.,
2006)
3.4 OPENLDAP
Essas ferramentas podem ser com interface gráfica, bem como, módulo Web para
administração do servidor LDAP. A visualização é de forma hierárquica da árvore
LDAP, na qual são intuitivos e fáceis de serem configurados, e a cima de tudo,
livres, ou seja, gratuitos. A vantagem relaciona-se ao funcionamento para quaisquer
sistemas operacionais, e também pelo suporte internacional de oito idiomas.
47
Além dos aplicativos mencionados, pode-se contar com o LDAP Admin, que é uma
ferramenta gráfica que roda em estação Windows e pode ser obtida no site oficial
em http://ldapadmin.sourceforge.net. Este aplicativo é distribuído em dois pacotes:
um com os modelos de dados (templates) e outro com arquivo executável da
aplicação (SUNGAILA, 2007).
Após efetuar a conexão com o servidor LDAP através desse aplicativo, na Figura 24,
exibe a estrutura de diretórios.
4 ARQUITETURA DE DIRETÓRIOS
4.1 CONSIDERAÇÕES
A API JNDI acessam recursos externos, como base de dados, filas ou tópicos JMS
(Java Message Service) e componentes JEE (Java Enterprise Edition). A API
disponibiliza um mecanismo para ligar um objeto a um nome, bem como, uma
interface padronizada de busca de objetos no serviço de diretório, e uma outra, de
eventos que permite que um usuário saiba quando uma entrada (nome mais objeto)
foi modificada, e por fim, as extensões que suportam as capacidades do padrão
LDAP (PIRES, 2003).
52
Figura 29. Criação dos Usuários no Diretório LDAP, para cada Grupo,
dependendo da proporção
54
Para a realização dos testes, foram estruturados os usuários dessa forma, para que
a base de dados ficasse completamente carregada de caracteres, simulando como
se fossem usuários comuns.
Com isso, o LDAP além de centralizar as informações das contas de usuários, ele
disponibiliza prontamente, de forma rápida e concisa, a resposta das autenticações.
5 APLICATIVO DEMONSTRATIVO
5.1 CONSIDERAÇÕES
Foi utilizado o modelo de padrão de projetos MVC (Model View Controller), que tem
por objetivo básico separar a lógica de negócio da apresentação. O modelo MVC é
subdividido em três camadas físicas, delimitando o modelo, a visão e o controle, na
qual fornece uma maneira de dividir a funcionalidade envolvida na manutenção e
apresentação dos dados de uma aplicação. Na arquitetura MVC o modelo
representa os dados da aplicação e as regras do negócio que governam o acesso e
a modificação dos dados. O modelo mantém o estado persistente do negócio e
fornece ao controlador a capacidade de acessar as funcionalidades da aplicação
encapsuladas pelo próprio modelo. A visão está relacionada a tela que iterage com o
usuário (MACORATTI, 2005).
O aplicativo foi modelado por uma linguagem chamada UML (Unified Modeling
Language), na qual não é proprietária de terceira geração, e basicamente, permite
que desenvolvedores visualizem os produtos do trabalho em diagramas
padronizados. Junto com uma notação gráfica, a UML também especifica
significados, isto é, semântica. É uma notação independente de processos (SILVA,
2001).
O JUDE (Java and UML Developers Environment) é uma IDE que foi utilizada para a
modelagem dos dados (UML) criada com Java. Com o IDE JUDE é possível realizar
uma modelagem de dados complexa, na qual apresenta os dados para o usuário de
forma clara e ainda possível a vantagem do layout ser bem intuitivo (CAMPOS, 2006).
Alguns diagramas desenvolvidos nessa IDE, poderão ser visualizados nos Anexos C
e D.
O levantamento dos dados foi realizado com a criação de cinco tabelas, que são
elas: usuários, grupos, grupos/Usuários, eventos e permissões, nas quais foram
apresentadas na Figura 35.
Mas, se não for o administrador, será acessado somente uma página em que terá as
informações relacionadas ao usuário que autenticou no sistema (Figura 38).
65
6 CONCLUSÕES
REFERÊNCIAS BIBLIOGRÁFICAS
BRESSAN, Graça. Serviços de Nomes DNS, X.500 e LDAP. São Paulo: 2007.
CAMPOS, Augusto. A IDE para modelagem de dados JUDE. São Paulo: 2006. Disponível
em: < http://br-linux.org/linux/node/3335>. Acesso em: 27 Out. 2008.
CRUZ, Carla; RIBEIRO, Uira. Metodologia Científica – Teoria e Prática, 1. ed. Belo
Horizontes: Axcel Books, pp. 35-36, 2003.
<http://www.oficinadanet.com.br/artigo/738/tipos_de_sistemas_de_informacao_na_emprese
>. Acessado em: 31 mar. 2008.
PAPOTTI, Carlos Fernando; BEVILACQUA, José Ricardo M.; MARCONDES, Julio César
Costa; BALDIN, Raul. Lightweight Directory Access Protocol LDAP. Campinas: 2006.
SILVA, Douglas Marcos da. UML – Guia de Consulta Rápida. , 3. ed. São Paulo: Novatec,
2001.
SUNGAILA, Marcos. Autenticação Centralizada com Open LDAP, 1. ed. São Paulo:
Novatec, 2007.
TEIXEIRA, Roberto; MERCER, Carlos Daniel. Guia do Servidor. Curitiba: Conectiva S. A.,
2000.
70
Figura 39. Algoritmo que Insere os Usuários no diretório LDAP, de acordo com
a Proporção
71