Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
ESTUDO DA API JAVA NAMING DIRECTORY INTERFACE NO ACESSO E MANIPULAO DE DADOS DO ACTIVE DIRECTORY
Palmas-TO 2006
ESTUDO DA API JAVA NAMING DIRECTORY INTERFACE NO ACESSO E MANIPULAO DE DADOS DO ACTIVE DIRECTORY
Monografia apresentada como requisito parcial da disciplina Trabalho de Concluso de Curso em Sistemas de Informao I (TCC I) e Trabalho de Concluso de Curso em Sistemas de Informao II (TCC II), do curso de Sistemas de Informao, orientado pelo Prof. M.Sc. Ricardo Marx Costa Soares de Jesus.
Palmas-TO 2006
ESTUDO DA API JAVA NAMING DIRECTORY INTERFACE NO ACESSO E MANIPULAO DE DADOS DO ACTIVE DIRECTORY
Monografia apresentada como requisito parcial da disciplina Trabalho de Concluso de Curso em Sistemas de Informao I (TCC I) e Trabalho de Concluso de Curso em Sistemas de Informao II (TCC II), do curso de Sistemas de Informao, orientado pelo Prof. M.Sc. Ricardo Marx Costa Soares de Jesus.
BANCA EXAMINADORA
Palmas-TO 2006
SUMRIO
1 2
INTRODUO.................................................................................................................................... 10 REVISO DE LITERATURA ........................................................................................................... 12 2.1 DIRETRIOS .................................................................................................................................. 12 2.2 SERVIO DE DIRETRIO ................................................................................................................ 13 2.3 SERVIO DE NOMES ...................................................................................................................... 13 2.4 SCHEMA (ESQUEMA)..................................................................................................................... 14 2.5 PROTOCOLO X.500 E DAP ............................................................................................................ 15 2.6 PROTOCOLO LDAP ....................................................................................................................... 16 2.7 ACTIVE DIRECTORY ...................................................................................................................... 17 2.7.1 Objetos..................................................................................................................................... 18 2.7.2 Contas de Usurios ................................................................................................................. 19 2.7.3 Contas de Computadores......................................................................................................... 20 2.7.4 Grupos ..................................................................................................................................... 20 2.7.5 Unidades Organizacionais ...................................................................................................... 21 2.7.6 Pastas Compartilhadas............................................................................................................ 22 2.7.7 Impressoras Compartilhadas................................................................................................... 23 2.8 TERMOLOGIA ................................................................................................................................ 23 2.9 FLAGS (BANDEIRAS) DE CONTROLE DA CONTA ............................................................................ 24 2.10 OPERAES SOBRE O ACTIVE DIRECTORY .................................................................................... 25 2.10.1 Autenticao ....................................................................................................................... 26 2.10.2 Criao de Contas de Usurios .......................................................................................... 26 2.10.3 Criao de Contas de Computadores ................................................................................. 27 2.10.4 Criao de Grupos.............................................................................................................. 27 2.10.5 Compartilhando e Publicando Pastas ................................................................................ 28 2.10.6 Compartilhando e Publicando Impressoras ....................................................................... 28 2.10.7 Localizar Objetos................................................................................................................ 29 2.11 API JAVA NAMING AND DIRECTORY INTERFACE .......................................................................... 30 2.11.1 Arquitetura JNDI ................................................................................................................ 32 2.11.2 Pacotes................................................................................................................................ 32
MATERIAL E MTODOS ................................................................................................................ 34 3.1 LOCAL E PERODO ......................................................................................................................... 34 3.2 MATERIAIS .................................................................................................................................... 34 3.2.1 Hardware................................................................................................................................. 34 3.2.2 Softwares ................................................................................................................................. 35 3.2.3 Fontes Bibliogrficas .............................................................................................................. 35 3.3 METODOLOGIA.............................................................................................................................. 35
RESULTADOS E DISCUSSO ......................................................................................................... 37 4.1 4.2 4.3 4.4 4.5 4.5.1 4.5.2 4.5.3 4.6 4.6.1 4.6.2 ACESSANDO UM SERVIO DE DIRETRIOS .................................................................................... 39 ADICIONANDO OBJETOS NO DIRETRIO ........................................................................................ 43 REMOVENDO OBJETOS DO DIRETRIO .......................................................................................... 46 MODIFICANDO OBJETOS/ATRIBUTOS DO DIRETRIO .................................................................... 47 BUSCANDO OBJETOS/ATRIBUTOS DO DIRETRIO ......................................................................... 48 Busca Simples.......................................................................................................................... 49 Busca com Filtros.................................................................................................................... 50 Busca com Escopo ................................................................................................................... 52 ACESSO AO SERVIO DE DIRETRIOS COM CONEXO SEGURA ....................................................... 53 SSL (Secure Socket Layer)....................................................................................................... 54 TSL (Transport Layer Security)............................................................................................... 55
vi
4.6.3 Acesso ao Servio de Diretrios.............................................................................................. 56 4.7 AUTENTICAO UTILIZANDO A BASE DE DADOS DO ACTIVE DIRECTORY ..................................... 58 4.7.1 SISGAP .................................................................................................................................... 58 4.7.2 Migrando a Aplicao ............................................................................................................. 60 5 CONSIDERAES............................................................................................................................. 68 5.1 5.2 6 CONSIDERAES FINAIS ............................................................................................................... 68 PROPOSTA DE TRABALHOS FUTUROS ............................................................................................ 69
REFERNCIAS BIBLIOGRFICAS............................................................................................... 70
vii
Lista de Figuras
Figura 1 - Esquema do modelo funcional do servio de diretrio do X.500...................... 15 Figura 2 - Objetos e Atributos no Active Directory........................................................... 19 Figura 3 - O usurio herda as permisses de grupo.......................................................... 21 Figura 4 - Arquitetura JNDI............................................................................................... 31 Figura 5 - Usurios distintos para cada aplicao............................................................ 38 Figura 6 - Usurio nico para todos os aplicativos........................................................... 39 Figura 7 - Acessando servio de diretrios........................................................................ 41 Figura 8 - Criando usurio................................................................................................ 44 Figura 9 - Criando grupo................................................................................................... 45 Figura 10 - Removendo usurio......................................................................................... 46 Figura 11 - Modificando objetos........................................................................................ 47 Figura 12 - Busca simples.................................................................................................. 50 Figura 13 - Busca com filtros............................................................................................. 50 Figura 14 - Busca com escopo............................................................................................ 53 Figura 15 - Arquitetura TCP/SSL....................................................................................... 54 Figura 16 Acesso atravs de conexo segura.................................................................. 57 Figura 17 - Autenticao atravs do banco de dados........................................................ 61 Figura 18 - Acessando o Servio de Diretrios.................................................................. 63 Figura 19 - Autenticando no Servio de Diretrios........................................................... 63 Figura 20 - Buscando Usurio........................................................................................... 64 Figura 21 - Buscando nvel de acesso................................................................................ 65 Figura 22 Buscando cdigo do usurio.......................................................................... 66
viii
Lista de Tabelas
TABELA 1: TERMOS DO ACTIVE DIRECTORY ......................................................................................... 24 TABELA 2: ATRIBUTOS DE CONTROLE.................................................................................................... 25 TABELA 3: CRONOGRAMA DE ATIVIDADES............................................................................................ 36 TABELA 4: SMBOLOS LGICOS ............................................................................................................... 51
ix
Lista de Abreviaturas
AD - Active Directory API - Application Programming Interface CEULP - Centro Universitrio Luterano de Palmas CORBA - Common Object Request Broker Architecture DAP - Directory Access Protocol DIT - Directory Information Tree DNS - Domain Name System DSA - Directory Service Agent DUA - Directory User Agent IP - Internet Protocol ITU - International Telecommunications Union JNDI - Java Naming and Directory Interface JSP - Java Server Pages Keytool - Key and Certificate Management Tool LDAP - Lightweight Directory Access Protocol MD - Message Digest NIS - Network Information Service RMI - Remote Method Invocation SASL - Simple Authentication and Security Layer SDK - Software Development Kit SP/SPI - Service Provinders Interface TLS - Transport Layer Security SISGAP - Sistema de Gerenciamento Acadmico e Pessoal ULBRA - Universidade Luterana do Brasil URL - Universal Resource Locator
RESUMO
Os servios de diretrios so bases de dados que se caracterizam pela escalabilidade na realizao de consultas simultneas. Porm, no so eficazes em ambientes que necessitam de grandes volumes de atualizaes de dados. Essas bases de dados quase sempre trabalham em uma aplicao especfica, no interagindo com os demais sistemas. Por isto, elas acabam trabalhando paralelamente a outras bases de dados e muitas vezes geram redundncias e inconsistncias nos dados. O Java Naming and Directory Interface uma API que surge como alternativa para que aplicaes Java acessem e gerenciem dados dos servios de nomes e diretrios. Dessa forma, os servios de diretrios podero passar a interagir com outras bases de dados ou aplicaes, acabando com a necessidade de possuir mais de uma base de dados que armazene as mesmas informaes, diminuindo a probabilidade de ocorrncia de redundncias e inconsistncias de dados.
1 INTRODUO
Atualmente os usurios possuem a necessidade de interagir com vrios tipos de aplicaes em um ambiente corporativo, como aplicativos, servidores de e-mail, servidores de rede, entre outros. Vrios desses sistemas armazenam em suas bases de dados, as mesmas informaes como: nome, endereo, e-mail e principalmente, credenciais (usurio e senha) para autenticar o usurio no sistema. Essas informaes repetidas geram redundncia de dados, alm de obrigar ao usurio a necessidade de obter e memorizar uma nova credencial de acesso para cada aplicativo que o mesmo acessar. Outro ponto a ser analisado a atualizao dessas informaes, que nem sempre que so atualizadas em uma determinada base de dados, tem a mesma atualizao refletida nas demais bases, gerando a inconsistncia de dados. Esse tipo de problema pode ser sanado atravs da utilizao de um repositrio de dados nico para todas essas aplicaes, fazendo com que elas utilizem a mesma base de dados para armazenarem informaes comuns entre elas. Atravs da centralizao dos dados em um repositrio nico, se facilita o gerenciamento das informaes e diminui a probabilidade da existncia de redundncias e inconsistncias. Para isso, a API Java Naming and Directory Interface disponibiliza meios para que aplicaes Java acessem e gerenciem servios de diretrios, possibilitando assim a utilizao de um diretrio para vrias aplicaes. Atravs da API h a possibilidade de utilizar um repositrio de dados como uma base nica de credenciais de logon, permitindo que os usurios se utilizem apenas de um nico nome de usurio e senha para acessar a diversas aplicaes. Esse trabalho prope o estudo da API JNDI como interface para o acesso e gerenciamento dos dados armazenados nos servios de diretrios, em especial, o Active Directory, que ser o servio de diretrios utilizado no desenvolvimento desse trabalho. Outro ponto a ser desenvolvido por esse trabalho a migrao de uma aplicao Java para
11
que a mesma possa autenticar seus usurios atravs de um servio de diretrios, o Active Directory do Windows Server2003.
2 REVISO DE LITERATURA
Nessa seo sero apresentados os conceitos bsicos utilizados para o desenvolvimento desse trabalho. Entre os contedos abordados esto Diretrios, Servios de Diretrios, Protocolos X.500 e LDAP, Active Directory e API JNDI, com o intuito de proporcionar o conhecimento necessrio para o entendimento do trabalho. Esses conceitos sero apresentados nas sees seguintes.
2.1 Diretrios
Um Diretrio uma base de dados especfica destinada ao armazenamento de grande quantidade de informaes de forma hierrquica sobre um determinado domnio. A forma hierrquica de armazenamento faz com que as buscas realizadas tenham maior desempenho na realizao de consultas simultneas. Para Gouveia (2005, p. 6,
http://www.ldap.org.br/modules/ldap/files/files///LDAP_iniciantes.pdf) Um Diretrio uma base de dados especializada definida de forma hierrquica, otimizado para leitura, suportando sofisticados mtodos de pesquisa, com o objetivo de proporcionar uma resposta rpida a um enorme volume de consultas e onde so armazenadas informaes estticas de objetos. A base de dados estruturada hierarquicamente similar a uma rvore, onde se localiza o n principal, conhecido como n raiz, de onde partem as ramificaes, mais conhecidas como ns folhas. As estruturas dos diretrios aliadas aos mtodos de pesquisas eficientes favorecem a realizao de consultas simultneas, sendo que a mesma eficincia no observada quando h um alto nmero de operaes de escrita na base de dados. Portanto, a utilizao de diretrios para armazenamento de informaes vivel em
13
ambientes que realizam grande nmero de consultas simultneas aliadas a uma baixa atualizao da base de dados.