Professional Documents
Culture Documents
Edr Quinto Moreira verton Didon Foscarini Gessy Caetano da Silva Junior Ldia Aparecida O. Alixandrina Lourival Pereira Vieira Neto Silvana Rossetto
A RNP Rede Nacional de Ensino e Pesquisa qualificada como uma Organizao Social (OS), sendo ligada ao Ministrio da Cincia, Tecnologia e Inovao (MCTI) e responsvel pelo Programa Interministerial RNP, que conta com a participao dos ministrios da Educao (MEC), da Sade (MS) e da Cultura (MinC). Pioneira no acesso Internet no Brasil, a RNP planeja e mantm a rede Ip, a rede ptica nacional acadmica de alto desempenho. Com Pontos de Presena nas 27 unidades da federao, a rede tem mais de 800 instituies conectadas. So aproximadamente 3,5 milhes de usurios usufruindo de uma infraestrutura de redes avanadas para comunicao, computao e experimentao, que contribui para a integrao entre o sistema de Cincia e Tecnologia, Educao Superior, Sade e Cultura.
Ministrio da Cultura Ministrio da Sade Ministrio da Educao Ministrio da Cincia, Tecnologia e Inovao
Federao CAFe:
Implantao do Provedor de Identidade
Edr Quinto Moreira verton Didon Foscarini Gessy Caetano da Silva Junior Ldia Aparecida O. Alixandrina Lourival Pereira Vieira Neto Silvana Rossetto
Copyright 2014 Rede Nacional de Ensino e Pesquisa RNP Rua Lauro Mller, 116 sala 1103 22290-906 Rio de Janeiro, RJ
Diretor Geral Nelson Simes Diretor de Servios e Solues Jos Luiz Ribeiro Filho
Rua Lauro Mller, 116 sala 1103 22290-906 Rio de Janeiro, RJ http://esr.rnp.br info@esr.rnp.br
Dados Internacionais de Catalogao na Publicao (CIP) F293 Federao CAFe implantao do provedor de identidade / Silvana Rossetto .. [et. al.]; Rio de Janeiro: RNP/ESR, 2014. 190 p.: il.; 28cm. Bibliografia: p.173. ISBN 978-85-63630-48-3
1. Segurana de Computadores. 2.LDAP (Protocolo de rede de computadores). 3. Diretrio de Servios (Tecnologia de rede de computadores. I. Rosseto, Silvana. II. Ttulo. Esta obra distribuda sob a licena CDD 005.8
Sumrio
Escola Superior de Redes
A metodologia da ESRix Sobre o curso x A quem se destinaxi Convenes utilizadas neste livroxi Permisses de usoxii Sobre os autoresxii
Elementos de uma federao4 Componente adicional de uma federao5 Provedores de identidade5 Provedores de servio6 Federao CAFe 7 Roteiro de Atividades 111 Atividade 1.1 Demonstrar o funcionamento de uma federao11
iii
iv
Roteiro de Atividades 361 Atividade 3.1 Instalao de EID e EID2LDAP61 Atividade 3.2 Configurao de um repositrio63 Atividade 3.3 Definio de uma extrao64 Atividade 3.4 Definio de um processo e seu agendamento65 Atividade 3.5 Limpar o repositrio EID65 Atividade 3.6 Reagendar o processo de carga da classe Identificao66
Roteiro de Atividades 6117 Atividade 6.1 Acesse a ferramenta EID2LDAP117 Atividade 6.2 Configurao do servidor LDAP117 Atividade 6.3 Configurao de uma transformao117 Atividade 6.4 Executar teste padro: leitura no diretrio118 Atividade 6.5 Definio de um agendamento118 Atividade 6.6 Desativao e alterao de registros no metadiretrio119
7. Plataforma Shibboleth
Introduo121 O que Shibboleth?121 Componentes do Shibboleth122 Por que Shibboleth?122 Provedor de Identidade (IdP)123 Provedor de Servio (SP)125 DS/ WAYF126 Metadata126 Funcionamento127 Roteiro de Atividades 7141 Atividade 7.1 Instalar e configurar provedor de identidade Shibboleth141 Atividade 7.2 Baixar e instalar o Shibboleth-IDP e bibliotecas Java 143 Atividade 7.3 Configurao do Shibboleth IdP144 Atividade 7.4 Certificados SSL 146
vii
Bibliografia 173
viii
A metodologia da ESR
A filosofia pedaggica e a metodologia que orienta a realizao dos cursos da ESR baseada na aprendizagem como construo do conhecimento por meio da resoluo de problemas tpicos da realidade do profissional em formao. Os resultados obtidos em cursos de natureza terico-prtica so otimizados se o instrutor, auxiliado pelo material didtico usado, atuar no apenas como expositor de conceitos e informaes, mas principalmente como orientador do aluno na execuo de atividades contextualizadas nas situaes do cotidiano profissional. A aprendizagem entendida como a resposta do aluno ao desafio de situaes-problema semelhantes s que so encontradas na prtica profissional, que so superadas por meio de anlise, sntese, julgamento, pensamento crtico e construo de hipteses para a resoluo do problema, em abordagem orientada ao desenvolvimento de competncias. Dessa forma, o instrutor tem participao ativa e dialgica como orientador do aluno para as atividades em laboratrio. At mesmo a apresentao da teoria no incio da sesso de
ix
aprendizagem no considerada uma simples exposio de conceitos e informaes. O instrutor busca incentivar a participao dos alunos continuamente. As sesses de aprendizagem onde se do a apresentao dos contedos e a realizao das atividades prticas tm formato presencial e essencialmente prtico, utilizando tcnicas de estudo dirigido individual, trabalho em equipe e prticas orientadas para o contexto de atuao do futuro especialista que se quer formar. As sesses de aprendizagem desenvolvem-se em trs etapas, com predominncia de tempo para as atividades prticas, conforme descrio a seguir: Primeira etapa: apresentao da teoria e esclarecimento de dvidas (de 60 a 90 minutos). O instrutor apresenta, de maneira sinttica, os conceitos tericos correspondentes ao tema da sesso de aprendizagem, com auxlio de slides em formato PowerPoint. O instrutor levanta questes sobre o contedo dos slides em vez de apenas apresent-los, convidando a turma reflexo e participao. Isso evita que as apresentaes sejam montonas e que o aluno se coloque em posio de passividade, o que reduziria a aprendizagem. Segunda etapa: atividades prticas de aprendizagem (de 120 a 150 minutos). Esta etapa a essncia dos cursos da ESR. A maioria das atividades dos cursos so assncronas e feitas em duplas de alunos, que seguem o roteiro de atividades proposto na apostila, respeitando seu ritmo. Instrutor e monitor circulam entre as duplas para dirimir dvidas e oferecer explicaes complementares. Terceira etapa: discusso das atividades realizadas (30 minutos). O instrutor comenta cada atividade, apresentando uma das solues possveis para resolv-la, devendo ater-se quelas que geram maior dificuldade e polmica. Os alunos so convidados a comentar as solues encontradas e o instrutor retoma tpicos que tenham gerado dvidas, estimulando a participao dos alunos. O instrutor sempre estimula os alunos a encontrar solues alternativas s sugeridas por ele e pelos colegas e, caso existam, a coment-las
Sobre o curso
O curso foi desenvolvido para auxiliar as instituies no processo de implantao de um provedor de identidade para a Federao Acadmica Federada (CAFe). O curso tem como objetivo demonstrar o funcionamento de uma infraestrutura de autenticao e autorizao federada. Para isso so apresentadas as ferramentas de software disponveis para a construo desta infraestrutura, e o modo de integrao de uma instituio acadmica ou de pesquisa federao CAFe. Este curso est organizado em 10 captulos. O Captulo 1 apresenta uma viso geral sobre a motivao e a metodologia adotadas para a construo de uma federao acadmica no Brasil. O Captulo 2 far uma reviso sobre servio de diretrios e protocolo LDAP e apresentar o esquema brEduPerson, definido para uso com a federao CAFe. O Captulo 3 apresentar a ferramenta EID, uma aplicao web cuja finalidade auxiliar no processo de migrao de dados das bases relacionais de uma instituio para um diretrio. Os Captulos 4 e 5, tambm dedicados ferramenta EID, mostraro como configurar e exe cutar as extraes das bases de dados relacionais para o metadiretrio definido pelo EID.
O Captulo 6 apresentar a ferramenta EID2LDAP, cuja finalidade levar os dados contidos no metadiretrio do EID para o diretrio LDAP. O Captulo 7 introduzir o estudo sobre a plataforma Shibboleth, a soluo de software adotada pela federao CAFe para a implementao dos provedores de identidade e de servio. O Captulo 8 focar o estudo sobre a configurao de um provedor de identidade na plata forma Shibboleth. Os Captulos 9 e 10 sero dedicados a dois casos de uso que revisam todo o contedo apresentado, propondo respectivamente:
11 A implantao completa de um provedor de identidade a partir de bases de dados relacionais; 11 A implantao completa de um provedor de identidade a partir de um diretrio institucional sem o esquema brEduPerson. Nos dois experimentos a ideia construir uma federao piloto dentro do laboratrio.
A quem se destina
O curso se destina aos tcnicos das instituies que pretendem aderir Comunidade Acadmica Federada (CAFe) e tambm aos interessados em saber mais sobre LDAP, esquema brEduPerson, gesto de identidade e Plataforma Shibboleth.
Largura constante
Indica comandos e suas opes, variveis e atributos, contedo de arquivos e resultado da sada de comandos. Comandos que sero digitados pelo usurio so grifados em negrito e possuem o prefixo do ambiente em uso (no Linux normalmente # ou $, enquanto no Windows C:\).
Contedo de slide q
Indica o contedo dos slides referentes ao curso apresentados em sala de aula.
Smbolo w
Indica referncia complementar disponvel em site ou pgina na internet.
Smbolo d
Indica um documento como referncia complementar.
Smbolo v
Indica um vdeo como referncia complementar.
Smbolo s
Indica um arquivo de adio como referncia complementar.
Smbolo !
Indica um aviso ou precauo a ser considerada. xi
Smbolo p
Indica questionamentos que estimulam a reflexo ou apresenta contedo de apoio ao entendimento do tema em questo.
Smbolo l
Indica notas e informaes complementares como dicas, sugestes de leitura adicional ou mesmo uma observao.
Permisses de uso
Todos os direitos reservados RNP. Agradecemos sempre citar esta fonte quando incluir parte deste livro em outra obra. Exemplo de citao: Exemplo de citao: MOREIRA, Edr Quinto et al. Federao CAFe: Implantao do Provedor de Identidade. Rio de Janeiro: Escola Superior de Redes, RNP, 2014.
Comentrios e perguntas
Para enviar comentrios e perguntas sobre esta publicao: Escola Superior de Redes RNP Endereo: Av. Lauro Mller 116 sala 1103 Botafogo Rio de Janeiro RJ 22290-906 E-mail: info@esr.rnp.br
Sobre os autores
Edr Quinto Moreira Bacharel e Mestre em Cincia da Computao pela Universidade Federal de Minas Gerais. Entre 2000 e 2003 participou da implantao do diretrio corporativo da UFMG. Possui grande experincia em autenticao federativa com protocolo SAML, tendo atuado como assistente 1 no Grupo de Trabalho Middleware da RNP de2003 a 2005. Possui grande experincia com a plataforma JEE, tendo se certificado em programao Java em 2001. Em 2009 participou do projeto que deu origem Federao CAFe. Participou da elaborao e desenvolvimento do sistema EID. Atualmente membro do Comit Tcnico da Federao CAFe e do Comit Tcnico de Gesto de Identidades da RNP. tambm arquiteto de software no Departamento de Cincia da Computao da UFMG. verton Didon Foscarini Formado Bacharel em Cincia da Computao pela UFRGS, trabalhando como Analista de Suporte no CPD da UFRGS desde 2008. Tem seis anos de experincia como administrador de sistemas Linux, tendo trabalhado principalmente com virtualizao de datacenter, servidores de diretrio, e-mail, web e de aplicao. No escopo da Federao CAFe, ajudou a definir as metodologias de instalao dos softwares utilizados (Ubuntu, LDAP, Tomcat, Shibboleth, etc), criando documentao e roteiros de instalao. Gessy Caetano da Silva Junior Formado em Fsica pela Universidade Federal de Minas Gerais atuando atualmente como analista de sistemas para o Laboratrio de Computao cientfica LCC/CENAPAD da UFMG. Possui grande experincia com protocolo LDAP, administrao De servidores Linux/Unix, backup e monitoramento de recursos de rede. Em 2009 participou do projeto que deu origem Federao CAFe.
xii
Ldia Aparecida O. Alixandrina Bacharel em Sistemas de Informao pela PUC Minas. Atualmente Analista de Sistemas na UFMG trabalhando na implantao de diretrios federados no projeto CAFe. Trabalha tambm no desenvolvimento das ferramentas EID (Export Import Directory), EID2LDAP, e pCollecta. Experincia em autenticao federativa com Shibboleth, LDAP, Apache Tomcat, Banco de Dados e Java para Web. Lourival Pereira Vieira Neto Engenheiro de Computao e Mestre em Informtica pela PUC-Rio. Atualmente consultor da Diretoria de Pesquisa e Desenvolvimento da RNP, membro do Comit Tcnico de Gesto de Identidade da RNP e membro-desenvolvedor da The NetBSD Foundation. Participou da execuo e da coordenao do projeto e-AA (Infraestrutura de Autenticao e Autorizao Eletrnica), projeto o qual foi responsvel pelo desenvolvimento e implantao da federao CAFe. Silvana Rossetto Graduou-se em Cincia da Computao na Universidade Federal do Esprito Santo (UFES), em 1998. Cursou o Mestrado em Informtica no Programa de Ps-Graduao em Informtica da UFES, de 1999 a 2001. Concluiu o Doutorado em Informtica pela Pontifcia Universidade Catlica do Rio de Janeiro (PUC-Rio) em 2006, na rea de Sistemas Distribudos. Realizou o programa de Doutorado Sanduche no Exterior, entre 2004 e 2005, no Dipartimento di Elettronica e Informazione da Politecnico di Milano. De fevereiro de 2007 a julho de 2009 ocupou o cargo de Professor Adjunto no Departamento de Cincia e Tecnologia da Universidade Federal Fluminense (UFF). Desde agosto de 2009 ocupa o cargo de Professor Adjunto no Departamento de Cincia da Computao, da Universidade Federal do Rio de Janeiro (UFRJ). Nessa universidade, exerce atividades de ensino no Departamento de Cincia da Computao, integra o grupo de pesquisa na rea de Redes de Computadores e Sistemas Distribudos e participa do Programa de Ps-Graduao em Informtica (PPGI/UFRJ).
xiii
xiv
1
Introduo Federao CAFe
objetivos
Conhecer exemplos de federaes acadmicas e a Federao CAFe.
conceitos
Infraestrutura de autenticao, federao, autorizao federada, provedores de identidade, provedores de servio, Where Are You From (WAYF).
Introduo
Este curso foi desenvolvido no escopo do projeto e-AA: Infraestrutura de Autenticao e Autorizao Eletrnica, idealizado e coordenado pela RNP, com a colaborao das instituies Cefet-MG, UFC, UFF, UFMG e UFRGS. O projeto teve incio em julho de 2007 e sua meta principal criar as condies necessrias para a implantao de uma Federao Acadmica no Brasil. Uma federao acadmica envolve instituies de ensino e pesquisa e permite que as pessoas vinculadas a essas instituies compartilhem informaes e recursos e tenham acesso a servios restritos, usando o vnculo institucional como critrio bsico para esse compartilhamento. A finalidade deste curso capacitar o pessoal de TI das instituies de ensino e pesquisa no Brasil para implantar e gerenciar em suas instituies um Provedor de Identidade (componente que mantm e gerencia as informaes sobre as pessoas vinculadas a uma instituio) e acopl-lo Federao CAFe (Comunidade Acadmica Federada), criada no escopo do projeto e-AA. Ao longo do curso sero revisados os conceitos bsicos de servio de diretrios e do protoque define atributos e classes necessrios para armazenar informaes especficas sobre pessoas e seus vnculos em instituies brasileiras. Juntamente com o esquema brEduPerson, sero apresentados os modelos de informao e de nomes propostos para a organizao das informaes sobre pessoas em um diretrio institucional, o qual servir de base para a implantao do provedor de identidade em uma instituio. Na sequncia de estudo sero apresentadas as ferramentas de auxlio EID e EID2LDAP, que facilitam o processo de extrao de dados de pessoas de bases relacionais e a incluso desses dados em um diretrio LDAP.
Captulo 1 - Introduo Federao CAFe
colo de acesso leve a servio de diretrios LDAP. Ser apresentado o esquema brEduPerson,
A parte central do curso incluir os passos necessrios para implantar um provedor de identidade institucional usando a plataforma Shibboleth e o servio de diretrio LDAP, e o modo de acoplar esse provedor de identidade Federao CAFe. 11 Exemplos de servios internos: 11 Cadastro de projetos, matrcula de alunos, registro de notas, compartilhamento de documentos etc. 11 Exemplos de servios externos: 11 Acesso a bibliotecas digitais, compartilhamento de recursos (ciclos de CPU, espao de armazenamento), ensino a distncia etc. 11 Uma federao oferece para as instituies a infraestrutura de autenticao e autorizao necessria para interconectar pessoas e compartilhar recursos, informaes e servios. Neste primeiro captulo do curso, introduziremos o conceito de federao acadmica, discutindo os seguintes tpicos: 11 Demandas para a implantao de uma infraestrutura de autenticao e autorizao inter-institucional; 11 Conceito de federao, seus elementos principais e sua arquitetura bsica; 11 Forma como est sendo projetada a federao acadmica brasileira CAFe. Ao final do captulo ser apresentada uma viso geral do curso, detalhando os temas que sero abordados em cada um dos captulos.
Federao acadmica
11 O que uma Federao?
Federao CAFe: Implantao do Provedor de Identidade
22 Tipo de rede de confiana que permite reduzir contratos bilaterais entre usurios e provedores de servios. 22 Implementa o princpio de identidade federada: 33 Instituies implementam mtodos distintos de autenticao, mantendo a interoperatividade. O crescente avano das tecnologias de redes de computadores (em particular da internet) e o uso dessas tecnologias para a construo de aplicaes que permitem o acesso remoto (e em tempo real) a diferentes servios trouxe a necessidade de se criar e manter bases de dados com informaes sobre as pessoas que podem acessar esses servios e definir o nvel de privilgio. Essa demanda de reconhecimento e validao de acesso dos usurios aos servios pode ser sintetizada em duas etapas denominadas autenticao e autorizao.
O cumprimento das etapas de autenticao e autorizao como etapas fundamentais para a disponibilizao de um servio implica, normalmente, a necessidade de manuteno de bases de dados com registros sobre os possveis usurios do servio. A demanda do lado de quem disponibiliza um servio a necessidade de criar e manter suas prprias bases de dados de usurios. Do outro lado, para quem usa os diferentes servios disponibilizados, a demanda a necessidade de criar e manter contas (ou cadastros) para cada servio a que se deseja ter acesso. O conceito de federao acadmica visa minimizar as demandas dos provedores e dos usurios de servios disponibilizados por instituies de ensino e pesquisa no que diz respeito manuteno de informaes usadas para autenticao e autorizao de acesso a esses servios. A ideia bsica consiste no seguinte: as informaes sobre uma pessoa so mantidas em uma nica base, gerida por sua instituio de vnculo, cabendo a cada instituio estabelecer seu modelo de gesto de identidade, isto , de que forma informaes sobre pessoas so mantidas e atualizadas e os mtodos de autenticao usados. Os provedores de servio confiam no modelo de gesto de identidade das instituies e disponibilizam seus servios para os usurios vinculados a essas instituies, criando assim o princpio de identidade federada.
As Figuras 1.1. e 1.2 ilustram a diferena entre um modelo usual, onde cada servio deve manter informaes sobre seus possveis usurios, e um modelo onde as informaes sobre os usurios so concentradas e mantidas em um nico local. No primeiro caso, a implementao de cada servio deve prever um mdulo adicional para tratar o registro dos usurios que podem acess-lo, e cada pessoa precisa ter um cadastro (login/senha) para cada servio que deseje acessar. No segundo caso, as informaes sobre as pessoas so mantidas em um nico local, tipicamente a instituio com a qual a pessoa mantm seu vnculo principal, e cada pessoa precisa ter apenas um registro (login/ senha); nesse caso, a implementao dos servios oferecidos no requer o mdulo de registro de usurios.
Na arquitetura de uma federao, trs atores podem ser distinguidos: 11 Usurio: pessoa vinculada a uma instituio e que deseja acessar um recurso protegido; 11 Provedor do recurso: aplicao associada ao componente provedor de servio; 11 Instituio do usurio: instituio que mantm o componente provedor de identidade e estabelece um processo interno de autenticao das pessoas vinculadas a ela.
A Figura 1.3 apresenta os principais componentes de uma federao e as associaes entre eles. Podemos observar que dentro de uma federao possvel definir subgrupos com um provedor de identidade e um ou mais provedores de servios associados. Essa configurao pode ser usada para os seguintes casos: 11 Servios internos da instituio, como matrcula de alunos, registro de notas, cadastro de projetos, entre outros exemplos. 11 Servios externos instituio, como bibliotecas digitais, ensino a distncia e armazenamento distribudo, entre outros exemplos, podendo ser oferecidos a usurios ligados a diferentes provedores de identidade.
Como um provedor de servio em uma federao normalmente permite o acesso de usurios de diferentes instituies, um componente adicional includo na federao para auxiliar no redirecionamento dos usurios para os seus respectivos provedores de identidade. Esse componente, denominado Where Are You From (WAYF), ou Discovey Service (DS), a partir do Shibboleth 2.x centraliza as informaes sobre os provedores de identidade da federao e suas localizaes. Ao ser redirecionado para o WAYF ou DS, o usurio seleciona a sua instituio de origem, e, em seguida, passa a interagir com o seu provedor de identidade para fornecer as suas credenciais.
Captulo 1 - Introduo Federao CAFe
Provedores de identidade
Provedores de identidade implementam a poltica interna de gesto de identidade de uma instituio. 11 Atributos dos usurios: 22 Nome, data do vnculo, cargo ocupado, matrcula etc. 11 Mtodo de autenticao: 22 Login/senha, certificados etc. 11 Identificador nico para cada pessoa vinculada instituio.
Os provedores de identidade so responsveis por manter as informaes sobre as pessoas vinculadas a uma instituio, incluindo dados pessoais (nome, data de nascimento, CPF, nomes dos pais, sexo, data de nascimento etc.) e vnculos internos (data de admisso, cargo ocupado, nmero de matrcula, nmero VoIP etc.). O provedor de identidade estabelece seu mtodo de autenticao interno e deve garantir que cada pessoa da instituio tenha um identificador nico.
Provedores de servio
Provedores de servio implementam servios que devem ser disponibilizados para pessoas vinculadas s instituies. Requerem: 11 Autenticao: 22 Identificao dos usurios do servio. 11 Autorizao: 22 Atributos adicionais do usurio que garantem certos privilgios de acesso. 11 O foco est na implementao do servio, e no na manuteno de registros dos usurios. Os provedores de servio oferecem servios de acesso restrito, podendo requisitar ainda
privilgios de acesso baseados em informaes adicionais sobre os usurios (por exemplo, aluno matriculado em determinado curso, professor coordenador de curso etc.). Na implementao do servio so definidos os privilgios de acesso e as informaes adicionais que sero solicitadas. No cabe ao provedor de servio manter essas informaes, mas apenas solicit-las aos provedores de identidade.
A interao entre os elementos (atores) de uma federao mostrada na Figura 1.4 e segue os seguintes passos: 11 Passo 1: usurio faz acesso ao provedor de servio (SP). 11 Passo 2: o servio apresenta escolhas fornecidas pelo repositrio centralizado WAYF (Where Are You From) . 11 Passo 3: o usurio seleciona a sua instituio de origem. 11 Passo 4: o usurio redirecionado para o seu provedor de identidade (IdP). 11 Passo 5: o IdP autentica o usurio com o mtodo escolhido pela instituio. 11 Passo 6: o SP recebe garantia de autenticao do usurio pelo IdP. 11 Passo 7: se necessrio, o SP requisita atributos adicionais desse usurio ao IdP; para garantir a privacidade do usurio, apenas so disponibilizados atributos previamente acordados entre o IdP e o SP. 11 Passo 8: o provedor de servio decide sobre as autorizaes e disponibiliza o servio para o usurio.
Federaes acadmicas j so implementadas e mantidas em outros pases. Alguns exemplos: InCommon, Feide, Switch e UK Federation. Uma tendncia natural para o futuro ser a juno de federaes em confederaes, ampliando o escopo de servios disponibilizados aos usurios e o nmero de possveis usurios de um servio para alm dos limites geogrficos dos pases.
Federao CAFe
11 Iniciativa da RNP para criar uma Federao Acadmica no Brasil. 22 Projeto iniciado em julho de 2007 envolvendo cinco instituies: UFC, UFMG, UFF, UFRGS e Cefet-MG. 11 Metodologia adotada: 22 Integrar padres e solues de software utilizados por outras federaes. 22 Desenvolver ferramentas auxiliares e definir polticas para a federao.
No Brasil, os primeiros esforos para a construo de uma federao acadmica esto resultando na criao da Federao CAFe (Comunidade Acadmica Federada), cuja meta congregar todas as universidades e instituies de pesquisa brasileiras. A metodologia adotada para a construo da infraestrutura bsica da federao consiste na utilizao de padres e solues de software j disponveis e adotados por outras federaes, e da implementao e experimentao de ferramentas auxiliares para apoiar a implantao dos provedores de identidade e de servio. O projeto de criao da Federao CAFe inclui ainda o estudo, a proposio, a anlise e a validao de polticas para regular o funcionamento da federao (requisitos mnimos que provedores de identidade e de servio devero cumprir).
A Figura 1.5 mostra a arquitetura bsica proposta para a Federao CAFe. Inicialmente, o componente WAYF ser centralizado e mantido pela RNP. Os provedores de servio podero ser implantados nas prprias instituies que compem a federao (universidades e instituies de pesquisa) ou podero ser implantados por membros externos (os quais atuam apenas como provedores de servio). As polticas definidas para a operao da Federao CAFe devero estabelecer os critrios para a incluso de um membro na federao e as obrigaes dos provedores de identidade e de servio, bem como garantir a preservao dos requisitos bsicos de privacidade. A recomendao para os provedores de identidade a utilizao de servio de diretrios para a organizao das informaes sobre as pessoas vinculadas instituio. 11 Atividades desenvolvidas: 22 Definio do esquema brEduPerson. 22 Implementao de ferramentas auxiliares e roteiros de implantao. 22 Desenvolvimento de cursos para capacitao. 22 Suporte Active Directory. 11 Atividades em andamento:
Federao CAFe: Implantao do Provedor de Identidade
22 Integrao de novas instituies e servios Federao. 11 Provedores de Servios da CAFe: 22 Microsoft DreamSpark. 22 Atlases. 22 Gisela Science Gateway. 22 Portal de Peridicos da CAPES. 22 eduGAIN (provedores de servios internacionais).
w
A listagem dos IdPs pode ser consultada em: http://portal.rnp. br/web/servicos/ instituicoes-clientes
11 Adeso Federao CAFe: 22 Como Provedor de Identidade: 33 http://portal.rnp.br/web/servicos/adesao-a-cafe-como-provedor-de-identidade 22 Como Provedor de Servios: 33 http://portal.rnp.br/web/servicos/adesao-a-cafe-como-provedor-de-servico
10
Roteiro de Atividades 1
Atividade 1.1 Demonstrar o funcionamento de uma federao
Acesse servios providos na mquina do instrutor: 1. Abra um browser e acesse a URL indicada pelo instrutor; 2. Escolha o provedor de identidade; 3. Informe as credenciais de identificao; 4. Acesse o servio disponibilizado.
11
12
2
Reviso de LDAP e esquema brEduPerson
objetivos
Fazer uma reviso de servio de diretrio, LDAP e Esquema brEduPerson.
conceitos
LDAP e a utilizao do esquema brEduPerson para criar um modelo de dados mais adequado para as instituies brasileiras. Um diretrio uma lista de informaes sobre objetos arranjados em uma ordem que fornece detalhes sobre cada objeto. Exemplos comuns so listas telefnicas e catlogos de livros. Para a lista telefnica, os objetos listados so pessoas. Os nomes so organizados em ordem alfabtica e endereo e nmero de telefone so os detalhes fornecidos sobre cada pessoa. Em termos computacionais, um diretrio um banco de dados especializado, tambm chamado de repositrio de informao, guardando informaes ordenadas e de tipo definido sobre objetos. Uma caracterstica especial dos diretrios que eles so aces sados (lidos ou pesquisados) muito mais frequentemente do que atualizados (escritos). Como diretrios devem ser capazes de suportar grandes volumes de requisies de leitura, so tipicamente otimizados para acessos de leitura. Acesso de escrita deve ser limitado a administradores de sistema ou ao proprietrio de cada parte da informao.
13
Um banco de dados relacional, por outro lado, precisa suportar aplicaes, como aplicaes bancrias e de reservas areas, relativamente com grande volume de atualizaes. Diretrios permitem que usurios ou aplicaes encontrem recursos que tenham caractersticas necessrias para uma tarefa em particular. Por exemplo, um diretrio de usurios pode ser utilizado para procurar um endereo de e-mail ou nmero de fax. Os termos pginas brancas e pginas amarelas algumas vezes so utilizados para descrever o modo como um diretrio usado. Se o nome de um objeto (pessoa, impressora etc) conhecido, suas caractersticas (nmero de telefone, pginas por minuto) podem ser encontradas, em processo similar a procurar um nome nas pginas brancas de uma lista telefnica. Se o nome de um objeto desconhecido, o diretrio pode ser pesquisado por uma lista de objetos que possuem certas caractersticas. Diretrios guardados em um computador so muito mais flexveis que uma lista telefnica, pois podem ser pesquisados por critrios especficos, no apenas por um conjunto de categorias pr-definidas. Deste modo, um servio de diretrio toda infraestrutura capaz de disponibilizar a informao contida no diretrio. Esta infraestrutura representada por softwares, hardwares, processos e polticas para acessar e administrar a informao.
LDAP
11 Lightweight Access Directory Procotol, ou seja, protocolo leve de acesso a diretrios. 11 Especificado inicialmente em 1993 na RFC 1487. 11 Simplificao do Directory Access Protocol (DAP) para acesso a diretrios X.500. 11 Funciona sobre protocolos orientados conexo. 11 Arquitetura Cliente/Servidor.
O LDAP define um protocolo de mensagens utilizado por clientes e servidores de diretrio. O protocolo utiliza diferentes mensagens, como por exemplo requisio de bind, que pode ser enviada do cliente ao servidor LDAP no incio da conexo, ou operaes de busca, utilizadas para pesquisar por uma entrada especfica no diretrio. Trata-se de um padro aberto que define um mtodo para acessar e atualizar informaes em um diretrio, que tem ganhado ampla aceitao como um mtodo de acesso a diretrios da internet, tornando-se estratgico dentro das intranets. LDAP define um protocolo de comunicao, isto , define o transporte e o formato das mensagens utilizadas por um cliente para acessar informaes em um diretrio de tipo X.500. O LDAP no define o dire Federao CAFe: Implantao do Provedor de Identidade
trio; quando as pessoas falam sobre o diretrio LDAP, referem-se informao guardada que pode ser encontrada pelo protocolo LDAP. Todos os servidores LDAP compartilham caractersticas bsicas, desde que estejam baseados no padro proposto pelas Requests For Comments (RFC). Entretanto, devido a diferenas de implementao, eles no so completamente compatveis. LDAP foi desenvolvido como uma alternativa leve em relao ao DAP, requerendo recursos mais leves e o protocolo TCP/IP, mais popular que o protocolo de camadas OSI. LDAP tambm simplifica algumas operaes X.500 e omite as caractersticas mais exticas. A primeira verso do LDAP foi definida em X.500 Lightweight Access Protocol (RFC 1487), que foi substitudo pelo Lightweight Directory Access Protocol (RFC 1777). LDAP refinou ideias presentes em protocolos anteriores, sendo uma implementao mais neutra e de complexidade reduzida, servindo para encorajar o desenvolvimento de aplicaes com suporte a diretrios.
14
OpenLDAP
11 Implementao open source de LDAP v3. 11 Independente de plataforma. 11 Mecanismos fortes de autenticao SASL. 11 Confidencialidade e integridade de dados com uso do protocolo SSL/TLS. 11 Internacionalizao atravs do uso do Unicode. 11 Orientaes e continuao. 11 Revelao de esquemas.
O OpenLDAP foi escolhido como servidor de diretrio para o projeto e-AA, sendo instalado atravs dos scripts que esto disponveis na pgina do projeto: http://url.rnp.br? Procedimentos+de+en trada+na+CAFe
11 Controles e operaes estendidas. Existem muitas implementaes de servidores de diretrios, muitas das quais incompatveis entre si. Na maioria dos casos, as implementaes de servidores so concebidas para servir a determinado software e possuem restries de uso ou caractersticas exticas, como o caso do MS Active Directory ou IBM Lotus Domino. O OpenLDAP, implementao mantida pela Fundao OpenLDAP, um servidor LDAP de cdigo aberto e de uso geral, ou seja, no agrega nenhum outro servio que no tenha relao com a administrao do diretrio. Fundado em 1998, o projeto OpenLDAP foi baseado em uma implementao de servidor LDAP feita pela Universidade de Michigan.
Modelos LDAP
11 Modelos LDAP: 22 Descrevem as informaes que podem ser armazenadas no diretrio e o que pode ser feito com elas. 11 Esquemas LDAP: 22 Definem a estrutura de uma entrada em um diretrio e os atributos que podem ser inseridos nela.
Os quatro modelos bsicos definidos pelo LDAP (Informao, Nomes, Funcional e Segurana) permitem descrever por completo a operao de um servio de diretrio: que informaes podem ser armazenadas e o que pode ser feito com elas. O modelo de informao define o tipo de informao que pode ser armazenada em um dire trio LDAP, enquanto o modelo de Nomes define como a informao no diretrio LDAP pode ser organizada e referenciada. O modelo funcional descreve as operaes que podem ser realizadas nos dados presentes no diretrio e, por fim, o modelo de segurana recomenda o uso de autenticao e mecanismos de controle do acesso aos dados.
Captulo 2 - Reviso de LDAP
e esquema brEduPerson
Modelo de informao
Descreve a estrutura da informao no diretrio LDAP. 11 Unidades bsicas de informao so objetos chamados de entradas. 11 Entradas so compostas por uma coleo de atributos. 11 Entradas so dispostas em estrutura de rvore chamada Directory Information Tree (DIT). A unidade bsica de informao guardada no diretrio chamada de entrada. Entradas representam objetos de interesse no mundo real, como pessoas, servidores ou organizaes. Entradas so compostas de colees de atributos que contm informaes sobre o objeto. Todo atributo tem um tipo e um ou mais valores. O tipo do atributo est associado
15
com uma sintaxe que especifica o tipo de valor que pode ser gravado. Por exemplo, uma entrada deve ter um atributo, e a sintaxe associada ao tipo do atributo deve especificar os valores possveis para este atributo. Em adio, na definio dos dados que podem ser guardados como os valores de um atributo, uma sintaxe de atributo tambm define como estes valores se comportaro durante pesquisas e outras operaes. Alguns atributos possuem apelidos (alias) que podem ser utilizados como os nomes reais dos mesmos. Por exemplo, commonName e cn representam o mesmo atributo, sendo cn um alias para commonName. Vnculos podem ser associados com tipos de atributos para limitar o nmero de valores que podem ser guardados em um atributo ou para limitar o tamanho total de um valor. Por exemplo, um atributo que contm uma imagem poderia ser limitado ao tamanho de 10 KB para prevenir o uso demasiado de espao de armazenamento; ou um atributo usado para guardar um nmero de CPF pode ser limitado a um nico valor.
ou=rja
ou=hardware
Entradas so organizadas em forma de estrutura de rvore invertida, chamada DIT ou rvore de informao do diretrio. O modelo de nome define como estas entradas so iden tificadas unicamente, o que reflete a estrutura vista na Figura 2.1. 11 Entradas (Objetos): 22 Cada entrada possui um nome nico (DN). 22 Em geral, toda entrada utiliza uma classe abstrata, pelo menos uma estrutural, e pode possuir classes auxiliares. 22 Possuem apenas atributos definidos nas classes de objetos. 11 Classes de objetos: 22 Definem atributos opcionais e obrigatrios.
Federao CAFe: Implantao do Provedor de Identidade
22 Podem ser abstratas, estruturais ou auxiliares. 22 Podem herdar propriedades de outras classes. Uma classe de objetos (objectclass) um termo LDAP que denota um tipo de objeto representado por uma entrada do diretrio ou registro. Alguns tipos de objetos tpicos so person, organization, organizationUnit, domainComponent e groupOfNames. H tambm classes de objetos que definem relaes entre objetos, tal como a classe de objeto top, que estipula que um objeto pode ter objetos subordinados a ele, em uma estrutura hierrquica de rvore. Uma classe de objetos declarada como abstrata, estrutural ou auxiliar. Uma classe de objeto abstrata usada como modelo para criao de outras classes. Uma entrada do diretrio no pode ser instanciada por uma classe de objeto abstrata. Entradas do diretrio so instanciadas por classes de objetos estruturais. Uma classe de objetos auxiliar fornece um mtodo para estender classes estruturais sem mudar a definio do esquema desta classe estrutural. Deste modo, uma classe auxiliar no pode ser a nica a instanciar
16
uma entrada do diretrio. obrigatrio que em uma entrada do diretrio haja ao menos uma classe estrutural. Classes de objetos LDAP definem conjuntos de atributos padres que so listados como atributos obrigatrios (MUST) e atributos opcionais (MAY). Diferentes classes podem prescrever alguns atributos que se sobrescrevem, ou so redundantes com atributos de outras classes. Muitas classes de objetos so definidas em uma ordem hierrquica, onde uma classe dita herdeira de outra classe superior. Considere o objeto LDAP, que definido com as classes de objetos: 11 objectclass: top 11 objectclass: person 11 objectclass: organizationalPerson 11 objectclass: inetOrgPerson 11 objectclass: posixAccount A ordem mostrada para as classes de objetos acima indica uma relao hierrquica entre estas classes, mas no necessariamente. A classe top est no topo da hierarquia. Muitas outras classes que no so subordinadas a nenhuma outra classe tm top como classe superior. A classe person subordinada de top e requer que os atributos cn e sn sejam populados, permitindo vrios outros atributos opcionais. A classe organizationalPerson uma subclasse de person, portanto uma classe herdeira, assim como a classe inetOrgPerson.
Classes de objetos
objectclass ( <OID da classe de objeto> [ NAME <nome da classe de objetos> ] [ DESC <descrio da classe de objeto> ] [ OBSOLETE ] [ SUP <OID da classe de objeto ancestral> ] [ ( ABSTRACT | STRUTURAL | AUXILIARY ) ] [ MUST <atributos obrigatrios> ]
Captulo 2 - Reviso de LDAP
e esquema brEduPerson
Como exemplo, a classe posixAccount subordinada classe top e requer que os atributos cn e uid, dentre outros, sejam populados. Perceba que isso se sobrepe aos requerimentos para cn da classe person. Isto significa que temos que guardar o atributo cn duas vezes? No, ambas as classes requerem a presena de um atributo cn. No possvel adicionar atributos sem valor ou apenas preenchidos com espao, no havendo restrio em relao ao valor contido ou existncia de uma exclusividade de atributos em relao s classes. Os mtodos de definio de classe de objetos para LDAPv3 so descritos nas RFCs 2251 e 2252. A forma genrica de definio de classes de objetos mostrada abaixo:
17
[ DESC <descrio da classe de objeto> ] [ OBSOLETE ] [ SUP <OID da classe de objeto ancestral> ] [ ( ABSTRACT | STRUTURAL | AUXILIARY ) ] [ MUST <atributos obrigatrios> ] [ MAY <atributos opcionais> ] )
Cada classe de objeto comea com uma sequncia de nmeros delimitados por pontos. Estes nmeros so referenciados como OID (Object Identifier); WHSP uma abreviao de white space e apenas indica a necessidade de um espao. Depois do OID est o nome da classe (NAME) seguido por uma descrio (DESC). Se a classe subordinada a outra, a classe superior (SUP) listada. Finalmente, a definio da classe de objetos especifica os atributos obrigatrios (MUST) e os opcionais (MAY).
objectclass ( 2.5.6.6 NAME person SUP top STRUCTURAL MUST ( sn $ cn ) MAY ( userPassword $ telephoneNumber $ seeAlso ) )
Como mais um exemplo, suponha que uma classe chamada person foi definida incluindo um atributo surname. A classe de objeto organizationalPerson poderia ser definida como uma subclasse de person. A classe organizationalPerson teria os mesmos atributos da classe person e poderia adicionar outros atributos, como title. A classe de objetos person pode ser chamada de superior da classe organizationalPerson.
description
Atributos
attributetype ( <OID do atributo> [ NAME <nome do atributo> ]
Federao CAFe: Implantao do Provedor de Identidade
[ DESC <descrio do atributo> ] [ OBSOLETE ] [ SUP <OID da classe ancestral> ] [ EQUALITY <regra de comparao> ] [ ORDERING <regra de comparao ] [ SUBSTR <regra de comparao ] [ SYNTAX <OID da sintaxe> ] [ SINGLE-VALUE ] [ COLLECTIVE ] [ NO-USER-MODIFICATION whsp ] [ USAGE whsp attributeUsage ] )
18
Tudo que a classe de objetos faz definir os atributos, ou o tipo de itens de dados contidos em um tipo de objeto. A definio de atributos independente da definio de classe de objetos. Alguns exemplos so atributos tpicos como cn (common name), sn (surname), givenName, mail, uid e userPassword. Como as classes de objetos, os atributos so definidos com OIDs nicos, com cada atributo contendo tambm um nico nmero OID ligado a ele. Uma classe de objeto instancia os atributos, permitindo que sejam utilizados de forma consistente nas entradas do diretrio. A definio de atributos independente da definio de uma classe de objetos. Na definio de um atributo, h opes como SUP, OBSOLETE, SINGLE-VALUE, COLLETIVE, NO-USER-MODIFICATION e USAGE. As demais opes devem ser fornecidas na definio. Mesmo o uso de regras de comparao depender de cada definio. Atributos com a opo SINGLE-VALUE no podem ter mais de um valor nas entradas. NO-USER-MODIFICATION geralmente usado em atributos controlados ou de uso exclusivo do servidor do servio de diretrio.
attributetype ( 2.5.4.20 NAME telephoneNumber DESC RFC2256: Telephone Number EQUALITY telephoneNumberMatch SUBSTR telephoneNumberSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.50{32} )
O atributo telephoneNumber definido com um OID nico, um nome e uma breve descrio. O nome um apelido para o OID. Os valores que podem ser associados a este atributo so descritos pela sintaxe 1.3.6.1.4.1.1466.115.121.1.50{32}, que aceita nmeros, hfens e espaos e no mximo at 32 caracteres. Padro IANA para OIDs: 11 Cada atributo e classe de objeto possui um nico identificador OID, registrado na IANA http://www.iana.org. 11 Para criar novos atributos e classes de objetos preciso requisitar o cadastro da instituio junto IANA. 11 A RNP adquiriu o OID 1.3.6.1.4.1.15996, e novos atributos e objetos podem ser numerados a partir dele.
Captulo 2 - Reviso de LDAP
e esquema brEduPerson
Cada elemento de um esquema identificado por um OID (Object Identifier). Para evitar ambiguidades e estabelecer uma padronizao para a codificao desses identificadores, os OIDs so registrados por uma autoridade especfica, a IANA (Internet Assigned Numbers Authority). O sistema de numerao de objetos hierrquico e a IANA garante que um OID ser usado por um objeto apenas. Exemplos de sintaxes: 11 Booleano: 1.3.6.1.4.1.1466.115.121.1.7 11 DN: 1.3.6.1.4.1.1466.115.121.1.12 11 Caractere UTF-8: 1.3.6.1.4.1.1466.115.121.1.15 11 Inteiro: 1.3.6.1.4.1.1466.115.121.1.27 11 Caractere numrico: 1.3.6.1.4.1.1466.115.121.1.36 11 Endereo postal: 1.3.6.1.4.1.1466.115.121.1.41
19
A RFC 2252 define um conjunto de sintaxes que podem ser usadas com o LDAP-v3 e as regras pelas quais os valores dos atributos definidos por meio dessas sintaxes so representados para serem transmitidos via protocolo LDAP. Destacamos alguns exemplos de sintaxes de atributos. Nome BooleanMatch CaseIgnoreMatch CaseIgnoreOrderingMatch CaseIgnoreSubstringsMatch CaseExactMatch NumericStringOrderingMatch NumericStringMatch Tipo equality equality ordering substrings equality ordering equality Descrio Booleana. No diferencia maisculas e minsculas. No diferencia maisculas e minsculas. No diferencia maisculas e minsculas. Diferencia maisculas e minsculas. Numrico. Numrico.
Tabela 2.1 Exemplos de regras de comparao.
A RFC 2798 descreve um conjunto de regras de casamento para uso com o LDAP-v3. Trs tipos de comparao podem ser usados: 11 Igualdade (equality). 11 Ordenao (ordering). 11 Concatenao (substring). Destacamos exemplos de regras de casamento para cada um dos tipos de comparao.
Modelo de nomes
11 Entradas so nomeadas de acordo com sua posio na DIT. 22 DNs so formados por Relative Distinguished Names (RDN) com a forma:
que identifica sem ambiguidades uma nica entrada single. DNs so feitos de sequncias de RDNs (Relative Distinguished Name) ou nome distinto relativo. Cada RDN em um DN corresponde a um ramo em uma DIT saindo da raiz at a entrada do diretrio. Cada RDN derivado de atributos de entradas de diretrio. De forma simplificada, um RDN tem a forma <nome do atributo> = <valor>. Um DN composto de uma sequncia de RDNs separados por vrgulas. Entradas em um diretrio LDAP so identificadas por seus nomes. Caractersticas destes nomes: 11 Eles tm duas formas, uma representao por cadeias de caracteres e uma URL. 11 Eles tm uma sintaxe uniforme. 11 O limite do espao de nomes no evidente.
20
Um componente de um nome chamado de Relative Distinguished Name (RDN), que representa o ponto dentro da hierarquia do espao de nomes. RDNs so separados e concatenados usando uma vrgula (,). Cada RDN de um tipo definido. RDNs podem ser multi-valorados: atributo = valor + atributo = valor. dc=rnp, dc=br ou=bsa ou=operadores
cn sn Joo Silva silva jsilva joao.silva@rnp.br
ou=rja
ou=hardware
uid Mail
Em sntese, as entradas de um diretrio so dispostas de forma hierrquica, onde o DN de uma entrada indica a localizao de uma entrada dentro da DIT. DNs so formados por RDNs, que so na realidade os DNs separados por vrgula das entradas anteriores, contando-se da raiz da DIT at a entrada em questo. Cada entrada recebe como RDN um atributo ou uma soma de atributos com seus respectivos valores.
cn=Joao Silva,dc=RNP,dc=BR
Este um nome contendo trs RDNs:
ou=operadores + ou=funcionarios,ou=BSA,o=RNP
Novamente h trs RDNs; porm, o primeiro RDN multi-valorado:
cn=Joao Silva,ou=operadores\,BSA,dc=RNP,dc=br
Usando-se barra invertida (\), tem-se um caractere de escape para utilizar vrgula (,), igual (=) e demais caracteres especiais na formao dos RDNs:
Captulo 2 - Reviso de LDAP
e esquema brEduPerson
ou=Antes\Depois,o=Teste,c=br
Este um exemplo em que o valor contm o caractere de retorno (0DH). Para definio mais detalhada sobre a forma de string de DNs, consulte a RFC 2253.
ldap://<host>:<porta>/<caminho>,
21
<dn>[?<atributos>[?<escopo>?<filtro>]]]
O <dn> um nome distinto LDAP (DN) usando a representao em string. O <atributo> indica os atributos que devem ser retornados da entrada ou entradas. Se for omitido, todos os atributos sero retornados. O <escopo> especifica o escopo da busca a ser feita. O escopo pode ser uma entrada, um nvel, entrada e filhos imediatos, ou uma sub-rvore inteira. O filtro especifica o filtro de busca a ser aplicado s entradas dentro do escopo especificado durante a busca. O formato de URL permite a clientes de internet, por exemplo navegadores web, terem acesso direto ao protocolo LDAP, e consequentemente ao diretrio.
Modelo funcional
Trs categorias de operaes que podem ser realizadas em LDAPv3: 11 Autenticao: 22 bind 22 unbind 22 abandon 11 Pesquisa: 22 search 22 compare 11 Atualizao: 22 add, modify, delete e modifyRDN O modelo funcional LDAP composto por trs categorias de operaes que podem ser feitas contra um servidor LDAPv3:
11 Autenticao: operaes de Bind, Unbind e Abandon usadas para conectar a um servidor LDAP ou desconectar-se dele, estabelecer direitos de acesso e proteger a informao. 11 Pesquisa: Search e Compare para pesquisar ou comparar entradas de acordo com o critrio especificado. 11 Atualizao: Add para adicionar uma entrada, Delete para exclu-la, Modify para modific-la e ModifyRDN para modificar seu RDN. 11 Comparao: a operao de comparao utilizada para verificar as entradas que tm um atributo com determinado valor. Se a entrada tem o valor, a operao Compare
Federao CAFe: Implantao do Provedor de Identidade
retorna VERDADEIRO; caso contrrio, retorna FALSO. Pesquisa: 11 Base. 11 Escopo. 11 Filtro de busca. 11 Atributos para retornar. 11 Limites. A operao mais comum a de pesquisa, bastante flexvel e com algumas opes mais
complexas, permitindo a um cliente pedir que o servidor LDAP pesquise atravs de alguma poro da DIT, procurando informaes de acordo com o critrio especificado e listando os resultados. No h distino entre ler e listar. A pesquisa pode ser muito geral ou especfica.
22
Ela permite especificar um ponto de incio dentro da DIT, a profundidade da busca, os atributos que uma entrada deve ter para ser considerada compatvel e os atributos que devem ser retornados e ainda se os valores destes atributos devem ser retornados ou no. Para realizar uma busca ou pesquisa, os seguintes parmetros devem ser especificados: 11 Base: um DN que define o ponto de incio da busca, chamado de objeto base. O objeto base um n dentro da DIT. 11 Escopo: especifica a profundidade da busca iniciada do objeto base dentro da DIT. H trs escolhas: baseObject, singleLevel e wholeSubtree. Se baseObject especificado, somente o objeto base examinado. Se singleLevel especificado, somente as entradas filhas do objeto base so examinadas. J com wholeSubtree, o objeto base e todos seus descendentes so examinados. 11 Filtro de busca: especifica o critrio ao qual uma entrada deve se encaixar para que seja retornada na pesquisa. 11 Atributos para serem retornados: seleciona os atributos que devem ser retornados das entradas que se encaixam no critrio de busca. 11 Limites: limitao do nmero de entradas retornadas.
Filtros de busca
Operador & | ! = ~= >=
Tabela 2.2 Atributo operador valor.
<= *
Um filtro de busca define a qual critrio uma entrada deve se encaixar para ser retornada em
Captulo 2 - Reviso de LDAP
e esquema brEduPerson
uma pesquisa. O componente bsico de um filtro de busca um valor de atributo na forma: Filtro: <Atributo> <operador> <valor> Filtros de busca podem ser combinados com operadores lgicos para formar filtros mais complexos. A sintaxe para combinar filtros :
23
Operaes de autenticao so usadas para estabelecer e finalizar uma sesso entre um cliente e um servidor LDAP. A sesso pode estar segura em vrios nveis, desde uma sesso annima insegura (uma sesso autenticada na qual o cliente identifica-se por fornecer uma senha) at sesso criptografada com mecanismos SASL ou SSL. 11 Bind: inicia uma sesso LDAP entre um cliente e um servidor. Permite ao cliente identificar-se ao servidor; 11 Unbind: termina uma sesso cliente-servidor; 11 Abandon: permite ao cliente pedir ao servidor que cancele uma operao.
Representao LDIF
LDAP Data Interchange Format: 11 Descrio de conjunto de entradas. 11 Descrio de sentenas de atualizao. LDAP Data Interchange Format (LDIF) um formato de gerenciamento de informao que, como o nome sugere, significa formato LDAP de alterao de informao. Este formato
permite manipular facilmente grandes quantidades de informao. A forma bsica de uma entrada LDIF :
usar a codificao UTF-8 para suportar internacionalizao. Existem duas construes para um LDIF: 11 Descrio de conjuntos de entradas; 11 Descrio de sentenas de atualizao. 11 Descrio de conjunto de entradas
24
Um LDIF cuja estrutura a de conjuntos de entradas contm todas as informaes das entradas nele contidas, isto , todos os atributos e seus respectivos valores esto presentes em cada uma de suas entradas:
dn: o=rnp objectclass: top objectclass: organization o: RNP description: Rede Nacional de Ensino e Pesquisa dn: ou=esr objectClass: top objectclass: organizationalUnit ou: ESR description: Escola Superior de Redes
Com este tipo de LDIF, quando uma entrada modificada, a entrada sobrescrita, isto , todas as informaes da entrada no diretrio so substitudas pelas informaes no LDIF quando feita uma operao de atualizao. Os atributos que no existem no LDIF, mas que existem na entrada do diretrio sero apagados quando for realizada a operao de atualizao. As operaes com este tipo de LDIF so similares a sobrescrever um arquivo de um sistema operacional por outro arquivo; as informaes do arquivo antigo deixam de existir, dando lugar a novas informaes. Esta estrutura de LDIF importante ao carregar ou fazer uma cpia do diretrio inteiro e adicionar uma nova entrada. Descrio de conjunto de entradas:
q
Captulo 2 - Reviso de LDAP
e esquema brEduPerson
objectclass: top objectclass: person cn: Joao Silva sn: Silva cn:: IGJlZ2lucyB3aXRoIGEgc3BhY2U= cn:< file:///tmp/arquivo
25
J um LDIF estruturado em sequncias de atualizao contm apenas as informaes relevantes para as modificaes necessrias a uma entrada do diretrio. Comparado ao tipo anterior, onde o foco est em operaes realizadas nas entradas como um todo, em um LDIF o tipo de sequncias de atualizao permite realizar modificaes em um nico atributo de uma entrada. Sua forma bsica :
dn: <nome distinto> changeType: <Tipo da operao> <operao>: <atributo> <atributo>: <valor> <operao>: <atributo> <atributo>: <valor> ...
Observe que em todos os tipos de LDIF as entradas so separadas por uma linha em branco e, para um LDIF de sequncias de atualizao, cada operao em um atributo diferente deve ser separada por uma linha contendo um hfen (-). Descrio de sentenas de atualizao:
dn: <distinguishedname> changetype: <[modify|add|delete|modrdn]> <[modify|add|delete|modrdn]>: <attributetype> <attrdesc>: <value1> ... <[modify|add|delete|modrdn]>: <attributetype> <attrdesc>: <value1>
26
cn: Joao cn: Joao Silva sn: Silva dn: cn=Joao Silva,dc=rnp,dc=br changetype: modify add: givenName givenName: jo givenName: Joao replace: description description: Funcionario Joao
Os comandos listados fazem parte da distribuio do OpenLDAP. Estes comandos shell so utilizados com argumentos que configuram a operao que se deseja realizar no diretrio. O ldapadd na realidade um ldapmodify com o argumento -a indicando adio de entradas. Para o ldapadd, os parmetros mais comuns so um usurio com permisso de escrita, uma senha e um arquivo LDIF contendo as entradas a serem adicionadas no diretrio. No caso do seja por operao de excluso ou adio de novos dados, ou apenas atravs da substituio de valores de atributos. O ldapdelete tambm precisa de um usurio com permisses de escrita, e o arquivo que passado como parmetro contm uma lista de DNs que devem ser excludos do diretrio. Esta lista pode ser passada na linha de comando. Por fim, ldapsearch requer os parmetros listados anteriormente e o resultado da busca est sujeito a permisses de acesso ao diretrio para o usurio utilizado. Exemplos de comandos shell:
Captulo 2 - Reviso de LDAP
e esquema brEduPerson
ldapmodify, o que muda que o arquivo LDIF contm os dados que devem ser modificados,
27
As principais opes utilizadas nos comandos shell so os seguintes parmetros: 1. -x : informa ao comando para utilizar bind simples, no utilizando SASL. 2. - D: define qual ser a identidade utilizada para realizar a operao. 3. -W: retorna o prompt para que a senha da identidade indicada com o parmetro - D seja digitada. 4. -f : l um arquivo no formato LDIF contendo as operaes a serem realizadas no diretrio.
Apache Directory Studio um cliente LDAP feito em uma plataforma Eclipse e possuindo uma srie de plugins. O ApacheDS uma ferramenta completa para ser utilizada em qual Federao CAFe: Implantao do Provedor de Identidade
quer servidor LDAP. LDAP Browser permite no apenas mostrar os dados como tambm criar, modificar, editar e remover entradas. A Figura 2.4 mostra a tela inicial do ApacheDS. Para utiliz-lo como cliente LDAP, basta ir ao menu LDAP e configurar a conexo com um servidor.
28
Escolhendo nova conexo, uma nova tela aberta (Figura 2.5), onde possvel configurar o nome de conexo, o servidor LDAP a ser conectado, a porta de acesso e o uso de protocolos de segurana.
A tela mostrada na Figura 2.6 permite configurar as opes de acesso, ou seja, usurio e senha de acesso ao servidor LDAP.
29
Com a opo Fetch Base DNs possvel obter o DN da base LDAP apenas consultando o servidor.
30
A Figura 2.7 mostra o ambiente padro da funo browser do ApacheDS, que possibilita navegar pelo diretrio LDAP e executar com simplicidade modificaes nos dados. Pode-se perceber as abas descritas como LDAP Browser, Entry Editor e Modification Logs, que so teis na administrao de alguns dados e para a visualizao de informaes no diretrio.
Esquema brEduPerson
Esquema proposto para membros de instituies de ensino superior no Brasil, com relacionamentos modelados em estrutura hierrquica. Divide-se em: 11 Informaes gerais sobre qualquer cidado. 11 Informaes gerais sobre membros de uma instituio. 11 Informaes especficas sobre funcionrios e alunos. O esquema brEduPerson uma proposta de esquema LDAP para participantes de institui-
es de ensino superior no Brasil. O esquema proposto armazena informaes especficas para a realidade do pas, como: informaes genricas de qualquer cidado brasileiro (CPF, entre outras), informaes gerais sobre os membros de uma instituio (e-mail, cargo, entre outros), alm de informaes especficas sobre os funcionrios e alunos destas instituies.
31
Ao definir o modelo de nomes a ser usado em instituies de ensino e pesquisa, necessrio tratar a questo do modelamento de relacionamentos entre conjuntos de informaes. Devemos capturar na base de dados, por exemplo, o fato de uma mesma pessoa poder desempenhar diferentes papis dentro da instituio. Exemplos: um aluno matriculado em mais de um curso, um professor desempenhando diferentes funes, com cada uma delas associada a uma data de ingresso e de sada, entre outras informaes. Para modelar esses relacionamentos, estudamos algumas alternativas e optamos pelo uso de uma soluo hierrquica, que ser descrita a seguir.
Modelo proposto
11 O item principal pessoa de uma instituio ser tratado como um container abaixo do qual aparecero ns com as informaes relacionadas. 11 Vnculos distintos com a instituio. Exemplos: 22 Professor, aluno, funcionrio. 22 Telefones VoIP. 22 Fontes biomtricas.
Os ns em um diretrio LDAP formam uma rvore. Cada n, independentemente de ser pai de algum outro n na rvore, uma entrada com suas prprias informaes (atributos). Esses ns so por vezes chamados de containers na terminologia LDAP. O item principal (em nosso exemplo, uma pessoa com insero em instituio de ensino
Federao CAFe: Implantao do Provedor de Identidade
e/ou pesquisa) com o qual se deseja relacionar as demais informaes, ser tratado como um container, abaixo do qual aparecero ns com as informaes relacionadas. Por exemplo, abaixo da entrada que descreve dados bsicos de uma pessoa, podemos ter entradas descrevendo vnculos como professor e aluno.
32
Joo
Vnculo 1 do Joo
Vnculo 2 do Joo
Figura 2.8 Entradas descrevendo vnculos.
Esta soluo tem como vantagem o fato de ser mantida a possibilidade de recuperao da informao em uma nica consulta e os tipos originais dos atributos, e de no serem criadas classes e atributos artificiais. Como desvantagem, temos uma rvore cuja topologia ditada por relacionamentos, o que pode causar confuso por no ser a maneira tradicional de desenhar uma topologia. Exemplos de entradas:
dn: uid=silvana,ou=people,dc=uff,dc=br objectClass: person objectClass: inetOrgPerson objectClass: brPerson objectCass: schacPersonalCharacteristics uid: silvana brcpf: 12345678900 brpassport: A23456
Captulo 2 - Reviso de LDAP
e esquema brEduPerson
33
dn:braff=2,uid=silvana,ou=people,dc=uff,dc=br objectclass: brEduPerson braff: 2 brafftype: student brEntranceDate: 20070205 brExitDate: 20080330
uid=silvana
Saiba mais
Consulte o documento Proposta de Esquema brEduPerson - Federao CAFe, disponvel no site da CAFe.
bra=1
btafftype:faculty brEntranceDate:20070205
brvoipphone=1
brvoipalias:2346 brEduVoIPtype:pstn
bra=2
Esquemas: 11 brEduPerson-20080917-0.0.6.schema 11 schac-20061212-1.3.0.schema 11 RFC 2252 11 RFC 2798 11 LDAP(v.3): Attribute Syntax Definitions 11 LDAP(v.3): Matching Rules
34
Roteiro de Atividades 2
Atividade 2.1 Instalar e configurar um servio de diretrio OpenLDAP
O projeto fornece um roteiro detalhado para instalao de todos os softwares necessrios para que a sua instituio faa parte da federao CAFe. Information Technology Infrastructure Library (ITIL).
Execute os comandos passo a passo para a instalao do diretrio LDAP na sua mquina virtual. Para facilitar abra um terminal SSH e copie e cole os comandos. 1. Logue-se na VM como sudo:
apt-get update
3. Faa a instalao do pacote slapd, especificando que a configurao padro no dever ser feita. Caso seja exibida uma tela pedindo para informar a senha, cancele a instalao e execute o comando abaixo novamente, escolhendo a opo de no configurar o diretrio:
slapd/no_configuration
boolean true
/etc/init.d/slapd stop
5. Fazer a cpia dos arquivos de configurao:
cp /opt/treinamento/ldap/slapd /etc/default/slapd cp /opt/treinamento/ldap/slapd.conf /etc/ldap/slapd.conf cp /opt/treinamento/ldap/ldap.conf /etc/ldap/ldap.conf cp /opt/treinamento/ldap/DB_CONFIG /var/lib/ldap/DB_CONFIG cp /opt/treinamento/ldap/eduperson.schema /etc/ldap/schema/ eduperson.schema cp /opt/treinamento/ldap/breduperson.0.0.6.schema /etc/ldap/schema/ breduperson.0.0.6.schema cp /opt/treinamento/ldap/schac-20061212-1.3.0 /etc/ldap/schema/ schac-20061212-1.3.0
Captulo 2 - Roteiro de Atividades 2
35
6. Aps fazer a cpia dos arquivos, deve-se atentar para a necessidade de fazer breves alteraes em alguns dos arquivos conforme segue: 11 /etc/ldap/slapd.conf : deve-se substituir as ocorrncias de ${HOSTNAME} pelo IP da mquina. Deve-se substituir ainda as ocorrncias de ${RAIZ_BASE_LDAP} pelo valor correspondente raiz da base LDAP de sua instituio, como por exemplo:
dc=instituicao,dc=br
11 /etc/ldap/ldap.conf : deve-se substituir as ocorrncias de ${RAIZ_BASE_LDAP} pelo valor correspondente raiz da base LDAP. Para substituir no editor de texto VIM pode-se utilizar o comando:
:%s/palavra_a_ser_substituda/nova_palavra/g
Exemplo:
:%s/ ${RAIZ_BASE_LDAP}/dc=ufmg,dc=br/g
7. Gerao de certificado SSL para LDAP: antes de executar este comando, troque as ocorrncias de SUBSTITUIR_IP_MAQUINA pelo IP da sua VM. Certifique-se de que o arquivo /opt/treinamento/openssl.cnf possui o seu IP configurado. Se o IP que consta no arquivo for diferente, edite trocando para o IP da sua VM.
openssl genrsa -out /etc/ldap/SUBSTITUIR_IP_MAQUINA.key 2048 -config /opt/treinamento/openssl.cnf openssl req -new -key /etc/ldap/SUBSTITUIR_IP_MAQUINA.key -out / etc/ldap/SUBSTITUIR_IP_MAQUINA.csr -batch -config /opt/treinamento/ openssl.cnf openssl x509 -req -days 730 -in /etc/ldap/SUBSTITUIR_IP_MAQUINA. csr -signkey /etc/ldap/SUBSTITUIR_IP_MAQUINA.key -out /etc/ldap/ SUBSTITUIR_IP_MAQUINA.crt
8. Inicialize o LDAP atravs do comando:
/etc/init.d/slapd start
9. Carga Inicial de Dados: o LDAP que foi instalado encontra-se vazio, ou seja, no h nenhum elemento em sua base de dados. Agora faremos a carga inicial de dados na
Federao CAFe: Implantao do Provedor de Identidade
base LDAP. Para isso, edite o arquivo popula.sh que se encontra no arquivo /opt/treinamento, alterando o valor da varivel RAIZ_BASE_LDAP para o valor informado no passo 5: dc=<SUA_INSTITUIO>,dc=br No se esquea de salvar. Para abrir e editar o arquivo digite:
vim /opt/treinamento/popula.sh
10. Execute o script atravs das seguintes linhas de comando:
36
11. Execute os seguintes comandos para instalar utilitrios para manipulao do LDAP:
dn: uid=<LOGIN>,ou=people,dc=<SUA_INSTITUICAO>,dc=br objectClass: person objectClass: inetOrgPerson objectClass: brPerson objectClass: schacPersonalCharacteristics uid: <LOGIN> brcpf: 12345678900 brpassport: A23456 schacCountryOfCitizenship: Brazil telephoneNumber: +55 22 81389199 mail: <EMAIL> cn: <NOME> sn: <SOBRENOME> userPassword: <SENHA> schacDateOfBirth: <DATA NASC. : YYYYMMDD> schacGender: 10
2. Carregue o arquivo atividade2.ldif no diretrio:
37
3. Verifique a insero dos dados no diretrio substituindo <LOGIN> e <SUA_INSTITUICAO> pelo valor associado no item 1.
5. Importe um arquivo LDIF com o ApacheDS: 11 Abra o arquivo people.ldif (que se encontra na pasta treinamento da sua rea de trabalho do Windows) e edite-o trocando <SUA_INSTITUICAO> pela sigla da sua instituio. Salve o arquivo; 11 No menu File escolha a opo Open File; 11 Clique em Browse localizado acima do arquivo e escolha o nome da conexo; 11 Para importar o LDIF, clique na seta verde (Execute LDIF) ao lado do boto Browse e observe a importao das entradas; 11 Verifique se as entradas foram importadas.
38
3
Construindo metadiretrios com EID
objetivos
Demonstrar como construir metadiretrios com a ferramenta Export Import Directory (EID), detalhando a definio de repositrios, extraes, processos e agendamentos.
conceitos
Metadiretrio
11 Base de dados intermediria para construo do diretrio. 11 Modelo independe do esquema final do diretrio.
39
Um metadiretrio uma juno de esquemas e atributos de diferentes repositrios em uma viso comum. O metadiretrio ideal permite a um administrador fazer alteraes em um repositrio e prover a atualizao da informao em todos os diretrios ligados a ele.
A Figura 3.1 demonstra o fluxo de informaes em um metadiretrio: os dados das bases corporativas sero importados para o metadiretrio, e do metadiretrio os dados podem ser exportados para o LDAP e serem utilizados para autenticao em um portal, por exemplo.
EID
11 Desenvolvido pelo Grupo So Tom da UFMG. 11 Recursos da RNP: 22 GTs diretrio. 22 Projeto e-AA. 11 Recursos da SESu/MEC: 22 Projeto PingIFES.
O EID foi desenvolvido pelo Grupo So Tom da UFMG para ser utilizado no projeto Infraestrutura de Autenticaoe Autorizao (e-AA), que tem como objetivo principal implantar um servio experimental de autenticao e autorizao federativa para as instituies de
Federao CAFe: Implantao do Provedor de Identidade
ensino e pesquisa. Export Import Directory Tool: 11 Ferramenta para facilitar a construo e manuteno de metadiretrios. 11 Extenso do PCollecta. 11 Integrado aos processos administrativos j consolidados. 11 Atualizao contnua dos dados.
O EID foi desenvolvido tendo por base a ferramenta PCollecta, uma ferramenta de Extrao, Transformao e Carga (ETL), utilizada pelas instituies de ensino superior para alimentao do modelo de dados (PingIFES) definido pelo MEC. O EID integrado aos processos administrativos j consolidados pelas instituies e possibilita a atualizao contnua dos dados importados das bases corporativas.
40
11 Importao por conexo direta nas bases institucionais. 11 Exposio dos dados via web services: 22 Dados expostos como XML. 22 Pode ser usado por diversas aplicaes clientes.
O EID pode conectar-se diretamente s bases de dados institucionais, desde que seja possvel utilizar conectores JDBC para bancos relacionais, alm de arquivos CSV e diretrios LDAP. Os dados importados so associados a pessoas, e os registros completos dessas pessoas podem ser facilmente recuperados utilizando uma interface web service disponibilizada pelo EID.
A Figura 3.2 mostra que vrios servios, como VoIP, e-mail e certificados digitais podem ser tambm incorporados ao metadiretrio. O metadiretrio, por sua vez, alimentado atravs do EID pelas bases corporativas mantidas pelos processos administrativos da organizao. Estrutura dos dados 11 Grupos e pessoas so tipos de objetos. 11 Objetos possuem um identificador global chamado Global Unique Identifier (GUID). 11 Dados so incorporados a pessoas e grupos pela implementao de classes. 11 Estrutura semelhante a um diretrio LDAP. O EID utiliza o conceito de Objeto (EidObject) para representar as informaes que armazena. So considerados objetos: pessoas e definies de grupos. Um objeto uma entidade que possui um identificador nico e um conjunto de atributos, sendo a unidade mnima de armazenamento de informaes. Os atributos so mapeamentos nome-valor, onde o valor possui um tipo ou domnio definido. Os nomes e os tipos dos atributos so especificados em entidades denominadas classes.
41
As classes so definies de agrupamentos de atributos. Cada classe pode ser considerada uma definio de um tipo de dado composto. Denominamos de instanciao da classe o processo de atribuio de valores aos atributos definidos pela classe e sua associao a um objeto. Um objeto pode estar associado a vrias instncias de uma mesma classe ou de classes diferentes, mas no aos atributos individualmente. O usurio da ferramenta livre para definir as classes que atendem s suas necessidades. Todo objeto possui um identificador global, denominado GUID, gerado automaticamente pela ferramenta, que o identifica unicamente em todo sistema. Esse atributo definido por uma classe especial denominada EidObject. Estrutura dos dados: 11 Toda classe registrada gera uma tabela. 11 As instncias de classes so vinculadas via EidObject.
Toda classe criada na aplicao gera uma tabela no banco de dados. A classe EidObject se relaciona com as demais classes do sistema, denominadas EidClasses. Qualquer classe definida pelo usurio uma EidClass. Essas classes agregam a um objeto EID seus atributos especficos.
EID e brEduPerson
11 Classes fornecidas pelo grupo e-AA: 22 Identificao. 22 Conta. 22 E-mail. 22 Endereo. 22 Telefone.
Federao CAFe: Implantao do Provedor de Identidade
22 Professor. 22 Tcnico. 22 Aluno. 22 Biometria. 11 Definem os atributos necessrios para brEduPerson. 11 Converso pr-configurada das classes para LDIF. 11 Outras classes podem ser definidas. O EID no est limitado a classes especficas (exceto pela exigncia das classes Identificao, Grupo e MembroDeGrupo), de forma que classes podem ser definidas a critrio da organizao utilizadora.
42
Com o intuito de facilitar a implantao da federao, o grupo e-AA fornece algumas classes que podem ser usadas para alimentar diretrios LDAP sem nenhuma configurao adicional. A razo disso que j existe uma converso pr-configurada para a ferramenta EID2LDAP, como veremos adiante. As classes fornecidas pelo grupo e-AA definem os atributos necess rios para brEduPerson. Outras classes podem ser definidas pela prpria organizao, para suprir suas necessidades. Estas modificaes certamente devero ser tambm refletidas na converso utilizada pelo EID2LDAP para que as informaes fluam automaticamente para o diretrio.
Acesso
11 Deve existir um ou mais administradores. 11 Responsabilidades: 22 Definir classes. 22 Definir repositrios de origem. 22 Configurar as extraes. 22 Agendar as extraes. 22 Gesto manual de pessoas. 22 Gesto manual de grupos. 22 Administrador responsvel pela configurao. Usurios definidos em arquivo XML (padro).
O EID pode ser acessado atravs da URL http://<mquina>:8080/eid. O usurio administrador dever definir as classes necessrias instituio utilizadora, fazer as configuraes necessrias para a realizao de extraes de dados de outras fontes para alimentar o metadiretrio, alm de fazer a gesto manual de pessoas e grupos. Na instalao padronizada fornecida, as classes recomendadas para o brEduPerson so instaladas automaticamente. Para acesso aplicao devem ser definidos um ou mais administradores. A autenticao do EID pode ser feita com vrios tipos de bases de usurios (arquivo XML, banco relacional, LDAP etc.), que so configuradas no servidor de aplicao (Tomcat). A distribuio utilizada configura os usurios no arquivo tomcat-users.xml. O login e senha de um administrador so definidos no momento da instalao. Na tela inicial do EID, a grande maioria dos comandos est localizada na parte superior da tela, que disponibiliza menus e botes. Em algumas telas os botes podem ser encontrados em outras posies, o que mais comum nos casos onde a tela demanda a incluso de uma lista de itens. 11 O menu EID d acesso s funcionalidades de gesto de pessoas, grupos e classes, alm de opes de conciliao. 11 O menu Configurao possibilita configurar os repositrios, extraes, processos, par metros globais e ainda a opo de importar e exportar configurao de processos. 11 O menu Processamento d acesso ao agendamento de processos, resultado de processamento e controle do agente que escalona os processos. 43
Captulo 3 - Construindo metadiretrios
com EID
11 O menu Administrao d acesso consulta de mapeamentos dos sistemas e tambm consulta a repositrios de dados cadastrados.
Configuraes iniciais
11 Diretrio de instalao do EID. 11 Classes. O EID compila cdigo Java dinamicamente para cada nova classe definida. O cdigo e as classes compiladas so colocados no diretrio WEB-INF da aplicao, motivo pelo qual necessrio configurar este caminho no sistema. Para realizar esta configurao, acesse o
menu EID e escolha a opo Configurao. Nesta tela dever ser informado o caminho para o diretrio WEB-INF do EID, diretrio localizado dentro do Tomcat no qual sua aplicao est sendo executada. Em seguida, devem ser definidas as classes que sero alimentadas, muito embora novas classes possam ser definidas posteriormente. A distribuio padro j configura previamente o diretrio de instalao e as classes que sero utilizadas no decorrer do curso. O EID confia na existncia de trs classes bsicas para a conciliao de registros e criao de agrupamentos, que so as seguintes classes: 11 Identificao: dados bsicos de identificao pessoal; 11 Grupo: definio de critrios de agrupamento; 11 MembroDeGrupo: associao de pessoas a grupos.
A Figura 3.4 mostra a tela de listagem de classes definidas no sistema. Na verso atual do sistema, a alterao na definio de uma classe no suportada, podendo produzir erros. De uma forma geral, todas as telas do sistema apresentam uma caixa de seleo, que usada para selecionar registros para excluso, um comando para visualizar os detalhes
44
de cada registro (representado pela lupa) e um comando para editar os dados do registro (representado pelo lpis/caderno). Para a tela de gesto de classes existe ainda o comando de excluir registros. Este comando promove a excluso de todos os registros da classe em questo. Um caso especial o da classe Identificao, que s pode ser removida aps no existirem outras classes preenchidas.
Na tela para definio de uma classe, um arquivo contendo a definio XML da classe deve ser inserido atravs do boto Arquivo XML por upload . Os campos Nome, Nome completo, Descrio, Multiplicidade e o detalhe de Atributos sero lidos do arquivo e preenchidos automaticamente pelo sistema.
Captulo 3 - Construindo metadiretrios
com EID
O painel Algoritmo de deduplicao define a classe Java responsvel pela deduplicao (unificao, juno, descarte) das instncias dessa classe. Este algoritmo pode ser cadastrado via upload ou insero manual do contedo e deve implementar a classe IClassUnifier. Tambm possvel apenas especificar o nome completo incluindo o caminho da classe caso ela esteja disponvel no EID. Caso no seja informado um algoritmo de deduplicao, o EID utiliza um algoritmo padro para fazer a mesclagem dos atributos (br.ufmg.lcc.eid.model.unifier.DefaultSingleInstanceUnifier), caso a classe permita apenas uma instncia por objeto, ou um algoritmo padro para adicionar a instncia a uma lista (br.ufmg.lcc.eid.model.unifier.DefaultMultipleInstanceUnifier), caso a classe permita vrias instncias.
45
Configurao de extraes
Envolve: 11 Repositrios. 11 ETCs. 11 Processos. 11 Agendamentos. A configurao de extraes passa pelo cadastro de repositrios, definio de extraes, processos de extraes e agendamento dos processos.
Definio de repositrios
11 Fontes ou destinos de dados. 11 Destino fixo: 22 Base de dados do EID (Metadiretrio). 11 Fontes so as bases institucionais: 22 Bancos relacionais. 22 Arquivos texto. 22 Diretrios LDAP. 11 Necessrio driver JDBC ou ODBC. 11 Driver JDBC deve estar disponvel no diretrio lib do Tomcat. Antes que sejam definidas as extraes, necessrio que sejam definidas as fontes de dados, considerando que o destino sempre nico: o metadiretrio gerenciado pelo EID. As fontes so os bancos de dados institucionais que o alimentaro, como as bases do RH, sistema acadmico de graduao ou ps-graduao, planilhas etc.
O EID trabalha com diversos tipos de bancos de dados. O pr-requisito a existncia de um driver JDBC ou ODBC (para fazer ponte) para o EID. Tambm possvel importar arquivo em formato CSV, com campos separados por ponto-e-vrgula, tabulao, vrgula, sustenido(#) e barra vertical (|) e ainda a partir da verso 1.3.6 do EID possvel importar dados de diretrios LDAP. O driver JDBC deve estar presente no diretrio lib do Tomcat no momento de sua iniciali Federao CAFe: Implantao do Provedor de Identidade
zao para que seja reconhecido. Deve-se ter ateno especial para a verso do driver; consulte as instrues do fornecedor do banco para saber a verso mais adequada para uma determinada verso de banco. A definio de repositrios acessada pelo menu Configurao/Repositrio de Dados.
46
A Figura 3.6 exibe a tela de administrao de repositrios, onde possvel exibir, alterar ou remover repositrios cadastrados no sistema, ou ainda cadastrar novos repositrios. O repositrio EID configurado automaticamente no roteiro de instalao fornecido pelo projeto, e deve sempre ter o nome Metadiretrio para o correto funcionamento do sistema. Os repositrios da organizao devem ser configurados nesse ponto para que as extraes possam ser configuradas.
Repositrios, e ser apresentada a tela para escolha do tipo de repositrio, que pode ser: Arquivo CSV, Diretrio LDAP ou Banco de Dados Relacional. De acordo com a escolha exibida a tela para cadastro dos dados de conexo. A Figura 3.7 exibe os campos para cadastro de um Repositrio do tipo Banco de Dados Relacional. 11 Os campos Nome e Descrio so utilizados para uma melhor identificao do repositrio na interface. 11 Em especial, os campos URL e Driver devem seguir a especificao do fabricante. Clicando no cone ao lado do campo URL exibida uma janela pop-up com exemplos de URLs e drivers para diversos bancos de dados. 11 Os campos Usurio e Senha indicam as credenciais a serem utilizadas para comunicao com o banco. Lembrando que por questo de segurana a senha nunca exibida e o campo fica em branco. 11 O painel Verso do Banco de Dados pode ser preenchido com o nome da tabela e campo do banco que contm a sua verso ou ainda com o nmero de verso diretamente no campo Verso (manual). 11 Aps preencher todos os campos obrigatrios possvel testar a conexo com o banco atravs do boto Testar Conexo.
Caso o tipo do repositrio seja Arquivo CSV, os campos Nome, Descrio e Diretrio devem ser informados de acordo com a Figura 3.8. O campo Diretrio deve apontar para o diretrio no servidor local que conter os arquivos.
48
Caso o tipo do Repositrio seja Diretrio LDAP, os seguintes campos devem ser informados, de acordo com a Figura 3.9: 11 Nome e Descrio para o diretrio LDAP; 11 Host que deve ser informado com o nome ou endereo IP do servidor LDAP; 11 Porta, por padro a porta de acesso a servidores LDAP 389 ou 636 para uso de LDAPs (SSL); 11 Login e senha para acesso ao diretrio; 11 Verso do protocolo utilizado. Atravs do boto Testar Conexo possvel verificar se a conexo foi estabelecida com sucesso.
Captulo 3 - Construindo metadiretrios
com EID
Extraes
11 Regras de converso entre fonte e destino de dados. 11 Parmetros podem ser usados como constantes nos SQLs e scripts. O prximo passo a definio de uma extrao de dados. 11 Cada extrao define a fonte de dados propriamente dita e a relaciona com uma tabela de destino; 11 A regra de converso e compatibilizao de tipo tambm definida aqui, mapeando os campos de entrada nos campos de sada; 11 possvel a utilizao de parmetros globais nas extraes para denotar valores constantes no momento do processamento da extrao.
49
Extraes so conhecidas no sistema como ETC (Extrao, Transformao e Carga); a tela para administrao de Extraes acessada pelo menu Configurao/ETC (ver Figura 3.10). 11 O comando Novo permite a definio de uma nova extrao (ou ETC), discutida em deta lhes a seguir. 11 O comando Alterar permite editar uma extrao j configurada no sistema. 11 O comando Clonar permite realizar uma cpia da ETC escolhida apenas com os campos Cdigo e Nome vazios para serem redefinidos. 11 O comando Visualizar permite exibir os dados da ETC em estado somente leitura. 11 possvel ainda excluir uma ETC cadastrada no sistema; para isso, selecione o item que se deseja excluir e clique no boto Excluir.
50
Ao acionar o comando novo exibida a tela para cadastro de uma ETC (ver Figura 3.11) . O cadastro de ETC dividido em trs partes para facilitar a insero dos dados: a parte superior apresenta os campos Cdigo, Nome e Descrio (campos descritivos da extrao) e as abas Leiaute de Origem e Leiaute de Destino que sero detalhadas a seguir. 11 Leiaute de origem pode ser: 22 Um SQL qualquer sobre o repositrio de origem. 22 Um arquivo texto presente no diretrio. 11 Deve definir um Identificador nico (IU). 11 possvel definir um campo como time stamp para importao incremental. A aba Leiaute de origem do cadastro de ETC define os campos que sero extrados do repositrio de origem, que podem ser definidos por um SQL ou mapeamento dos campos de um arquivo CSV. 11 Para bancos de dados relacionais, o EID descobre dinamicamente os nomes e tipos, montando a lista de campos disponveis para importao. 11 Para arquivos texto, os campos devem ser cadastrados um a um. 11 obrigatria a definio de um Identificador nico (IU) para os registros importados. Este identificador pode ser composto, sendo utilizado para conciliao e referncia a registros previamente importados. 11 possvel definir tambm um campo como time stamp para possibilitar a importao incremental de registros. Este campo pode ser uma data de atualizao dos registros no repositrio de origem ou ainda um nmero sequencial que incrementado a cada alterao nos dados. 11 A partir da verso 1.3.6 do EID no necessrio definir time stamp para a importao incremental. Atravs de um hash gerado automaticamente e com base no contedo dos registros feita somente a importao de registros que sofreram alteraes na base de origem. 51
Captulo 3 - Construindo metadiretrios
com EID
Leiaute de origem
No leiaute de origem (ver Figura 3.12) escolhido o repositrio de onde os dados sero extrados, dependendo do tipo de repositrio escolhido (Banco de dados relacional ou Arquivo CSV) os campos para preenchimento so customizados. Para Banco de Dados Relacional o campo SQL deve ser informado. O comando Leiaute monta a lista de campos encontrados automaticamente. Para arquivos CSV: 11 Arquivo de Origem: nome do arquivo CSV. 11 Separador Decimal: indica o caractere utilizado como separador decimal em campos numricos no arquivo texto. 11 Separador Campos : indica o caractere utilizado como separador dos campos do arquivo de texto.
Federao CAFe: Implantao do Provedor de Identidade
11 Codificao de caracteres: utilizada para interpretao correta durante a leitura de arquivos texto. 11 Formato da data. Quando o Repositrio de Origem for Arquivo Texto, o leiaute dever ser montado manualmente, adicionando linhas atravs do comando Novo. Para Diretrios LDAP: 11 Filtro de pesquisa: um filtro para a busca de registros. Ex. (mail=*). 11 Base de pesquisa: a base para pesquisa de usurios, ex. ou=people,dc=rnp,dc=br 11 Pesquisa de subentradas: a marcao deste campo faz com que os registros sejam importados da base com todas suas subentradas como registros independentes. A opo N de registros para pular pode ser informada com o nmero de registros que se deseja descartar na importao.
52
A Opo Reiniciar Importao Incremental pode ser usada quando se deseja zerar os valores da importao incremental de uma determinada ETC.
O Leiaute de Origem exibido aps o preenchimento do campo SQL e acionamento do comando Leiaute caso o tipo de repositrio seja banco de dados relacional, ou pela insero dos campos um a um, atravs do acionamento do comando Novo, caso o repositrio seja do tipo arquivo CSV (ver Figura 3.13). 11 O campo Nome indica a identificao do campo na origem. Este identificador ser tambm utilizado para referenci-lo no mapeamento para o destino. 11 O campo Tipo indica o tipo dos dados. No caso de arquivos texto, o tipo deve ser sempre texto. 11 IU define os campos utilizados como identificadores nicos para o registro. Devem ser definidos com cautela para evitar erros durante a importao, como conciliao incorreta de registros. 11 O campo Time Stamp utilizado para identificar o campo que responsvel pela marcao de atualizao do registro, note que este campo s fica habilitado quando o tipo igual a Inteiro ou Data.
Leiaute de destino
11 Repositrio de destino o metadiretrio. 11 Sempre ser uma classe definida pelo EID. 11 Scripts em Java ou Bean Shell podem ser usados para converso de dados. 11 Registros so atualizados pela chave na importao. Na aba Leiaute de Destino definida a tabela que receber os dados e o mapeamento dos campos da origem para os campos dessa tabela. 11 O destino sempre ser uma tabela previamente definida por uma classe do EID.
11 possvel utilizar scripts de converso mais sofisticados, escritos em Java ou Bean Shell, para transformao de dados de origem para o destino. 11 No momento da importao, registros que j foram importados so identificados auto maticamente. Existe a opo da atualizao ou no dos dados do registro importado. 11 A atualizao feita com base no identificador nico definido (IU).
53
No Leiaute de Destino o repositrio selecionado deve ser sempre o metadiretrio. A Tabela de Destino a tabela que ser alimentada. necessrio que a tabela da classe Identificao seja a primeira a ser alimentada, pois os demais dados sero vinculados s pessoas previamente importadas. A opo Atualizar registros existentes, quando selecionada, promove a atualizao do registro em questo, caso ele j exista na base de destino. Em caso da no seleo, o registro descartado na reimportao. No painel de configuraes avanadas possvel definir um Filtro de Conciliao, um script Java que pode ser utilizado para consultar o banco de destino e optar pela importao, atualizao ou descarte do registro. O boto Leiaute constri a lista de campos disponveis na tabela de destino, assim como no leiaute de origem.
O Campo Fonte definido no leiaute de origem e ser mapeado diretamente para o campo de destino. O script pode ser utilizado para um tratamento desse campo. Neste caso, o Campo Fonte deve ser deixado vazio. Diversas ETCs podem carregar a mesma classe, o que de grande utilidade para carga de tabelas a partir de repositrios diferentes.
54
Figura 3.16 Detalhes dos campos do leiaute de Destino com objeto referenciado.
No Leiaute de Destino para a extrao de todas as classes, excetuando-se Identificao, deve ser informado o GUID do objeto referenciado no painel Objeto referenciado. O Campo Fonte (ou resultado do script) deve resolver o valor que foi utilizado como IU para a classe Identificao. Outra possibilidade resolver diretamente o GUID do objeto.
Processos
Processos definem: 11 Conjunto de extraes a serem executadas. 11 Ordem da execuo. 11 Outras configuraes mais detalhadas. Depois de definidas as extraes (ETCs), necessrio associar a ETC a um processo e agendar a sua execuo. Processos so agrupamentos de ETCs executadas juntas, isto , em um mesmo agendamento. As ETCs em um mesmo processo so executadas de forma sequencial, em uma ordem definida no processo.
55
A Figura 3.18 apresenta a tela de administrao de processos, que pode ser acessada pelo menu Configurao/Processos. Nela possvel visualizar os processos cadastrados no sistema, alter-los ou ainda cadastrar um novo processo.
Acionando o boto Novo, a tela de cadastro de processo exibida (ver Figura 3.18). 11 Um nome deve ser informado para o processo. 11 A opo Modo indica a ao que deve ser tomada caso alguma das ETCs listadas no seja finalizada com sucesso. Se for escolhido Interromper, as ETCs seguintes causadora do erro no so processadas. No caso de No interromper, as ETCs seguintes so processadas independentemente de haver erro. 11 Nmero de tentativas indica o nmero mximo de vezes que o sistema tentar estabelecer conexo com os repositrios utilizados em cada extrao antes de abortar o processamento. 11 Intervalo entre tentativas indica o tempo de espera entre duas tentativas sucessivas. 11 As ETCs devem ser especificadas no painel Itens do processo. Acessando o boto Novo uma janela pop-up exibida com as ETCs disponveis para o cadastro. Deve-se selecionar as ETCs clicando no check box e acionar o boto Selecionar, ento o pop-up fechado e as
Federao CAFe: Implantao do Provedor de Identidade
ETCs so inseridas no painel Itens de processo. 11 O Intervalo de commit indica o nmero de registros inseridos em cada transao. Um nmero muito alto pode sobrecarregar o banco (muitos registros para commit no log), enquanto que um nmero muito baixo pode comprometer a performance; 500 um nmero razovel, que pode ser ajustado de acordo com o banco utilizado e a capacidade da mquina. 11 Mximo de erros determina o nmero mximo de erros que a ETC suporta sem ser abortada e, consequentemente, finalizar seu processamento com cdigo de erro. Esta opo interessante, pois sabido que existem inconsistncias no banco de origem e que os registros que geram inconsistncias devem ser descartados. 11 Ordem indica a ordem de processamento das ETCs no processo. possvel alterar a ordem clicando nas setinhas disponveis para cima ou para baixo.
56
Agendamentos
Definem para o processo: 11 Horrio de importao. 11 Frequncia de repetio.
Uma vez definido o processo, ele deve ser agendado. S pode existir um agendamento para cada processo; no aconselhvel que uma mesma ETC participe de processos distintos que possam rodar em paralelo. Um agendamento de processo definir o horrio para executar a importao e sua frequncia de repetio.
A tela de agendamentos pode ser acessada pelo menu Processamento/Agendamento (Figura 3.19). Cada novo agendamento de um processo ganha um n mero de processamento. com este nmero que o usurio ter o controle do nmero de vezes que o agendamento foi executado e acompanhar o resultado do processamento na tela
Captulo 3 - Reviso de LDAP
e esquema brEduPerson
Resultado de Processamento.
57
Ao acionar o comando Novo, exibida a tela de Cadastro de Agendamento de Processo (ver Figura 3.20). Nesta tela deve-se escolher o processo a ser agendado e o tipo de repetio. possvel definir tambm a partir de qual item (ETC) o processo dever iniciar e terminar, e a data e hora da prxima execuo. A caixa Processar Agora pode ser marcada caso o processamento deva ter incio imediato. O Campo Resultado de Processamento exibe o resultado do processamento agendado atravs de uma janela pop-up. O campo Diretrio usado para salvar resultados de processamentos, e pode ser preenchido com um diretrio do servidor, onde o sistema salvar os logs do resultado de processamento completo. Este diretrio deve estar local e com permisso de escrita. Em casos onde a fonte de dados muito demandada por outras aplicaes, pode-se definir no painel Horrios permitidos para processamento os horrios nos quais a importao permitida, bastando informar os intervalos de incio e fim.
Federao CAFe: Implantao do Provedor de Identidade
58
Resultados de processamento
Aps a execuo de um processo possvel visualizar seu resultado de processamento. A tela Resultado de Processamento acessada atravs do menu Processamento/Resultado de Processamento (ver Figura 3.21) . Para facilitar a busca pelos registros pode-se filtrar os resultados de processamentos tanto pelos processos de interesse quanto pela data de execuo. No caso de no serem especificados esses parmetros, todos os resultados so exibidos.
59
Ao acionar o boto Visualizar na tela de Pesquisa de Resultados de Processamento, a tela a seguir exibida (Figura 3.22). Por esta interface possvel observar detalhes do processamento, incluindo mensagens de erro durante a importao, o que permite a identificao de registros causadores de problemas e de ETCs configuradas incorretamente. Por padro, durante a importao a tela recarregada automaticamente, apresentando o seu progresso.
60
Roteiro de Atividades 3
Atividade 3.1 Instalao de EID e EID2LDAP
Instale EID e EID2LDAP na mquina virtual presente em sua estao de trabalho. Conecte-se com o SSH na VM, que j possui instalados o Tomcat, Java e MySQL. Faremos a configurao necessria para instalar o EID.
Configuraes no Tomcat
1. Para desabilitar a execuo segura do Tomcat, deve-se editar o arquivo /etc/default/tomcat6. Dentro deste arquivo faa a seguinte alterao na linha que contm #TOMCAT6_SECURITY=yes para:
TOMCAT6_SECURITY=no
Ainda no mesmo arquivo acrescente a linha:
cp /opt/treinamento/tomcat-dbcp.jar
/usr/share/tomcat6/lib/
Captulo 3 - Roteiro de Atividades 3
5. Para permitir que um usurio do Tomcat faa login no EID, edite o arquivo /etc/tomcat6/ tomcat-users.xml, deixando-o como est abaixo. Substitua SENHA_EID pela senha que ser usada ao logar no EID.
61
/etc/init.d/tomcat6 start
7. Por fim, para testar se o mesmo est funcionando corretamente, atravs do browser, acesse o endereo http://ip_do_servidor:8080/ e verifique se a mensagem It works! exibida.
echo create database eid; create database pcollecta; create database eid2ldap | mysql -uroot -proot
2. Os arquivos para popular as bases esto disponveis na pasta /opt/treinamento. Faa a carga no banco de dados atravs dos comandos a seguir (substitua VERSAO_EID e VERSAO_EID2LDAP pelas verses atuais dos sistemas indicadas pelo instrutor).
mysql -uroot -proot eid < /opt/treinamento/eid-VERSAO_EID.dump mysql -uroot -proot pcollecta < /opt/treinamento/pcollecta-VERSAO_ EID.dump mysql -uroot -proot eid2ldap < /opt/treinamento/eid2ldap-VERSAO_ EID2LDAP.sql
mkdir /opt/eid/ unzip /opt/treinamento/eid.war -d /opt/eid/ mkdir /opt/eid2ldap/ unzip /opt/treinamento/eid2ldap.war -d /opt/eid2ldap/
Federao CAFe: Implantao do Provedor de Identidade
export JARO_WINKLER_DIR=/opt/eid/lib/ export JAVA_HOME=/usr/lib/jvm/java-6-openjdk/ export JRE_HOME=/usr/lib/jvm/java-6-openjdk/ export CATALINA_HOME=/usr/share/tomcat6 export TOMCAT_HOME=/usr/share/tomcat6 echo export JARO_WINKLER_DIR=/opt/eid/lib >> /etc/profile
62
3. Crie a pasta referenciada pela varivel de ambiente JARO_WINKLER_DIR com o comando a seguir:
mkdir -p $JARO_WINKLER_DIR
4. Para proceder compilao do algoritmo JARO WINKLER, execute as linhas de comando a seguir:
Configure um repositrio do tipo Banco de Dados Relacional no EID (servir como fonte de
63
4.2.Descrio: Repositrio de testes do curso EID. 4.3.URL: ao clicar no cone ao lado do campo exibida uma janela pop-up com exemplos de URLs e drivers. Usar Banco Mysql: jdbc:mysql://localhost:3306/academico 4.4.Driver :
Usar Banco Mysql: com.mysql.jdbc.Driver 4.5.Usurio: root 4.6.Senha: root 4.7.No painel Verso do Banco de dados, insira o valor 1.0 no campo Verso (manual). 5. Acione o comando Testar Conexo; 6. Acione o comando Salvar.
5. Na guia Leiaute de Destino: 5.1.Tipo de Script: Bean Shell. 5.2.Tabela de Destino: Identificao. 5.3.Acione o comando Leiaute. 5.4.Atualizar Registros Existentes : marcar a caixa. 5.5.No painel Leiaute de Destino dos Dados: 33 Mapeie os campos de origem para o destino. 33 Marque para remoo os campos que no sero mapeados. 5.6.Acione o comando Salvar.
64
Faa a limpeza dos dados de todas as tabelas do banco EID. 1. Abra o phpmyadmin acessando o endereo: http://IP_Servidor/phpmyadmin (onde IP_Servidor deve ser substitudo pelo IP da mquina onde o EID foi instalado). 2. Informe usurio/senha do MySQL: root/root. 3. No canto superior esquerdo da tela, selecione o banco do EID.
65
DELETE FROM eid.TBL_SVC_ALUNO; DELETE FROM eid.TBL_SVC_CONTA; DELETE FROM eid.TBL_SVC_EMAIL; DELETE FROM eid.TBL_SVC_ENDERECO; DELETE FROM eid.TBL_SVC_PROFESSOR; DELETE FROM eid.TBL_SVC_TECNICO; DELETE FROM eid.TBL_SVC_TELEFONE; DELETE FROM eid.TBL_SVC_GRUPO; DELETE FROM eid.TBL_SVC_IDENTIFICACAO; DELETE FROM eid.TBL_EID_CLASS; DELETE FROM eid.TBL_MAPPING; DELETE FROM eid.TBL_MATCH; DELETE FROM eid.TBL_EID_OBJECT; DELETE FROM eid.TBL_EXTERNAL_SOURCE; DELETE FROM pcollecta.PC_KEY_MAPPING;
5. Clique no boto Executar.
66
4
Criando extraes no EID
objetivos
Criar extraes no EID.
conceitos
Extrao de arquivos texto, extrao de diretrios LDAP, resoluo de objeto EID, parmetros globais, importao incremental, scripts de converso, algoritmos de unificao e web services.
arquivos neste formato). Em algumas situaes este recurso til, principalmente em casos onde a informao mantida em planilhas externas aos sistemas utilizados na organizao.
67
Para realizar uma extrao em um arquivo CSV necessrio cadastrar um repositrio do tipo arquivo de texto CSV e informar no campo Diretrio o caminho onde os arquivos se encontram. No caso de servidores Linux/Unix, o caminho do diretrio case sensitive. Outro ponto que deve ser salientado que o repositrio um local que possui vrios conjuntos de dados, portanto no insira neste campo o diretrio seguido pelo nome do arquivo, mas somente o diretrio. O nome do arquivo ser definido na configurao da extrao mais adiante. importante lembrar tambm que este diretrio se refere a um local na mquina que executa o EID, e que o usurio com o qual o Tomcat foi iniciado deve possuir acesso de leitura ao diretrio e aos arquivos que sero importados.
11 No cria leiaute automtico. Para extraes de arquivos texto, o campo Arquivo de Origem deve ser preenchido com o nome do arquivo do qual os dados sero extrados. Em servidores Linux/Unix o nome case sensitive. possvel escolher a codificao de caracteres do arquivo original, lembrando sempre que a codificao do banco do EID ISO-8859-1. A escolha correta de suma importncia para a interpretao correta dos caracteres acentuados. O separador decimal indica o caractere utilizado para separar casas decimais (vrgula ou ponto).
O separador de campos indica o caractere utilizado para separar as colunas do arquivo, podendo ser ponto-e-vrgula, vrgula, barra vertical (|), sustenido (#) ou tabulao. O campo Formato da Data deve descrever o formato das datas no arquivo.
68
ETC
A Figura 4.2 mostra o leiaute de origem de uma extrao em um repositrio do tipo arquivo de texto CSV. Quando estamos definindo uma extrao para arquivos CSV, diferentemente de bancos relacionais, no se pode definir um SQL. Tambm no possvel a construo automtica do leiaute, uma vez que no existem metadados que descrevem os campos. Os nomes de cada campo devem ser informados manualmente, no podendo haver espao entre palavras, sempre na forma de caracteres ASCII de a-z, A-Z ou 0-9 (exceto no incio do identificador), sem acentuao. O tipo dos campos sempre texto, podendo ser convertidos para os tipos corretos no momento da configurao do destino, com o uso dos scripts de mapeamento ou converso que sero explicados mais adiante. Tambm aqui possvel determinar um identificador nico, utilizado na conciliao automtica. Caso o arquivo possua algum campo indicador da data de atualizao dos registros possvel utilizar a importao incremental atravs do campo Time Stamp. O comando Novo, no painel de Leiaute de Origem de Dados, adiciona novas linhas nesse painel para configurao de novas colunas. Leiaute de destino: 11 Idntico ao de bancos de dados relacionais, sua converso de tipos feita por scripts Java ou Bean Shell. 11 Continua sendo feito da mesma forma que em bancos relacionais. 11 Os tipos podem ser convertidos via script de mapeamento.
69
Para extraes com repositrio de origem do tipo Diretrios LDAP: 11 Filtro de pesquisa: um filtro para a busca de registros. Ex. (mail=*) 11 Base de pesquisa: a base para pesquisa de usurios, ex. ou=people,dc=rnp,dc=br 11 Pesquisa de subentradas: se marcado este campo os registros so importados da base com todas suas subentradas como registros independentes. A opo N de registros para pular pode ser informada com o nmero de registros que se deseja descartar na importao. A opo Reiniciar Importao Incremental pode ser usada quando se deseja zerar os valores da importao incremental de uma determinada ETC. O painel Leiaute de origem deve ser informado manualmente com o nome dos atributos do LDAP que se deseja importar, o tipo de ser texto para todos os atributos.
Resoluo de objetos
11 Objetos vinculados via GUID. 11 Importao de Identificao cria os objetos. 11 Instncias de novas classes devem resolver o GUID. 11 EID possibilita resoluo automtica.
Ainda no leiaute de destino, o campo eid_object_guid deve indicar o GUID para vinculao da instncia da classe com o objeto. A importao da classe Identificao promove a criao de novos objetos no metadiretrio; em geral ela utilizada como referncia para a vinculao de instncias de outras classes ao objeto criado.
70
A vinculao feita por um mapeamento, como exemplificado a seguir: 11 Importando-se um registro de Identificao da pessoa X da origem, gerado um mapeamento da chave primria escolhida para a extrao de X para o GUID do objeto criado no metadiretrio; 11 Na base de origem, os demais dados da pessoa X (endereo, dados de aluno etc.) certamente possuiro algum tipo de relacionamento com o registro de identificao, podendo fazer parte do registro na mesma tabela ou fazer uma referncia a ele via chave estrangeira (fk); 11 Considerando ser Y um registro com dados referentes a X, no momento da importao devemos indicar para o sistema a qual objeto ele deve ser associado. Isto feito indicando-se a extrao que carregou X e o campo da chave estrangeira que relaciona Y com X na origem. Com base nesse campo, o EID capaz de consultar o mapeamento e descobrir o GUID do objeto ao qual Y deve ser relacionado.
A Figura 4.4 apresenta o leiaute de destino dos dados, onde o objeto referenciado deve ser informado. Para todas as classes sua informao obrigatria, com exceo da classe Identificao.
Parmetros globais
Constantes: 11 Consultas. 11 Script de conciliao. 11 Script de converso. Outra funcionalidade a ser explorada nas extraes est relacionada aos parmetros
globais. Parmetro global um mecanismo utilizado pelo EID para definio de constantes de conciliao ou scripts de mapeamento.
Captulo 4 - Criando extraes no EID
que podem ser utilizadas nas extraes. Ele utilizado como constante em consultas, scripts
71
Os parmetros globais so definidos no menu Configurao/Parmetros Globais (Figura 4.5). Todos os parmetros devem ter um nome, que serve como identificador, no podendo haver espao entre as palavras (ou caracteres especiais) e um valor. Os parmetros so sempre tratados como sendo do tipo string. Estes parmetros funcionam por substituio; nos pontos onde so referenciados, seu valor inserido antes do incio do processamento sempre com a sintaxe #{nome_do_parmetro}. Vale a pena lembrar que a substituio direta. Assim, nos casos onde o parmetro tratado como valor numrico, basta colocar #{nome_do_parmetro} e, onde tratado como string, as aspas (simples ou duplas, dependendo do caso) devem ser utilizadas, como em #{nome_do_parmetro}. Abaixo um exemplo de consulta que utiliza parmetros globais, considerando que o banco realiza automaticamente a converso de string para data:
Select * from Pessoas where dataNascimento >= #{DataInicial} and dataNascimento <= #{DataFinal}
Federao CAFe: Implantao do Provedor de Identidade
Importao incremental
11 Reimportao com atualizao de registros implica em reconciliao e : 22 Computacionalmente cara. 22 Desnecessria em casos onde o registro no foi alterado. 11 A importao incremental minimiza o problema. 11 Importao incremental automtica atravs de hash baseado no contedo dos registros. O metadiretrio deve refletir o dinamismo da organizao. Isso implica na importao de dados no importados anteriormente e tambm na atualizao de outros j importados. Uma forma de se fazer este processo selecionar a opo Atualizar registros existentes na definio da ETC, que fora com que todos os registros importados anteriormente sejam atualizados em uma reimportao. Novos registros so inseridos naturalmente.
72
A consequncia da atualizao de todos os registros que o EID obrigado a trabalhar novamente sobre todos os objetos afetados, pois no possvel saber, a priori, se o registro sofreu alteraes na origem ou no. Isto pode ser melhorado com o uso de importaes incrementais, que podem alterar o escopo das consultas a cada execuo, desde que haja alguma informao no banco de origem que permita a distino de registros alterados dos no alterados (uma coluna com carimbo de tempo, por exemplo).
Para utilizar importao incremental manual do EID necessrio que a base de origem tenha algum campo que funcione como carimbo de tempo dos registros atualizados. No leiaute de origem da ETC este campo deve ser identificado com a marcao de time stamp, como na Figura 4.6. O EID armazenar internamente o maior valor j importado e sempre que for executar novamente a ETC ir atualizar ou inserir apenas os registros alterados ou novos. Quando marcada, a opo Reiniciar Importao Incremental zera todos os campos de importao incremental da ETC, fazendo com que na prxima execuo importe todos os registros do repositrio de origem. Alm da importao incremental, o campo Time Stamp pode ser til em processos que duas variveis internas (InitialTimeStamp e FinalTimeStamp). Essas variveis podero ser acessadas pelo usurio no SQL de origem de outra ETC como parmetro de consulta, limitando os registros selecionados na base de origem. Para ter acesso a essas variveis deve-se usar a seguinte sintaxe: #{ETL.NOME_ETL.INITIAL_OU_FINAL}. Exemplo:
Captulo 4 - Criando extraes no EID
agruparo ETCs dependentes. Quando o campo Time Stamp marcado, o sistema cria
73
p.DATA_ATUALIZACAO_REGISTRO AND
>
p.DATA_ATUALIZACAO_REGISTRO
Neste exemplo, o SQL parametrizado impede que registros de alunos referenciando pessoas ainda no carregadas pela ETC pessoas sejam selecionados. A partir da verso 1.3.5 do EID, a funcionalidade de importao incremental automtica foi adicionada ao EID. Desta forma, a importao incremental descrita acima fica obsoleta. Sem a necessidade de nenhuma configurao extra, apenas so importados registros novos ou que tiveram alteraes.
Script de converso
11 Possibilita o tratamento do dado da origem. 11 Complementa as possibilidades do SQL. 11 Cdigo Java. 11 Campo da origem disponibilizado como varivel. 11 Campo Fonte tem prioridade sobre o script. Outra funcionalidade a ser explorada na configurao de uma ETC o script de converso ou mapeamento. Cada campo do Leiaute de origem pode ser tratado antes de ser inserido no destino. Este tratamento feito via cdigo Java, onde pode ser utilizada toda sua funcionali-
dade (como expresses regulares, tratamento de datas etc.). Para utilizao de script, o campo Fonte no Leiaute de destino deve ser deixado em branco; caso seja preenchido, o script no ser executado e o valor do campo Fonte ser atribudo ao registro. Pode-se optar por dois tipos de scripts: Bean Shell ou Jana Nativo. O cdigo do script deve ser inserido acionando-se o comando Script na linha equivalente ao campo. Caso a escolha seja Bean Shell, deve ser implementado o mtodo com assinatura public void execute(), onde o valor calculado deve ser colocado na varivel result, e o acesso s variveis do leiaute de origem feito apenas pelo seu nome. Caso utilize Java nativo, no necessrio usar o mtodo, e o acesso s variveis do leiaute de origem feito da mesma forma que o acesso aos parmetros globais: #{nome_varivel}.
String result = null; public void execute() { if (senha != null) { result = senha.substring(1, 4); } else{ result=null;
} }
Um exemplo de script para atribuir o valor de uma substring ao campo Senha em Bean Shell apresentado a seguir. Para acessar as variveis do leiaute de origem apenas utilize o nome.
74
String result; public void execute() { result = null; if (senha != null) { result = senha.substring(1, 4); } }
O cdigo exemplifica como pegar apenas parte da string senha do repositrio de origem para ser o valor atribudo ao resultado no Metadiretrio EID. Assim como este script, vrios outros podem ser desenvolvidos de acordo com a necessidade de transformao dos dados. Alguns destes podem ser encontrados na seo FAQ do Wiki da Federao CAFe.
O mesmo exemplo de script segue abaixo em Java Nativo: Em Java Nativo para acessar as variveis do leiaute de origem necessrio usar #{nome_varivel} e no se usa o mtodo execute().
11 Critrios de mesclagem de instncias. 11 Dois algoritmos pr-definidos: 22 Instncia nica. 22 Mltiplas instncias. 11 Cada classe pode ter seu prprio algoritmo. 11 Algoritmos prprios devem ser adicionados aplicao EID.
O EID usa algoritmos de unificao para mesclar instncias de classes para um dado objeto. esse algoritmo que define os critrios para preservao de um dado atributo em detrimento de outro ou mesmo o descarte de determinada instncia de classe.
Algoritmos de unificao
75
O EID disponibiliza dois algoritmos padres: um para conciliao de instncias nicas, onde os atributos de duas ou mais instncias so mesclados em uma instncia final, e outro para instncias mltiplas, onde todas as instncias so preservadas em uma lista. permitida a definio do algoritmo a ser utilizado por cada classe. No informar esse algo ritmo implica a utilizao de um dos algoritmos padres. Novas implementaes podem ser dadas e disponibilizadas na aplicao EID, com a implementao da interface IClassUnifier.
Na Figura 4.7 vemos o painel Algoritmo de deduplicao da tela de definio de classe. Nesta tela h trs maneiras para informar o algoritmo que ir fazer a unificao: 1. Informando o nome completo do algoritmo de unificao no campo Nome da Classe de Unificao; esta opo vlida quando o algoritmo de unificao j est disponvel com pilado no classpath do Tomcat: /diretrio_tomcat/webapps/eid/WEB-INF/classes/. 2. Atravs de upload de um arquivo Java, clicando no boto + Arquivo JAVA e logo em seguida no boto Upload que exibido; ento a classe carregada e exibida conforme a Figura 4.7. 3. Digitando ou colando o contedo do algoritmo nos campos especficos. Depois de cadastrar o algoritmo de unificao salve a definio de classes.
76
Web services
11 Clientes podem usufruir dos registros conciliados. 11 Web services possibilitam uma forma mais adequada de acesso aos dados. 22 Independente de linguagem ou plataforma. 22 Abstrao do modelo de dados. 22 Objetos EID expostos como XML. 11 http://servidor:porta/eid/services/EidService?wsdl 22 No pede autenticao. 22 Deve ser protegido com firewall ou autenticao SSL. O EID disponibiliza um web service para exportao e consulta de dados, o que facilita o acesso por aplicaes que utilizem tecnologias diversas. O web service serve de base
tambm para outras ferramentas de exportao. Um exemplo a ferramenta denominada EID2LDAP, que exporta os dados do EID para servidores LDAP.
<eid-object type=person guid=EHBBCXKA-YLHXBAAA serial=148048> <attributes class=Identificacao id=52347> <attribute name=nomeCompleto source=Etc exemplo 1 key=134><![CDATA[ZACARIAS SILVA]]></attribute>
<attribute name=nomeSolteiro><![CDATA[]]></attribute> <attribute name=cpf source=Etc exemplo 1 key=134><![CDA TA[03392002698]]></attribute> </attributes> <attributes class=Email id=72201> <attribute name=email><![CDATA[zeca@mail.com]]></attribute> </attributes> </eid-object>
O uso de web services foi escolhido por abstrair os clientes do modelo de dados do EID. 11 Os objetos so entregues como documentos XML autocontidos. 11 Outra vantagem a independncia de plataformas dos clientes do EID, que podem ser implementadas em outras linguagens alm de Java.
Captulo 4 - Criando extraes no EID
11 O servio no est protegido, o que pode ser feito via configurao de SSL autenticado para a URL e firewall. A descrio dos servios no formato WSDL pode ser acessada pela URL http://localhost:8080/eid/services/EidService?wsdl, onde localhost deve ser substitudo pelo endereo da mquina onde o EID est instalado. Ao se carregar o EID no Tomcat, o web service automaticamente iniciado.
77
Problemas comuns
11 Dados inconsistentes no banco. 11 Carga da classe Conta. 11 E-mails com sintaxe invlida. 11 Usurio que sobe o Tomcat deve ter permisso na pasta webapps do EID. 11 Compilao do algoritmo JARO_WINKLER.
Algumas situaes podem levar presena de dados inconsistentes na base do metadiretrio, que se apresentam no log do Tomcat (catalina.out) da seguinte forma:
br.ufmg.lcc.eid.commons.EidException: Error retrieving object: org. hibernate.InstantiationException, Cannot instantiate abstract class or interface: br.ufmg.lcc.eid.dto.EidClass at br.ufmg.lcc.eid.commons.EidException. eidErrorHandling(EidException.java:46) at br.ufmg.lcc.eid.model.EidFacade.runConciliator(EidFacade.java:62) at br.ufmg.lcc.eid.controller.EidServletContextListener$EidThread. run(EidServletContextListener.java:39) at java.lang.Thread.run(Thread.java:619)
Essa situao pode ser corrigida utilizando-se o script disponibilizado no site do projeto. Uma dvida constante diz respeito carga da classe Conta, em particular ao campo algoritmoSenha. Esse campo deve ser preenchido com o algoritmo que foi utilizado para calcular a senha do usurio, caso no esteja em texto plano (SHA, MD5, CRYPT etc.). Para senhas codificadas em base64, independente do algoritmo utilizado para o hash, o valor do campo deve ser base64, e para senhas em texto plano o campo no deve ser alimentado. A alimentao incorreta impossibilitar a autenticao dos usurios, que o sintoma
Federao CAFe: Implantao do Provedor de Identidade
deste problema.
78
Roteiro de Atividades 4
Atividade 4.1 Definio de uma extrao de arquivo texto
Abra um navegador e acesse o EID para configurar o repositrio: 1. Acesse o menu Configurao/Repositrio de Dados; 2. Acione o comando Novo para definir um novo repositrio; 3. Selecione o tipo do repositrio como Arquivo CSV. 4. Fornea os campos necessrios: 4.1.Nome: Repositrio de arquivos CSV. 4.2.Descrio: Repositrio de dados externos aos sistemas. 4.3.Diretrio: /treinamento. 5. Acione o comando Salvar. Crie uma extrao para carregar a classe Identificao a partir do arquivo texto novasPessoasComCpf.txt. 1. Acesse o menu Configurao/ETC. 2. Acione o comando Novo. 3. Na guia ETC, especifique: 3.1.Nome: Extrao de pessoas do arquivo CSV. 3.2.Descrio: Extrao de dados de pessoas a partir de arquivo CSV. 4. Na guia Leiaute de Origem: 4.1.Repositrio: Repositrio de arquivos CSV. 4.2.Objeto de origem: novasPessoasComCpf.txt. 4.3.Separador Decimal: vrgula. 4.4.Separador Campos : ponto e vrgula. 4.5.Codificao Caracteres : UTF-8. 4.6.Formato da data: dd/MM/yyyy.
Captulo 4 - Roteiro de Atividades 4
4.7.No painel Leiaute de Origem de Dados, defina os campos id, nome, sexo, nascimento e CPF para equivaler aos campos presentes no arquivo texto. 4.8.Informe o tipo igual a Texto para todos os campos. 4.9.Acione o comando Novo deste painel para adicionar novos itens, se necessrio. Ordem dos campos do arquivo: identificador nico para os registros, nome completo, sexo, data de nascimento (formato dd/mm/aaaa) e CPF. 4.10.Selecione o campo Id como identificador nico (IU).
79
5. Na guia Leiaute de Destino: 5.1.Tipo Script : Bean Shell. 5.2.Tabela de Destino: identificao. 5.3.Atualizar Registros Existentes : marcar a caixa. 5.4.Acione o comando Leiaute. 5.5.No painel Leiaute de Destino dos Dados: 5.5.1.Mapeie os campos de origem para o destino. 5.5.2.Marque para remoo os campos que no sero mapeados. 6. Crie um script para converter o campo dataNascimento. Deixe o campo Fonte em branco e preencha o campo Script com o cdigo abaixo:
java.util.Date result = null; public void execute() { if (nascimento != null){ java.text.SimpleDateFormat formatador = new java.text. SimpleDateFormat(dd/MM/yyyy); result = formatador.parse(nascimento); } }
7. Acione o comando Salvar. Crie um processo que inclua a extrao definida anteriormente e o agende para ser executado de imediato, sem repeties. 1. Acesse o menu Configurao/Processos. 2. Acione o comando Novo. 3. Preencha os campos:
Federao CAFe: Implantao do Provedor de Identidade
3.1.Nome: Processo de extrao de CSV. 3.2.Descrio: Processo de extrao de dados de arquivo CSV. 3.3.Modo: selecione Interromper Processamento. 3.4.Nmero de tentativas : 1. 3.5.Intervalo entre tentativas : 1. 4. No painel Itens de processo: 4.1.Clique no boto Novo, selecione a ETC extrao de pessoas do arquivo CSV e acione o boto Selecionar. 4.2.Intervalo commit : 500. 4.3.Nmero de erros : 0.
80
5. Acione Salvar. 6. Acesse o menu Processamento/Agendamento. 7. Acione o comando Novo. 8. Selecione: 8.1.Processo: Processo de extrao de CSV. 8.2.Tipo de repetio: No Repetir. 8.3.Item de Incio: Processo de extrao de CSV. 8.4.Finalizar no Item: Processo de extrao de CSV. 8.5.Prxima execuo: marcar Processar agora. 9. Acione o comando Salvar. 10. Observe o resultado acessando o menu Processamento/Resultado de processamento.
d.CodTurno,d.
AnoIngresso, d.CodIngresso, c.Nome, c.CodInepCapes, c.Nivel, c.Modalidade, c.Formato FROM Discente d, Cursos c WHERE d.CodCurso = c.CodCurso
4.2.Acione o comando Leiaute. 4.3.Selecione os campos CodDiscente, CodCurso e CodPessoa como identificador nico (IU). 5. Na guia Leiaute de Destino:
Captulo 4 - Roteiro de Atividades 4
5.1.Tipo de Scritp: Bean Shell. 5.2.Tabela de Destino: Aluno. 5.3.Acione o comando Leiaute. 5.4.Atualizar Registros Existentes : marcar a caixa. 5.5.No painel Leiaute de Destino dos Dados, mapeie os campos de origem para o destino.
81
6. No campo eid_object_guid: 22 ETC para FK: Extrao de pessoas do sistema acadmico. 22 Campo Fonte: CodPessoa. 7. Marque para remoo os campos que no sero mapeados. 8. Acione o comando Salvar. Modifique o processo Processo de extrao Acadmico para incluir a extrao definida anteriormente e o agende para ser executado de imediato, sem repeties. 1. Acesse o menu Configurao/Processos. 2. Altere o processo de extrao acadmico. 3. No painel Itens de processo acione o comando Novo e adicione: 3.1.ETC: Extrao de alunos do sistema acadmico. 3.2.Intervalo commit : 500. 3.3.Nmero de erros : 0. 4. Acione Salvar. 5. Acesse o menu Processamento/Agendamento. 6. Altere o agendamento do processo de extrao acadmico. 7. Selecione: 7.1.Iniciar no item: Extrao de alunos do sistema acadmico. 7.2.Item de incio: Extrao de alunos do sistema acadmico. 7.3.Prxima execuo: Marcar Processar agora. 8. Acione o comando Salvar. 9. Observe o resultado acessando o menu Processamento/Resultado de processamento.
destino Sexo assuma os valores masculino ou feminino. Altere a ETC de Identificao do arquivo CSV: 1. Acesse o menu Configurao/ETC. 2. Altere a extrao Extrao de pessoas do arquivo CSV. 3. Na guia Leiaute de Destino: 3.1.Selecione o campo fonte do campo Sexo como vazio.
82
String result = null; public void execute() { if (sexo != null) { if (sexo.equals(masculino)) { result = M; } else if (sexo.equals(feminino)) { result = F; } } }
3.3.Acione o boto Confirmar. 3.4.Acione o comando Salvar. Altere o agendamento: 1. Acesse o menu Processamento/Agendamento. 2. Altere o agendamento do processo de extrao de CSV. 3. Selecione: 3.1.Tipo de repetio: No repetir 3.2.Prxima execuo: marcar Processar agora. 4. Acione o comando Salvar. 5. Observe o resultado acessando o menu Processamento/Resultado de Processamento.
3.1.Nome: Extrao de usurios do arquivo CSV. 3.2.Descrio: Extrao de dados de usurios a partir de arquivo CSV. 4. Na guia Leiaute de Origem: 4.1.Repositrio: Repositrio de arquivos CSV. 4.2.Objeto de origem: usuarios.txt. 4.3.Separador Decimal: vrgula. 4.4.Separador Campos : ponto e vrgula.
83
4.5.Codificao Caracteres : UTF-8. 4.6.Formato data: dd/MM/yyyy. 4.7.Defina manualmente, no painel Leiaute de Origem de Dados, os campos id, login e senha para equivalerem aos campos presentes no arquivo texto. Todos os campos devem ser do tipo Texto. Acione o comando Novo deste painel para adicionar novos itens, se necessrio. Ordem dos campos do arquivo: identificador nico para os registros, login e senha. 4.8.Selecione o campo Id como identificador nico (IU). 5. Na guia Leiaute de Destino: 5.1.Tipo do Script : Bean Shell. 5.2.Tabela de Destino: Conta. 5.3.Acione o comando Leiaute. 5.4.Atualizar Registros Existentes : marcar a caixa. No painel Leiaute de Destino dos Dados: 1. Mapeie o campo Login de origem para o destino. 2. Marque para remoo o campo Domnio que no ser mapeado. 3. Crie um script para extrair o campo algoritmoSenha. Utilize o cdigo no campo Script :
String result = null; public void execute() { if (senha != null) { result = senha.substring(1, 4); } }
4. Aps inserir o cdigo na janela pop-up clique no boto Confirmar.
Federao CAFe: Implantao do Provedor de Identidade
String result = null; public void execute() { if (senha != null) { result = senha.substring(5); } }
6. No Painel Objeto referenciado: 6.1.ETC para FK: Extrao de pessoas do sistema acadmico. 6.2.Campo Fonte: id 6.3.Senha criptografada no arquivo usurios.txt para todos os usurios: esr
84
7. Acione o comando Salvar. Altere o processo de extrao de arquivos texto definido, adicione a nova ETC e agende para ser executado de imediato, sem repeties. 1. Acesse o menu Configurao/Processos. 2. Altere o processo Processo de extrao de CSV. 2.1.No painel Itens de processo clique em Novo e adicione: 3. ETC: Extrao de usurios do arquivo CSV. 4. Intervalo commit: 500. 5. Nmero de erros : 0. 6. Acione Salvar. 7. Acesse o menu Processamento/Agendamento. 8. Altere o agendamento do processo Processo de extrao de CSV . 8.1.Tipo de repetio: No repetir. 8.2.Prxima execuo: marcar Processar agora. 8.3.Item de incio: Extrao de usurios do arquivo CSV. 8.4.Finalizar no item: Extrao de usurios do arquivo CSV. 9. Acione o comando Salvar. 10. Observe o resultado acessando o menu Processamento/Resultado de Processamento.
Atividade 4.5 Alterar um registro de pessoa da base de origem e reagendar o processo de carga da classe Identificao
Altere um registro da base academico/Tabela Pessoas e reagende o Processo de extrao Acadmico para ser executado novamente. 1. Acesse o phpmyadmin via navegador http://IP_VM/phpmyadmin 2. Acesse a base acadmico/Tabela Pessoas. 3. Altere um dos registros mudando o nome da pessoa. 4. Acesse no EID o menu Processamento/Agendamento. 5. Acione o comando Alterar para o agendamento do processo de extrao acadmico: 11 Item de incio: Extrao de pessoas do sistema acadmico.
Captulo 4 - Roteiro de Atividades 4
11 Finalizar no item: Extrao de pessoas do sistema acadmico. 11 Prxima execuo: marcar Processar agora. 11 Acione o comando Salvar. 6. Observe o resultado acessando o menu Processamento/Resultados de processamento. Todos os registros que no foram alterados na base de origem (Tabela Pessoas) foram descartados pelo sistema evitando a importao de dados que no sofreram alteraes e somente o registro que foi alterado que foi conciliado e atualizado pelo EID.
85
Atividade 4.7 Criar uma extrao a partir de repositrio do tipo Diretrio LDAP
Esta atividade ir importar os usurios de teste que foram inseridos no LDAP para o metadiretrio do EID. 1. Acesse o menu Configurao/ETC. 2. Acione o comando Novo. 11 Na guia Geral, especifique: 22 Nome: Extrao de pessoas de uma base LDAP. 22 Descrio: Extrao de pessoas a partir de uma base LDAP. 11 Na guia Leiaute de Origem: 22 Repositrio: Repositrio do qual sero extrados os dados; selecione o repositrio
Federao CAFe: Implantao do Provedor de Identidade
LDAP cadastrado no passo anterior. 22 Filtro de Pesquisa: Um filtro para definir a pesquisa. Utilize (brPersonCPF=* Importe apenas usurios que possuam o atributo CPF informado na base LDAP. 11 Base de Pesquisa : ou=people,dc=<INSTITUICAO>, dc=br 11 Pesquisar Subentradas : No marcar. Ao marcar este campo as subentradas existentes sero importadas como registros independentes (ex: braff do esquema brEduPerson). Informe manualmente o nome dos atributos que devero ser recuperados e importados do LDAP no painel leiaute de origem. O tipo dos campos deve ser configurado como texto: dn, cn, sn, schacDateOfBirth, brPersonCPF, schacGender, brPersonPassPort, schacCountryOfCitizenship. Selecione o campo DN como Identificador nico (IU).
86
Na guia Leiaute de Destino: 11 Tipo de Script : BeanShell. 11 Classe: Identificacao. 11 Acione o comando Leiaute. 11 Marque a caixa Atualizar Registros Existentes. No painel Leiaute de Destino dos Dados, mapeie os campos de origem para o destino: 11 CPF: brPersonCPF. 11 dataNascimento: Deixe o campo fonte em branco e utilize o script de mapeamento para formatar a data armazenada no LDAP.
java.util.Date result = null; public void execute() { if (schacDateOfBirth != null){ java.text.SimpleDateFormat formatador = new java.text. SimpleDateFormat(yyyymmdd); result = formatador.parse(schacDateOfBirth); } } Nomecompleto: Deixar campo fonte em branco e utilizar o script de mapeamento: Object result = null; execute(){ if (cn != null && sn != null) result = cn + + sn; } Paisnascimento: schacCountryOfCitizenship Passaporte: brPersonPassPort Sexo: Deixar campo fonte em branco e utilizar o script de mapeamento: String result = null; public void execute() { if (schacGender != null) { if (schacGender.equals(1)) { result = M; } else if (schacGender.equals(2)) { result = F; } } }
Captulo 4 - Roteiro de Atividades 4
Marque para remoo os campos que no sero mapeados e acione o comando Salvar.
87
3. Acesse o menu Configurao/Processos. 4. Clique no boto Novo: 4.1.Informe um nome para o processo: Processo extrao de pessoas LDAP. 4.2.Modo, n de tentativas e intervalo entre tentativas : deixe os valores default. 4.3.No painel Itens de processo clique em Novo e selecione a ETC: 5. ETC: Extrao LDAP. 6. Intervalo commit : 500. 7. Nmero de erros : 0. 8. Acione Salvar. 9. Acesse o menu Processamento/Agendamento. 10. Clique em Novo e cadastre um novo agendamento para o processo criado: 10.1.Processo: Processo LDAP. 10.2.Tipo de repetio: No repetir. 10.3.Item de incio: Extrao LDAP. 10.4.Finalizar no item: Extrao LDAP. 10.5.Prxima execuo: marcar Processar agora. 11. Acione o comando Salvar. 12. Observe o resultado acessando o menu Processamento/Resultado de Processamento, ou atravs do boto Resultado de Processamento.
88
5
Gesto de pessoas e grupos no EID
objetivos
Resoluo de conciliaes via interface, insero manual de pessoas e gesto de grupos no EID.
conceitos
A ferramenta EID, alm das funes de exportao e importao de dados, tambm possui a funcionalidade de gesto manual de pessoas e gesto de grupos. A gesto manual de pessoas possibilita a conciliao de registros sugeridos pelo sistema ou duplicidades encontradas pelo administrador, alm de incluso, atualizao e ativao/ desativao de pessoas no metadiretrio.
Conciliao de registros
11 O EID procura conciliar automaticamente. 11 Outros casos no detectados podem ter conciliao forada. Conciliao o processo de identificao de objetos duplicados provenientes de fonte de dados diferentes. Objetos duplicados so registros separados que referenciam uma mesma entidade real. O principal problema de se ter objetos duplicados a possvel existncia de atributos com valores divergentes. Aps a identificao deve ser feita uma resoluo dos conflitos. O EID procura conciliar pessoas automaticamente. Ele utiliza o algoritmo Jaro Winkler, que
faz um clculo baseado em distncia entre strings para detectar registros duplicados. Para realizar esta conciliao ele leva em conta os dados nomeCompleto, nomePai, nomeMae, cpf, data Nascimento e sexo.
89
Em situaes mais adversas, o administrador pode tambm forar a conciliao de registros, selecionando-os diretamente pela interface do sistema. 11 Processo assncrono executado a cada 2 minutos. 11 Todo registro reimportado reconciliado. 22 Conciliao direta. 11 Registros atualizados so marcados no metadiretrio. O algoritmo de conciliao executado de forma assncrona a cada 2 minutos, consolidando todas as modificaes pendentes. Para uma extrao configurada corretamente, a reimportao de registros causa sua atualizao no EID, marcando os registros como pendentes. A conciliao, em uma prxima execuo, tratar esses registros e refletir as alteraes no registro final.
Essa reconciliao mais barata que a primeira, dado que o grupo de registros a serem conciliados j seja conhecido. Vale observar que uma reimportao desnecessria pode implicar uma maior demora do EID em refletir a alterao no registro consolidado. Por este motivo, aconselhvel que reimportaes sejam incrementais, atualizando apenas os registros que tenham sido realmente alterados na fonte. O EID mantm um controle sequencial que possibilita o monitoramento de registros conciliados.
Conciliao de registros
Por questes de implementao, os registros importados no so alterados no processo de conciliao; eles so sempre mantidos no banco, em um estado diferenciado.
conciliados, sendo formado pela unificao dos vrios registros iniciais. Essa primeira conciliao custosa, pois exige a verificao de um grande conjunto de registros do banco. A Figura 5.2 apresenta a interface que d acesso s funcionalidades de conciliao, acessada atravs do menu EID/Conciliao. So listados todos os registros julgados como possivelmente conciliveis pelo sistema, onde possvel optar por descartar a sugesto ou efetivar a conciliao.
90
Se a sugesto for acatada, o EID promover a fuso dos registros em um nico registro final, caso contrrio sero gerados registros independentes para cada objeto listado.
de conciliao forada. Nesta interface, o comando Adicionar pode ser utilizado para localizar um registro e adicion-lo lista; Remover promove a remoo de um registro da lista; Conciliar coloca o conjunto de registros na fila de conciliao e Cancelar cancela a definio da conciliao. Os registros selecionados sero mesclados em um nico registro final, sendo mantido o GUID lexicograficamente menor. Os demais sero descartados.
Pesquisa de pessoas
11 Localizao por valores de atributos de qualquer classe. 11 Curinga % pode ser utilizado. 11 Pode-se selecionar os atributos que sero exibidos.
Ainda na tela de conciliao, ao acionar o comando Novo exibida a interface para definio
91
Na pesquisa de pessoas o EID possibilita a pesquisa pelo atributo de qualquer uma de suas classes. A busca exibe, por padro, apenas o GUID dos registros. Outras informaes podem ser observadas selecionando-se os atributos das classes de interesse.
A Figura 5.4 apresenta a tela de gesto de pessoas, que pode ser acessada pelo menu EID/ Gesto de Pessoas. Na aba Parmetros deve-se definir os parmetros de busca. No campo Classe deve-se selecionar a classe que contm o atributo a ser pesquisado. O campo Atributo apresenta os atributos definidos para a classe em questo. O valor desejado deve ser informado no campo Valor do atributo. Preenchidos os dados, o comando Pesquisar efetua a busca, apresentando os dados na parte inferior da tela. Os dados de uma pessoa especfica podem ser observados clicando-se na lupa na linha do registro, ou alterados acionando-se o boto de alterao de sua linha. Ambos os comandos levam a outra interface, que ser discutida adiante. Como exemplo, os critrios a seguir sero usados para retornar a relao de todas as
Federao CAFe: Implantao do Provedor de Identidade
pessoas que tenham nome completo iniciado por Jos e terminado com Silva: 11 Classe: Identificao. 11 Atributo: NomeCompleto. 11 Valor : Jos%Silva.
92
Por padro, o EID exibe apenas o GUID dos objetos encontrados. A Figura 5.5 exibe a aba Atributos visveis, onde possvel selecionar os atributos que sero exibidos, clicando-se nas caixas equivalentes aos nomes das classes. Ao marc-las, o atributo estar visvel no resultado apresentado na parte inferior da tela.
93
A Figura 5.6 apresenta a tela de gesto de pessoas que pode ser acessada pelo menu EID/Gesto de Pessoas. 11 O comando Novo exibe a interface para definio dos dados da pessoa. 11 necessrio selecionar as classes a serem instanciadas e preencher os campos para cada instncia. 11 A classe Identificao deve ser sempre selecionada para o correto funcionamento do sistema. 11 Depois de preenchidos os dados, o comando Salvar deve ser acionado.
94
Dados de uma pessoa podem ser alterados pelo administrador, muito embora esta no seja a forma recomendada: o ideal que a alterao seja feita na fonte. possvel, tambm, a atribuio de instncias de classes a pessoas, opo til para classes gerenciadas manualmente e com instncias para poucos usurios (atributos de servios mais especficos). A tela de gesto de pessoas pode ser acessada pelo menu EID/Gesto de Pessoas. Deve-se, primeiramente, localizar a pessoa que ter seus dados modificados. Esta pesquisa pode ser feita conforme explicado na seo Pesquisa de registros. Novas instncias podem ser atribudas, selecionando-se as classes de interesse. Dados podem ser alterados pela edio dos valores dos atributos das instncias existentes. Efetuadas as alteraes, o comando Salvar deve ser acionado. O registro editado ser ento marcado como pendente para reconciliao.
95
Forar reunificao
Ao ser acionado, o boto Reunificar marca o registro como pendente para reunificao.
Muitas vezes deseja-se atualizar um registro no LDAP, e para isso foi criado o boto Reunificar, que refaz a unificao para determinado registro, fazendo com que seu serialNumber seja incrementado e consequentemente fique marcado como atualizado para ser exportado novamente para o LDAP.
Desativao de pessoas
11 Pessoas no so removidas, mas marcadas como inativas. 11 No so expostas pelo EID, o que elimina complicaes em reimportao. 11 Elas podem ser reativadas. 11 Conciliao e atualizao de dados continuam operacionais.
Registros de pessoas no so removidos, mas marcados como inativos. Essa estratgia elimina problemas relativos reimportao de registros, o que poderia ocasionar o reaparecimento da pessoa. Registros inativos no so expostos pelo EID, a no ser que sejam requisitados por uma funo especfica. Estando os registros inativos, as atualizaes feitas nos registros originais continuam refletidas no registro final. Em caso de reativao, os dados do registro j refletem a situao atual dos registros originais. A desativao de registro feita na tela principal de Gesto de pessoas. Os registros de interesse devem ser localizados e marcados. O comando Desativar promove sua desativao.
96
A reativao pode ser feita marcando-se o registro e acionando-se o comando Ativar. Pessoas inativas so localizadas normalmente na interface de pesquisa, porm no disponibilizam funo de visualizao ou edio.
Gesto de grupos
11 Grupo um tipo especial de objeto EID. 11 Realiza gesto automtica de membros. 11 Critrios definidos como consulta HQL. 11 Atualizados diariamente. 11 Relacionamento do grupo com as pessoas. 11 Relacionamento das pessoas com o grupo.
A ferramenta EID disponibiliza uma forma simples de criar agrupamentos, tanto de pequenos quanto de grandes grupos (professores da universidade, alunos da disciplina Clculo 1). Os critrios so definidos como consulta Hibernate Query Language (HQL) e executados periodicamente, procurando manter o grupo atualizado. Relacionamentos do grupo com as pessoas e seus atributos so criados, indicando pertinncia a grupos. A atualizao de grupos pode ser forada via interface.
97
98
Roteiro de Atividades 5
Atividade 5.1 Conciliao de um registro manualmente
Selecione registros do banco de dados e force a conciliao: 1. Acesse o menu EID/Conciliao. 2. Acione o comando Novo. 3. Acione o comando Adicionar. 4. Preencha o campo Classe com Identificao. 5. Preencha o campo Classes de Atributos com NomeCompleto. 6. Preencha o campo Valor do atributo com JOSE FI% e clique em Pesquisar. 7. Na aba Atributos visveis selecione Identificao e marque o campo nomeCompleto. 8. Volte para a aba Parmetros e selecione o registro JOSE FILISBINO, marcando-o e clicando no boto Selecione. 9. Acione novamente o comando Adicionar. 10. Preencha o campo Classe com Identificao. 11. Preencha o campo Classes de Atributos com NomeCompleto. 12. Preencha o campo Valor do atributo com JOSE FE% e clique em Pesquisar. 13. Na aba Atributos visveis selecione Identificao e marque o campo nomeCompleto. 14. Volte para a aba Parmetros e selecione o registro JOSE FELISBINO, marcando-o e clicando no boto Selecione. 15. Acione o comando Conciliar. 16. Acesse o menu EID/Gesto de pessoas. 17. Pesquise por JOSE F% e observe os dados da pessoa.
99
100
6
Alimentao de diretrios com EID2LDAP
objetivos
EID2LDAP, arquitetura XML do EID e XSLT.
conceitos
Caractersticas do EID2LDAP
Este captulo do curso apresentar a ferramenta EID2LDAP, que busca informaes de diretrio armazenadas em um servidor EID e as transfere para servidores LDAP. Alm das caractersticas da ferramenta, estudaremos ainda a sua arquitetura (XML do EID, XSLT e processamento LDIF), e apresentaremos as configuraes e alguns exemplos de uso da ferramenta, alm de problemas comuns. O EID2LDAP uma ferramenta que acessa o servidor EID via web service, transforma os regis Captulo 6 - Alimentao de diretrios com EID2LDAP
tros para o formato LDIF compatvel com o servidor LDAP de destino e transfere as informaes. 11 Permite o agendamento peridico da exportao. 22 Em cada exportao, so atualizados apenas os registros modificados/inseridos/ apagados desde a ltima exportao. 11 Acessa o EID via WebService. 11 Utiliza a marcao XSLT para especificar a transformao dos dados para o formato LDAP Data Interchange Format (LDIF). 22 O XSLT fornecido pelo usurio e deve gerar um LDIF compatvel com o esquema do LDAP de destino. Assim como o EID, a ferramenta EID2LDAP permite o agendamento peridico das exportaes; em cada exportao so atualizados apenas os registros modificados/inseridos/ desativados desde a ltima importao.
101
Como a estrutura do LDAP flexvel, ao exportar necessrio conhec-la. O Extensible Stylesheet Language Transformations (XSLT) introduz flexibilidade no EID2LDAP, permitindo ao usurio definir como se dar o mapeamento entre os dados do EID e o formato do LDAP. Logo, para realizar a exportao, trs conhecimentos so necessrios: 11 O formato do EID (padro); 11 O formato do LDAP (especfico); 11 A linguagem XSLT.
Arquitetura
XSLT Registros modicados/inseridos/apagados
LDIF
WS EID
LDIF
A exportao dos dados se inicia quando o algoritmo de transformao determina se o tempo de agendamento foi alcanado: 1. EID2LDAP acessa o EID via web service. 2. Busca registros modificados/inseridos/desativados. 3. Transforma os registros no formato LDIF. 4. Envia o LDIF aos servidores LDAP. 5. Faz um novo agendamento caso o modo de repetio esteja acionado. 6. Registros so requisitados e processados de 100 em 100.
Federao CAFe: Implantao do Provedor de Identidade
7. Todos os registros so transformados em LDIF e depois enviados. 8. Caso ocorra erro, o processamento ser interrompido. 9. O prximo agendamento reiniciar a partir da srie de registros em que o erro ocorreu. O que foi enviado nesse intervalo ao LDAP (antes do erro) no ser desfeito, mas reescrito na prxima iterao.
A seguir sero detalhados o XML do EID, o modo de especificar o XSLT e a forma como realizada a transformao para LDIF.
102
XML do EID
Contm informaes sobre: 11 Pessoas e seus atributos:
<eid-object type=group>...</eid-object>
11 Membros do grupo:
<member> <eid-object>...</eid-object>....</member>
11 Pessoas e grupos desativados:
O XML fornecido pelo EID carrega as informaes sobre as pessoas e os grupos. So buscados apenas os objetos novos, alterados ou excludos. No h marcao no XML para indicar o atributo alterado, nem para diferenciar um objeto novo de um alterado. Sempre enviado todo o contedo do objeto. Na desativao, o atributo do objeto removed marcado como true.
XML do EID
<!--Pessoa ou Grupo --> <eid-object type=person guid=EHBBCXKA-YLHXBAAA serial=148048> <!-- Classe --> <attributes class=Identificacao id=52347> <attribute name=nomeCompleto key=03812882698><![CDATA[ZACARIAS SILVA]]></attribute>
<attribute name=nomeSolteiro><![CDATA[]]></attribute> <attribute name=cpf><![CDATA[01212222222]]></attribute> </attributes> <attributes class=Email id=72201> <attribute name=email><![CDATA[zeca@mail.com]]></attribute> </attributes> </eid-object> <!--Membros de Grupos --> <member> <eid-object >...</eid-object> </member>
103
Captulo 6 - Alimentao de diretrios com EID2LDAP
No XML do EID, as vrias classes existentes para a pessoa so recuperadas em elementos attributes e seus atributos dispostos em elementos attribute, contendo nome e valor de cada um.
XSLT
Transformaes necessrias: 11 Marcao para insero de pessoas e grupos. 11 Marcao para excluso de registros e grupos. 11 Marcao para adio de pessoas. Lembre-se de gerar o mesmo Domain Name (DN) na adio e na excluso.
O XSLT controla a transformao do XML no LDIF que ser enviado ao LDAP. O LDIF gerado determina as operaes que sero aplicadas no LDAP (Insero/Excluso/Alterao). O XSLT deve tratar os tipos de informaes enviadas pelo EID, que so: 11 Insero de pessoas, membros de grupo e grupos (como a alterao no especificada, deve ser tratada como insero); 11 Excluso de pessoas, grupos e membros de grupos; 11 O processo de alterao tratado de forma automtica pelo EID2LDAP. Insero de registros:
<xsl:template match=/> <xsl:apply-templates select=eid-object[@type=person and ( not(attribute::removed) or @removed=false)] mode=person /> </xsl:template> <xsl:template match=eid-object mode=person> dn: cn=<xsl:value-of select=@guid />, dc=lcc, dc=ufmg, changetype: add objectclass: person
Federao CAFe: Implantao do Provedor de Identidade
dc=br
104
</xsl:template> <xsl:template match=eid-object mode=removed> dn: cn=<xsl:value-of select=@guid />, dc=lcc, dc=ufmg, dc=br changetype: delete </xsl:template>
O XSLT apresentado ilustra o uso do atributo removed com o valor igual a true. Incluso de membro em grupo:
<xsl:template match=/> <xsl:apply-templates select=eid-object[@type=group] mode=group /> <xsl:apply-templates select=member/> </xsl:template> <xsl:template match=eid-object mode=group> dn: cn=<xsl:value-of select=@guid />, dc=lcc, dc=ufmg, changetype: add objectclass: groupOfNames cn: <xsl:value-of select=@guid /> </xsl:template> <xsl:template match=member> member: cn=<xsl:value-of select=eid-object/@guid />, dc=ufmg, dc=br </xsl:template>
A marcao <member> no existe no EID, sendo inserida pelo EID2LDAP para agrupar e
Captulo 6 - Alimentao de diretrios com EID2LDAP
dc=br
dc=lcc,
indicar os EIDObjects que so membros do grupo. A marcao <eid-object type=group> deve ser gerada para criar o LDIF com o objectclass groupOfNames.
Processamento do LDIF
11 Entradas sem a operao definida (Add/Modify/Delete) ou com a operao Add so tratadas como operaes de adio. 11 Se o registro j existir no LDAP (identificado pelo DN gerado no LDIF): 22 O LDIF modificado para aplicar operaes de alterao. 22 Apenas os objectClasses representados no LDIF sero substitudos no LDAP. 11 Entradas especificadas com a operao Delete so propagadas para todos os registros na sub-rvore da entrada. 11 Outras operaes so aplicadas de forma inalterada.
105
No momento da exportao, caso o registro j exista no LDAP (identificado pelo DN gerado no LDIF), o LDIF modificado para aplicar operaes de alterao (Modify) no registro do LDAP. Apenas os objectClasses representados no LDIF sero substitudos no LDAP, isto , os objectClasses no LDAP passaro a ter os atributos com os mesmos valores do EID, enquanto outros objectClasses permanecero com seus atributos inalterados. Isto possibilita que outras aplicaes alimentem diretamente o diretrio sem a necessidade de passar pelo EID.
Configurao e uso
11 Acesso: 22 Tela de login. 22 Tela inicial. 11 Configuraes: 22 Servidores LDAP. 22 Transformaes. 22 Agendamentos. A seguir sero apresentadas algumas interfaces da aplicao e exemplos de uso.
Acesso
11 Para acessar a aplicao: http://nomeservidor:8080/eid2ldap 11 nomeservidor : Nome da mquina onde o EID2LDAP foi instalado.
Aps a instalao da aplicao, para acess-la basta abrir um browser e redirecion-lo para: http://nomeservidor :8080/eid2ldap. Onde nomeservidor deve ser substitudo pelo nome da mquina onde o EID2LDAP est instalado.
Figura 6.2 Tela de login.
106
A Figura 6.2 apresenta a tela de login: o sistema define apenas um papel, o de administrador. Vrias pessoas podem desempenhar este papel. A autenticao do usurio delegada ao Tomcat, podendo ser feita em arquivo texto, banco de dados, LDAP etc.
Figura 6.3 Tela inicial.
Na tela inicial o EID2LDAP apresenta trs menus por onde so acessadas as funcionalidades
Figura 6.4 Menus.
do sistema: Configurao, Agendamento, Ajuda e um cone azul localizado na parte superior direita da janela que finaliza a aplicao. Servidor LDAP Cadastro, visualizao e pesquisa de servidores LDAP Cadastro dos XSLTs e associao com os servidores LDAP Congurao do endereo do web service do EID
Captulo 6 - Alimentao de diretrios com EID2LDAP
Congurao
Transformao EID
Menus
Criao e alterao de agendamentos para execuo das transferncias Visualizao do log de execuo e descrio dos erros encontrados Controle do agente escalonador de execues
Agendamento
Resultado do agendamento
Ajuda
107
Os menus do EID2LDAP se organizam da seguinte forma: 11 Menu Configurao/Servidor LDAP: tela de pesquisa, visualizao, alterao e cadastro de Servidores LDAP. 11 Menu Configurao/Transformao: tela de cadastro dos XSLTs e associao com os Servidores LDAP. 11 Menu Configurao/EID: tela para configurao do endereo do web service do EID. 11 Menu Agendamento/Agendamento Servidor LDAP: criao e alterao de agendamentos para execuo das transferncias. 11 Menu Agendamento/Resultado Agendamento: visualizao do log de execuo, descrio dos erros encontrados durante a execuo das transferncias. 11 Menu Agendamento/Agente Gerenciador de Agendamento: controle do agente escalonador de execues.
Configurao de exportao
Resumo: 11 Inicializao do agente, se estiver parado. 11 Cadastramento dos servidores LDAP. 11 Cadastramento dos XSLTs e associao aos LDAPs. 11 Criao do agendamento e definio dos LDAPs de destino. 11 Verificao do log de processamento. Para configurar uma exportao de dados do servidor EID para um servidor LDAP via EIDLDAP os seguintes passos devem ser executados:
1. Acesso ao menu Agendamento/Agente Gerenciador de Agendamento e inicializao do agente caso ele esteja parado. 2. Acesso ao menu Configurao/Servidor LDAP e cadastramento dos servidores LDAP para onde se deseja exportar os dados. 3. Acesso ao menu Configurao/Transformao e cadastramento dos XSLTs e associao aos respectivos LDAPs para realizar a correta transformao dos dados. 4. Acesso ao menu Agendamento/Agendamento Servidor LDAP e criao do agendamento
Federao CAFe: Implantao do Provedor de Identidade
e definio dos LDAPs de destino. 5. Acesso ao menu Agendamento/Resultado Agendamento e verificao do log de processamento.
108
Inicializao do agente
11 Menu: Agendamento/Agente Gerenciador de Agendamento.
A Figura 6.5 exibe a tela de Gerenciador de Agendamentos. O agente escalonador responsvel por verificar e iniciar a execuo dos agendamentos. Ele est desabilitado aps a instalao; se estiver parado, nenhum agendamento iniciado. Quando iniciado, comea todos os agendamentos atrasados.
Para iniciar/parar o agente, basta acionar o boto e observar a mensagem ATIVO ou INATIVO. Cadastramento dos servidores
Captulo 6 - Alimentao de diretrios com EID2LDAP
109
A Figura 6.6 mostra a tela Administrao de LDAP, que lista todos os LDAPs cadastrados. O comando Novo aciona a interface de definio de um novo servidor LDAP; o comando Visualizar d acesso ao registro no modo de visualizao e o comando Alterar exibe o registro no modo de edio.
110
A tela da Figura 6.7 exibida aps o acionamento do boto Novo na tela Administrao de LDAP. Nesta tela so definidos os dados necessrios para o estabelecimento da conexo com o servidor LDAP. 11 Os campos Nome e Descrio definem os dados utilizados para identificao do servidor nas outras partes do sistema. 11 Endereo do servidor indica a URL do servidor em questo, incluindo o protocolo (ldap:// ou ldaps://). 11 Nmero da porta indica a porta em que o servidor escuta. 11 Usurio e Senha definem os dados do usurio de conexo. Em Usurio deve ser especifi cado o DN completo, e no apenas o login. 11 Verso do protocolo indica a verso do protocolo LDAP que ser utilizada na comunicao. 11 Nmero de srie apresenta o nmero de srie do ltimo registro EID processado pelo EID2LDAP.
Cadastramento do XSLT
11 Menu: Configurao/Transformao.
A tela da Figura 6.8 apresenta a interface de administrao de arquivos XSLT, que lista todas as transformaes cadastradas. Ao acionar o boto Novo a tela de cadastro de arquivos XSLT exibida.
111
Cadastramento do XSLT
A Figura 6.9 apresenta a tela de cadastro de XSLT, responsvel pelo cadastro do XSLT e associao com o LDAP. 11 Como o XSLT especfico ao formado usado no LDAP, deve ser associado ao LDAP. 11 Como vrios LDAPs podem ter a mesma estrutura, um mesmo XSLT pode ser cadastrado para mais de um LDAP.
Definio de agendamento
11 Menu: Agendamento/Agendamento Servidor LDAP.
112
A tela de administrao de agendamentos permite visualizar e editar os agendamentos cadastrados no sistema. Ela lista todos os agendamentos cadastrados e o estado dos mesmos, que pode ser: 11 Finalizado; 11 Aguardando; 11 Em execuo. No possvel cancelar um agendamento durante a sua execuo.
quando acionado o boto Novo da tela de administrao de agendamentos. O critrio para o incio da execuo de um agendamento se a data do agendamento anterior a atual. 11 O campo Tipo de Repetio indica como ser o incremento no agendamento da prxima execuo: no repetir, dirio, semanal, mensal etc. 11 O campo Intervalo em minutos somente ser utilizado se o tipo de repetio for em minutos. 11 O campo Prxima Execuo indica a data em que ser iniciada a execuo do primeiro agendamento. 11 Os LDAPs a serem atualizados com esta configurao so definidos no painel Servidor LDAP.
113
Verificao do log
11 Menu: Agendamento/Resultado do Agendamento.
A Figura 6.12 apresenta a tela Resultado de Agendamento, que exibe dados sobre os agendamentos executados ou ainda em execuo. Cada execuo gera uma entrada. So informadas as datas de incio e trmino da execuo, o nmero do processamento que indica quantas vezes o agendamento foi executado e a situao, que pode ser: 11 FINESHED: Execuo finalizada com sucesso; 11 FINESHED_ERRORS: Execuo finalizada com erro.
114
A Figura 6.13 exibe a interface de visualizao de resultado de agendamentos, que acessada atravs do boto Visualizar da tela Resultado do Processamento. Nela possvel visualizar informaes detalhadas sobre a execuo. Se algum erro ocorreu detalhado nesta tela.
Problemas comuns
11 Erros de sintaxe: 22 Em funo de dados malformados importados das fontes. 11 Soluo:
q
Captulo 6 - Alimentao de diretrios com EID2LDAP
22 Correo do dado na fonte, seguida por sua reimportao. 22 Utilizao de scripts de converso. 22 Sintaxe invlida de atributos. O LDAP bastante rgido quanto sintaxe de alguns atributos, como mail, telephoneNumber etc. Durante a exportao podem ocorrer erros dessa natureza em funo de dados malformados importados das fontes. A soluo mais adequada a correo do dado na fonte, seguida por sua reimportao. Na impossibilidade de faz-lo, pode-se tambm utilizar scripts de converso no leiaute de destino da ETC, criando-se regras de validao. Algumas regras esto disponibilizadas na seo FAQ do site do projeto, como validao de e-mail e CPF.
115
116
Roteiro de Atividades 6
Atividade 6.1 Acesse a ferramenta EID2LDAP
Abra o aplicativo EID2LDAP no browser atravs da URL: http://<IP_VM>:8080/eid2ldap.
5. No detalhe Servidor LDAP, o servidor LDAP configurado na Atividade 6.2 deve estar selecionado. 6. Acione o comando Salvar.
117
118
3. Acione o comando Salvar. 4. Aguarde alguns minutos at a importao ser realizada com sucesso; para verificar acesse o menu Agendamento/Resultado Agendamento. 4.1.Observe os dados no LDAP atravs do Apache DirectoryStudio ou utilizando o seguinte comando no Linux:
# ldapsearch -x -D cn=admin,dc=<nome_da_instituio>,dc=br -W
10. Observe os dados no LDAP atravs do Apache DirectoryStudio, e verifique que o usurio1 foi removido do LDAP, j que foi marcado como Desativado no metadiretrio atravs do EID. E o registro do usurio2 teve sua data de nascimento alterada para 01/01/1990. As alteraes feitas no metadiretrio foram refletidas no LDAP aps a exportao dos dados via EID2LDAP.
119
120
7
Plataforma Shibboleth
objetivos
Provedor de Identidade (IdP), Provedor de Servio (SP), Discovery Service (DS), Where Are You From? (WAYF) e Metadata.
conceitos
Instalao do provedor de identidade, configurao manual do provedor de identidade, solicitao e instalao de certificado.
Introduo
O que Shibboleth? 11 Terminologia: 22 Palavra de origem bblica que distingue pessoas de um grupo das pessoas de outro. 22 Diferenciao entre as tribos dos efraimitas e dos gileaditas.
Neste captulo apresentaremos o Shibboleth, um sistema de autenticao e autorizao via web, descreveremos os seus componentes tpicos (Provedor de Identidade, Provedor de Servio, WAYF e Metadata) e demonstraremos o seu funcionamento. O termo shibboleth denota uma palavra usada para distinguir pessoas de um grupo das pessoas de outro. A origem deste termo remete ao velho testamento (Juzes, 12: 1-15), onde ele foi usado para distinguir duas tribos semitas, os gileaditas e os efraimitas, que travaram uma grande batalha. Os gileaditas, vencedores, bloquearam as passagens do Jordo para evitar que os efraimitas sobreviventes pudessem escapar. As sentinelas exigiam que todo passante dissesse shibboleth; como os efraimitas no tinham o fonema /x/ em seu dialeto, cidos e executados.
Captulo 7 - Plataforma Shibboleth
s conseguiam pronunciar sibboleth (com /si/ na primeira slaba), sendo assim reconhe-
O que Shibboleth?
11 Projeto de middleware da Internet2. 11 SAML (Security Assertion Markup Language): padro definido pela OASIS (Organization for the Advancement of Structured Information Standards). 11 Acesso federado.
121
11 Autenticao. 11 Autorizao. 11 SSO (Single Sign-On). O Shibboleth um projeto da Internet2 Middleware Initiative que consiste na implementao de padres amplamente utilizados para autenticao e autorizao federada via web, principalmente o SAML (Security Assertion Markup Language), criado pela OASIS (Organization for the Advancement of Structured Information Standards). Alm disso, o Shibboleth possibilita que o usurio acesse diferentes aplicaes web, autenticando-se apenas uma vez (single sign-on) em sua instituio de origem.
Componentes do Shibboleth
11 Provedor de Identidade (IdP). 11 Provedor de Servio (SP). 11 Discovery Service/WAYF (Where Are You From?). 11 Metadata.
O Shibboleth composto majoritariamente pelos provedores de identidade e de servio, que proveem, respectivamente, autenticao e autorizao. Contudo, uma federao Shibboleth geralmente apresenta dois componentes adicionais: servio de WAYF (Where Are You From?) ou Discovery Service (Shibboleth 2.x), usados para localizar o provedor de identidade de um usurio, e servio de Metadata, usado para concentrar as informaes dos provedores pertencentes federao.
11 Liberdade de escolha das tecnologias de autenticao para as instituies. 11 Controle de acesso efetuado a partir dos provedores de servio. Aplicaes compatveis com o Shibboleth: 11 Google Apps. 11 Media Wiki. 11 Moodle, Joomla, Drupal. 11 Blackboard. 11 ProQuest. 11 Confluence. 11 Microsoft DreamSpark.
122
Federaes atuais: 11 CARSI (China). 11 CRU (Frana). 11 DFN-AAI (Alemanha). 11 DK-AAI (Dinamarca). 11 Entree IdentityProvider (Holanda). 11 FEIDE (Noruega). 11 HAKA (Finlndia). 11 InCommon (EUA). 11 MAMS (Austrlia). 11 SIR (Espanha). 11 SURFnet Federation (Holanda). 11 SWAMID (Sucia). 11 SWITCHaai (Sua). 11 UK Federation (RU). 11 WAYF (Dinamarca). 11 CAFe (Brasil) 11 Dentre outras
O provedor de identidade responsvel por fornecer a autenticao e os atributos do usurio, possibilitando que o provedor de servio faa a autorizao ao recurso. A autenticao e a entrega de atributos so realizadas da seguinte forma: o usurio envia as suas credenciais, que so devidamente verificadas pelo provedor de identidade; o provedor de identidade envia um handle para o provedor de servio, atestando que o usurio foi autenticado; o provedor de servio envia este handle para o provedor de identidade, solicitando a entrega de atributos referentes ao usurio em questo; e, por fim, o provedor de identidade envia esses atributos para o provedor de servio.
Captulo 7 - Plataforma Shibboleth
123
CAS
Credenciais
Handle Service
LDAP
Handle
Handle
Atributos
Figura 7.1 Arquitetura de Um provedor de identidade
elementos principais: 11 Shibboleth Identity Provider: servio de middleware, responsvel por intermediar a autenticao e o envio de atributos. 11 Central Authentication Service: servio de autenticao web single sign-on, responsvel pela interface de autenticao com o usurio. 11 OpenLDAP: servidor de diretrio, responsvel por armazenar os atributos dos usurios e validar as suas credenciais. Alm disso, importante ressaltar que o Shibboleth IdP pode trabalhar com outros servidores de autenticao e atributos.
124
atestando a autenticao do usurio; o provedor de servio envia o handle para o provedor de identidade solicitando os seus atributos; e, por fim, o provedor de servio processa a autorizao baseado nos atributos do usurio e disponibiliza o acesso ao recurso. Servio: 11 Recurso. 11 Autorizao.
Recurso
Apache
Handle
mod_shib
Handle
shibd
Atributos
Shibboleth SP
BD
Captulo 7 - Plataforma Shibboleth
125
A instalao padro de um provedor de servio da federao CAFe baseada no Shibboleth Service Provider, que, por sua vez, composto por dois elementos: 11 mod_shib: mdulo do Apache, responsvel por controlar a autorizao e o acesso ao recurso. 11 shibd: daemon responsvel por intermediar a solicitao de autenticao e de atributos. O Shibboleth SP pode trabalhar com o servidor HTTP Microsoft IIS.
DS/ WAYF
11 De onde voc ? 22 Qual o seu provedor de identidade?
O servio de WAYF (Where Are You From?) responsvel por identificar o provedor de identidade do usurio. Quando o usurio tenta acessar um recurso disponibilizado por um provedor de servio da federao, ele redirecionado para o WAYF, para que possa indicar o seu provedor de identidade e proceder corretamente com a autenticao. A partir da verso 2.x o Shibboleth disponibiliza o Discovery Service (DS), similar ao WAYF, que utiliza informaes do cookie no browser para armazenar a instituio do usurio.
Metadata
Arquivo de configurao: 11 SAML Metadata (schema) + Extenses Shibboleth. 11 Compartilhado entre os provedores da federao.
O servio de Metadata apenas um arquivo de configurao padronizado e compartilhado entre os provedores de identidade e de servio da federao.
Metadados
11 Relacionamento de confiana entre provedores. 22 Certificados.
Federao CAFe: Implantao do Provedor de Identidade
22 Chaves pblicas. 11 Informaes para a comunicao entre provedores: 22 IDs. 22 URLs. 22 Protocolos. Atravs deste arquivo estabelecida a relao de confiana entre os provedores da fede rao, utilizando certificados digitais ou chaves pblicas. Alm disso, o arquivo de meta dados disponibiliza as informaes relevantes para a comunicao entre os provedores, como identificadores, URLs e protocolos utilizados.
126
Funcionamento
Fase 1
HTTPS Request/Response HTTPS Redirect HTTPS Session Conexo interna Conexo virtual Apache WAYF
Metadata
3
x
1 2
Recurso
Apache
mod_shib
LDAP
shibd Shibboleth SP
BD
Captulo 7 - Plataforma Shibboleth
127
2. Como o usurio ainda no est autenticado, o servidor web responde com um redirecionamento HTTP para o servidor WAYF (http://shibboleth.ufrgs.br). Como o WAYF precisa saber qual provedor de servio o usurio est tentando acessar, as informaes so enviadas como parmetros GET.
HTTP/1.x 200 OK Set-Cookie: JSESSIONID=ABA262C37103B02AB65D16B1D0EB3359; Path=/ chimarrao; Secure Content-Type: text/html;charset=ISO-8859-1 [... HTML ...]
128
Fase 2
Na pgina do WAYF, o usurio seleciona a sua instituio de origem, ou seja, o seu provedor de identidade. Essa seleo armazenada por cookies de sesso no browser do usurio.
129
Fase 3
HTTPS Request/Response HTTPS Redirect HTTPS Session Conexo interna Conexo virtual Apache WAYF
Metadata
4
x
6
7
Recurso
Apache
mod_shib
LDAP
shibd Shibboleth SP
BD
4. O usurio envia a seleo da sua instituio de origem a partir de uma requisio HTTP.
130
HTTP/1.x 302 Moved Temporarily Set-Cookie: edu.internet2.middleware.shibboleth.wayf. selectedHandleService=\ https://idp-demo.rnp.br/shibboleth-idp/SSO; Path=/ Location: https://idp-demo.rnp.br/shibboleth-idp/SSO\ ?target=https://eaa1.dri.cefetmg.br/secure/\ &shire=https://eaa1.dri.cefetmg.br/Shibboleth.sso
131
GET /cas/login ?service=https://idp-demo.rnp.br/shibboleth-idp/SSO ?shire=https://eaa1.dri.cefetmg.br/Shibboleth.sso &target=https://eaa1.dri.cefetmg.br/secure &providerId=https://eaa1.dri.cefetmg.br/shib-sp HTTP/1.1 Host: idp-demo.rnp.br Cookie: _saml_idp=dXJuOm1hY2U6c3dpdGNoLmNoOlNXSVRDSGFhaTp1bmlnZS5jaA
7. O sistema de autenticao single sign-on envia a pgina de login para o browser e habilita os seus cookies.
132
Fase 4
HTTPS Request/Response HTTPS Redirect HTTPS Session Conexo interna Conexo virtual Apache Metadata WAYF
CAS
8
Recurso
Credenciais Handle
Apache
LDAP
Handle Service
10
mod_shib
shibd Shibboleth SP
BD
Captulo 7 - Plataforma Shibboleth
8. Uma vez que o usurio disponibiliza as suas credenciais nome de usurio dijkstra e senha goto, neste exemplo , o browser envia uma nova solicitao para o sistema de autenticao (CAS). O sistema de autenticao, que independente do Shibboleth, verifica as credenciais do usurio atravs do diretrio LDAP.
133
&target=https://eaa1.dri.cefetmg.br/secure &providerId=https://eaa1.dri.cefetmg.br/shib-sp HTTP/1.1 Host: idp-demo.rnp.br Cookie: cas_pre_s=rcAHSqG62uVW7zGdRxKtnpdIWg7IFiwXihvObdaYa7mFI3qR4 RYfm6F\ [...] hSNjSOxMUT68kuDApIWngwxPfVaggG; cas_g_req=clear Content-Type: application/x-www-form-urlencoded Content-Length: 61 username=dijkstra&password=goto<=LT-27-3fKACnZWQlYd8T4Md08p
9. Aps o sucesso da autenticao, o browser recebe um pedido de redirecionamento e cookies para enviar ao Handle Service do Shibboleth IdP.
HTTP/1.x 302 Moved Temporarily Set-Cookie: CASTGC=TGC-13-jpZHue4IXosIiVGyy6vrGcj3YOO0H3mRvjcpEqMK0E U8gFS6RC; Path=/cas; Location: https://idp-demo.rnp.br/shibboleth-idp/SSO ?shire=https://eaa1.dri.cefetmg.br/Shibboleth.sso &target=https://eaa1.dri.cefetmg.br/secure &providerId=https://eaa1.dri.cefetmg.br/shib-sp &ticket=ST-17-lGFPJrLWJva134whvhxZ Set-Cookie: CASTGC=TGC-13-jpZHue4IXosIiVGyy6vrGcj3YOO0H3mRvjcpEqMK0E U8gFS6RC; Path=/cas; Secure
134
10. Baseado nos cookies, o Shibboleth IdP sabe que o usurio foi devidamente autenticado. Ento, o Handle Service cria um handle para o usurio. Esse handle embarcado em um hidden form, que enviado pelo browser para o provedor de servio. Para decidir se o usurio est autorizado a acessar o recurso, o mod_shib examina as regras de acesso do Shibboleth. O seguinte fragmento do arquivo de configurao do Apache habilita o acesso a qualquer usurio da federao com uma sesso vlida:
HTTP/1.x 200 OK Set-Cookie: cas_g=; domain=. rnp.br; path=/; expires=Fri,\ 11-Jan-1990 00:00:01 GMT; secure Set-Cookie: cas_pre_s=; path=/; expires=Fri, 11-Jan-1990 00:00:01 GMT; secure Set-Cookie: cas_s_ _chimarrao_=C3kMOhoDCJrHivwK00FZP+8xhPFjyPVq3J8n lluLPO9\ [...] 5/xSuon/ryauQAcKHz95IQQwe4l3eEvKRfVs; path=/; secure Set-Cookie: JSESSIONID=4878F247EDBE5313C35397B5670413EF; Path=/ chimarrao; Secure Content-Type: text/html;charset=ISO-8859-1 [... HTML ...] <form name=shib action=https://eaa1.dri.cefetmg.br/Shibboleth.sso method=POST> <input type=hidden name=TARGET value=https://eaa1.dri.cefetmg. br/secure/> <input type=hidden name=SAMLResponse value=PFJlc3BvbnNlIHhtbG5 zPSJ1cm46\ [...] QXNzZXJ0aW9uPjwvUmVzcG9uc2U+> <noscript> <input type=submit value=Continue> [... HTML ...]
Captulo 7 - Plataforma Shibboleth
135
Fase 5
HTTPS Request/Response HTTPS Redirect HTTPS Session Conexo interna Conexo virtual Apache Metadata WAYF
13
Recurso
13
Apache
mod_shib
11 12
13
LDAP
11
11
Handle
12
11
Atributos
shibd Shibboleth SP
BD
11
136
11. O Shibboleth SP, ento, solicita ao provedor de identidade todos os atributos disponveis para o usurio associado ao handle recebido no passo anterior.
<samlp:request xmlns:samlp=urn:oasis:names:tc:SAML:1.0:protocol issueinstant=2004-05-25T22:46:10Z majorversion=1 minorversion=1 requestid=aaf2319617732113474afe114412ab72> <samlp:attributequery resource=https://eaa1.dri.cefetmg.br/ secure/> <saml:subject xmlns:saml=urn:oasis:names:tc:SAML:1.0:assertion> <saml:nameidentifier format=urn:mace:shibboleth:1.0:nameIdentifier namequalifier=http://idp-demo.rnp.br/shibboleth> 3f7b3dcf-1674-4ecd-92c8-1544f346baf8
</saml:nameidentifier> </saml:subject>
</samlp:attributequery> </samlp:request>
12. Aps a sesso HTTPS ser estabelecida entre o shibd e o Attribute Authority do Shibboleth IdP, o Attribute Authority verifica a identidade do SP com base no certificado enviado pelo shibd. Uma vez que o Attribute Authority recebe a solicitao de atributos, ele verifica se o handle o mesmo gerado pelo Handle Service no passo 10; caso isso seja verdade, ele sabe a que usurio o handle se refere. Ento, ele verifica o Attribute-Filter, arquivo XML responsvel pelas regras que determinam quando um atributo de um determinado usurio pode ser enviado para um determinado provedor de servio. Aps esta verifi cao, o Attribute Authority envia para o provedor de servio todos os atributos permitidos de acordo com o arquivo attribute-filter.xml.
<samlp:response xmlns:samlp=urn:oasis:names:tc:SAML:1.0:protocol xmlns:xsd=http://www.w3.org/2001/XMLSchema xmlns:xsi=http://www. w3.org/2001/XMLSchema-instance inresponseto=aaf2319617732113474afe 114412ab72 issueinstant=2004-05-25T22:46:10.940Z majorversion=1 minorversion=1 responseid=b07b804c7c29ea1673004f3d6f7928ac> <samlp:status>
Captulo 7 - Plataforma Shibboleth
</samlp:status> <saml:assertion xmlns:saml=urn:oasis:names:tc:SAML:1.0:assertion assertionid=a144e8f3adad594a9649924517abe933 issueinstant=2004-05-25T22:46:10.939Z majorversion=1 minorversion=1 issuer=https://idp-demo.rnp.br/shibboleth> <saml:conditions notbefore=2004-05-25T22:46:10.939Z
137
138
13. Finalmente, o usurio recebe um cookie de sesso Shibboleth e redirecionado para o recurso. Os atributos enviados pelo provedor de identidade so disponibilizados para aplicao web pelo mod_shib, na forma de variveis de ambiente do servidor web. Desta forma, o recurso pode usar esses atributos para prover um nvel de autorizao mais granular, alm de possibilitar funcionalidades extras na aplicao, baseado nestes atributos.
HTTP/1.x 302 Found Date: Mon, 04 Apr 2005 10:30:28 GMT Set-Cookie: _shibsession_default=b03871b42d188af4062e6fbd777550ad;p ath=/ Location: https://eaa1.dri.cefetmg.br/secure/ GET /secure/ HTTP/1.1 Host: eaa1.dri.cefetmg.br Cookie: _shibsession_default=b03871b42d188af4062e6fbd777550ad
HTTP/1.x 302 Found Date: Mon, 04 Apr 2005 10:30:28 GMT Set-Cookie: _shibsession_default=b03871b42d188af4062e6fbd777550ad; path=/ Location: https://eaa1.dri.cefetmg.br/secure/ GET /secure/ HTTP/1.1 Host: eaa1.dri.cefetmg.br Cookie: _shibsession_default=b03871b42d188af4062e6fbd777550ad
139
HTTPS Request/Response HTTPS Redirect HTTPS Session Conexo interna Conexo virtual Apache Metadata WAYF
3
x
9 5 1
6
2 7
CAS
8
13
Recurso
13
Apache
LDAP
Handle Service
Credenciais
10
Handle
mod_shib
11 12
13
11
11
Handle
12
11
Atributos
shibd Shibboleth SP
BD
11
140
Roteiro de Atividades 7
Atividade 7.1 Instalar e configurar provedor de identidade Shibboleth
Para instalar o Shibboleth, siga os passos abaixo. Java e Tomcat j esto instalados na VM. Instalar Apache:
<Connector port=8443 maxHttpHeaderSize=8192 maxSpareThreads=75 scheme=https secure=true clientAuth=want SSLEnabled=true sslProtocol=TLS keystoreType=PKCS12 keystoreFile=/opt/shibboleth-idp/credentials/idp.p12
141
Captulo 7 - Roteiro de Atividades 7
cp /opt/treinamento/idp/idp.xml
Contedo do arquivo idp.xml:
/etc/tomcat6/Catalina/localhost
4. Altere o arquivo /opt/treinamento/idp/idp-SSO, arquivo de virtualhost para o portal de autenticao. O portal de autenticao pode utilizar um certificado SSL diferente do que ser fornecido nos metadados da federao. Substitua as variveis pelo IP da VM.
on /etc/ssl/private/chave-apache.key /etc/ssl/certs/certificado-apache.crt
SSLCertificateFile
DocumentRoot /var/www/vazio/
<Directory /var/www/vazio/> Options -Indexes -FollowSymLinks -MultiViews AllowOverride None Order deny,allow Deny from all </Directory>
142
cp /opt/treinamento/idp/idp-SSO /etc/apache2/sites-available
6. Copie o arquivo idp.conf com o contedo abaixo para configurar a ligao entre o Apache e o Tomcat:
cp /opt/treinamento/idp/idp.conf
Contedo do arquivo:
/etc/apache2/conf.d/
143
cp /opt/treinamento/idp/tomcat6-dta-ssl-1.0.0.jar tomcat6/lib
/usr/share/
cat > src/installer/resources/install.properties -<<EOF idp.home=/opt/shibboleth-idp idp.home.input=/opt/shibboleth-idp idp.hostname=SUBSTITUIR_IP idp.hostname.input=SUBSTITUIR_IP idp.keystore.pass=changeit EOF
ao RemoteUser e habilite a seo do UsernamePassword. O arquivo final deve ter a seguinte configurao:
<!-- Login Handlers --> <!-<LoginHandler xsi:type=RemoteUser> <AuthenticationMethod>urn:oasis:names:tc:SAML:2.0:ac:class es:unspecified</AuthenticationMethod> </LoginHandler> -->
<!--
144
<metadata:MetadataProvider id=URLMD xsi:type=metadata:FileBackedHTTPMetadataProvider metadataURL=https://sp.curso.rnp/Shibboleth.sso/Metadata backingFile=/opt/shibboleth-idp/metadata/ sp-metadata.xml> <metadata:MetadataFilter xsi:type=metadata:ChainingFilter> <metadata:MetadataFilter xsi:type=metadata:EntityRole WhiteList>
cp /opt/treinamento/idp/attribute-resolver.xml /opt/shibboleth-idp/conf
Em seguida edite o arquivo /opt/shibboleth-idp/conf/attribute-resolver.xml, substituindo: 11 SUBSTITUIR_IP pelo IP da sua VM. 11 SUBSTITUIR_INSTITUICAO pela sigla da sua instituio usada na instalao do LDAP. 5. Configurao da autenticao LDAP: Substitua os seguintes valores pelos dados de seu servidor no arquivo abaixo: 11 SUBSTITUIR_SERVIDOR_LDAP endereo IP do host que contm o LDAP.
145
ou=people,dc=SUBSTITUIR _ INSTITUICAO,dc=br
Edite o arquivo em /opt/shibboleth-idp/conf/login.config, para que fique como exibido abaixo (o arquivo tambm se encontra em /opt/treinamento/idp/login.config, e pode ser copiado para a pasta do conf. do IDP).
ShibUserPassAuth { edu.vt.middleware.ldap.jaas.LdapLoginModule required host=SUBSTITUIR_SERVIDOR_LDAP:389 base=SUBSTITUIR_BASE_DN ssl=false userField=uid serviceUser=SUBSTITUIR_USUARIO_LEITOR_SHIB serviceCredential=SUBSTITUIR_SENHA_LEITOR_SHIB subtreeSearch=false; };
[ req ] default_bits = 2048 # Size of keys string_mask = nombstr # permitted characters distinguished_name = req_distinguished_name x509_extensions = v3_ca [ req_distinguished_name ] countryName = Nome do pas (cdigo de 2 letras) countryName_min = 2 countryName_max = 2 stateOrProvinceName = Unidade da Federacao (por extenso) localityName = Nome do municipio (por extenso)
146
0.organizationName = Nome da universidade/instituicao organizationalUnitName = Departamento da universidade/instituicao emailAddress = Endereco de email da administracao emailAddress_max = 40 commonName = Nome completo do host (inclundo o dominio) commonName_max = 64 commonName_default = $HOSTNAME_FQDN # Default values for the above, for consistency and less typing. # Variable name Value ------------------------------
#-----------------------------#0.organizationName_default =
# organizationalUnitName_default = CPD #localityName_default = Porto Alegre #stateOrProvinceName_default = Rio Grande do Sul countryName_default = BR [ usr_cert ] basicConstraints= CA:FALSE extendedKeyUsage [ ssl_server ] basicConstraints= CA:FALSE keyUsage = digitalSignature, keyEncipherment nsCertType = server nsComment [ v3_req ] basicConstraints= CA:FALSE keyUsage = digitalSignature, keyEncipherment
Captulo 7 - Roteiro de Atividades 7
extendedKeyUsage [ v3_ca ]
basicConstraints= CA:FALSE keyUsage = digitalSignature, keyEncipherment extendedKeyUsage EOF = serverAuth, nsSGC, msSGC
147
2. Certificado para Shibboleth-IdP: Copie e cole na janela de terminal os comandos seguintes (um a um) de acordo com as instrues abaixo: 11 No quarto comando, informe os seguintes dados: 22 Confirme o cdigo do pas (BR). 22 Unidade da federao (seu estado). 22 Cidade. 22 Instituio (preferencialmente preencha com a sigla). 22 Departamento da instituio. 22 Confirme se o hostname est correto (IP do host que ser o IDP). 11 No quinto comando, informe a senha changeit. A senha est cadastrada no arquivo /etc/tomcat6/server.xml e o tomcat6 precisar dela para abrir o keystore que est sendo gerado.
cd /opt/shibboleth-idp/credentials/ rm -f idp* openssl genrsa 2048 -config openssl.cnf > idp.key openssl req -new -x509 -nodes -days 1095 -sha1 -key idp.key -set_ serial 00 -config openssl.cnf > idp.crt openssl pkcs12 -export -in idp.crt -inkey idp.key -out idp.p12 -name idp -caname selfsigned
3. Certificado para Apache:
Esse certificado ser exibido para o usurio/browser quando o portal de autenticao for acessado. Ainda a partir do mesmo diretrio dos comandos acima, execute os seguintes comandos (um a um): openssl genrsa 2048 -config openssl.cnf > /etc/ssl/private/chaveapache.key openssl req -new -x509 -nodes -days 1095 -sha1 -key /etc/ssl/
Federao CAFe: Implantao do Provedor de Identidade
private/chave-apache.key -set_serial 00 -config openssl.cnf > /etc/ ssl/certs/certificado-apache.crt chown root /etc/ssl/private/chave-apache.key /etc/ssl/certs/ certificado-apache.crt chmod 640 /etc/ssl/private/chave-apache.key
4. Corrigir o arquivo de metadados local: O arquivo de metadados do servidor Shibboleth-IDP local /opt/shibboleth-idp/metadata/ idp-metadata.xml foi gerado com um certificado SSL auto-gerado na instalao do Shibboleth-IDP. Esse certificado precisa ser substitudo pelo que foi gerado no passo anterior da instalao. 11 Liste o contedo do arquivo do certificado que foi auto-assinado.
cat /opt/shibboleth-idp/credentials/idp.crt
148
11 Copie o contedo entre as linhas BEGIN CERTIFICATE e END CERTIFICATE. 11 Edite o arquivo de metadados /opt/shibboleth-idp/metadata/idp-metadata.xml e exclua o certificado incorreto. H duas ocorrncias desse certificado no arquivo, ambas dentro das seguintes tags XML. Ao substituir o certificado fique atento, pois pode ocorrer de faltar alguma parte dele. Aps copiar e colar confira se todo o contedo foi colado.
149
150
8
Provedor de identidade na plataforma Shibboleth
objetivos
Cohecer os principais pontos de configurao do Apache, Tomcat e Shibboleth IdP, e testar o ambiente configurado.
conceitos
Tomcat
MOD_ JK
MOD_ SSL
8443
Vrias comunicaes
443
Apache
LDAP
Figura 8.1 Principais pontos de configurao.
151
Configurao do Apache
Virtual Hosts: 22 AA Attribute Authority. 22 SSO CAS e Handle Server. 11 mod_ssl: 22 Certificado, Chave e Autoridade Certificadora. 22 Autenticao mtua entre o AA e o shibd. 33 Exigncia do certificado do shibd e repasse para o Shibboleth IdP. 11 mod_ jk: 22 Redirecionamento para o Tomcat. Na configurao do Apache so criados dois Virtual Hosts:
11 AA, porta 8443: responsvel pela comunicao entre o Attribute Authorithy e o Provedor de Servio. 11 SSO, porta 443: responsvel pela comunicao entre o browser do usurio e o Handle Server e o CAS. Alm disso, so habilitados os seguintes mdulos: 11 mod_ssl: responsvel por criptografar a comunicao com o provedor de identidade. 11 mod_jk : responsvel por redirecionar as requisies para o Tomcat.
Configurao do Tomcat
Conector AJP 1.3: 11 Redirecionamento do Apache. 11 Desabilitar os demais conectores. Na configurao do Tomcat necessrio apenas habilitar o conector AJP 1.3, responsvel pelo redirecionamento das requisies do Apache.
11 Resoluo dos atributos: 22 /opt/shibboleth-idp/conf/attribute-resolver.xml 11 Liberao dos atributos: 22 /opt/shibboleth-idp/conf/attribute-filter.xml 11 Provedores de servio autorizados: 22 /opt/shibboleth-idp/metadata/<federao>-metadata.xml O Shibboleth IdP possui quatro principais arquivos para configurao do servio. Atravs destes arquivos possvel especificar detalhadamente como o provedor de identidade ir atuar na federao. A seguir detalharemos cada um deles.
152
relying-party.xml
11 Identificador do provedor na federao. 11 Credenciais: certificado e chave. 11 URL do Attribute Authority. 11 Tratadores de protocolos (Protocol Handlers). O arquivo relying-party.xml responsvel pela identificao e configurao bsica do provedor de identidade. Nele so indicadas as credenciais do provedor, os tratadores de
protocolos e a URL do Attribute Authority, entre outras informaes necessrias para que o provedor possa se identificar e se comunicar corretamente dentro da federao.
attribute-resolver.xml
11 Conector para a base de atributos de usurios (LDAP ou SQL). 11 DataConnectors: 22 Definies de atributos. 11 AttributeDefinition: 22 Credenciais do usurio leitor da base de atributos.
O arquivo attribute-resolver.xml responsvel pela definio das regras de resoluo de atributos. Nele so configurados os parmetros de acesso base de dados ou ao diretrio, e o mapeamento dos atributos. O mapeamento pode ser feito diretamente, atravs da simples declarao do atributo, ou pode ser definido pelo usurio atravs de scripts personalizados.
attribute-filter.xml
Regras de liberao de atributos: 11 Liberao de atributos por SP. 11 Liberao de atributos por Federao. 11 Liberao de todos atributos sem restrio. A Poltica de Liberao de Atributos configurada atravs do arquivo attribute-filter.xml, onde possvel filtrar a liberao de atributos de acordo com quem os requisita. Pode-se, rao CAFe, ou ainda liberar ou no determinado atributo para determinado SP. por exemplo, liberar todos os atributos caso o requisitante seja um SP membro da Fede-
metadata.xml
11 Disponibilizado pela federao. 11 Informaes relevantes sobre os provedores. 11 Confiana: 22 Certificados. 22 Chaves pblicas. 11 Comunicao: 22 Ids. 22 URLs. 22 Protocolos.
153
154
Roteiro de Atividades 8
Atividade 8.1 Validando a instalao e testando a Federao
1. Valide instalao atravs do aacli.sh. Este script simula a requisio de atributos do IdP por um SP. Siga os passos abaixo para testar o IdP que acabou de instalar:
<?xml version=1.0 encoding=UTF-8?><saml2:AttributeStatement xml ns:saml2=urn:oasis:names:tc:SAML:2.0:assertion> <saml2:Attribute FriendlyName=cn Name=urn:oid:2.5.4.3 NameFor mat=urn:oasis:names:tc:SAML:2.0:attrname-format:uri> <saml2:AttributeValue xmlns:xs=http://www.w3.org/2001/ XMLSchema xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance xsi:type=xs:string>Joao</saml2:AttributeValue> </saml2:Attribute> <saml2:Attribute FriendlyName=mail Name=urn:o id:0.9.2342.19200300.100.1.3 NameFormat=urn:oasis:names:tc:SAML:2.0: attrname-format:uri> <saml2:AttributeValue xmlns:xs=http://www.w3.org/2001/ XMLSchema xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance xsi:type=xs:string>00123456@ufmg.br</saml2:AttributeValue> </saml2:Attribute> <saml2:Attribute FriendlyName=sn Name=urn:oid:2.5.4.4 NameFor mat=urn:oasis:names:tc:SAML:2.0:attrname-format:uri> <saml2:AttributeValue xmlns:xs=http://www.w3.org/2001/ XMLSchema xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance xsi:type=xs:string>Silva</saml2:AttributeValue>
Captulo 8 - Roteiro de Atividades 8
</saml2:Attribute> </saml2:AttributeStatement>
2. Simulando uma federao: 2.1.Acesse via browser o seguinte servio protegido pelo Shibboleth SP no servidor do instrutor: http://sp.curso.rnp/homologa. 2.2.Os certificados sero exibidos. Voc ser redirecionado para o WAYF/DS onde dever escolher o seu Provedor de Identidade (IdP) para se autenticar.
155
2.3.Aps escolher seu prprio IdP, voc ser redirecionado para se autenticar no IdP instalado na sua mquina. Informe o UID e senha do usurio que inseriu no LDAP no segundo captulo do curso. Caso no se lembre, acesse o Apache Directory Studio e altere a senha de algum usurio. 2.4.Aps ser autenticado voc visualizar os atributos fornecidos pelo seu IdP para a aplicao Homologa. 3. Verifique nos logs do sistema as asseres SAML trocadas entre IdP e SP. 11 Localizao dos arquivos de logs do IdP: /opt/shibboleth-idp/logs 11 Arquivos para configurao de nveis de log: /opt/shibboleth-idp/conf/logging.xml
156
9
Implantao de um provedor de identidade a partir de bases de dados relacionais
objetivos
Executar o roteiro completo de instalao de um provedor de identidade.
conceitos
Neste captulo do curso apresentaremos o roteiro completo de implantao de um Provedor de Identidade (IdP), reproduzindo o roteiro disponvel na web e destinado s instituies que no possuem servio de diretrio em operao, isto , as fontes de informao sobre os membros da intituio so mantidas em bases de dados relacionais. Discute-se inicialmente a metodologia adotada para a definio do roteiro, e, em seguida, cada uma das atividades ou etapas do roteiro detalhada. A implantao de um provedor de identidade inter-institucional constitui-se de uma sequncia de etapas que precisam ser cumpridas por qualquer instituio. Entretanto, existem detalhes internos de configurao em cada etapa que podem variar de uma instituio para outra. Assim, a metodologia adotada para auxiliar na implantao dos IdPs foi a elaborao de um roteiro de atividades, com a incluso de passos intermedirios de verificao, e a implementao de ferramentas de auxlio para facilitar a execuo e o acom panhamento das etapas de implantao dos provedores de identidade.
157
Roteiro de atividades
11 Instalar o servidor bsico padro. 11 Instalar o diretrio com o esquema brEduPerson. 11 Extrair dados para o metadiretrio. 11 Alimentar o diretrio a partir do metadiretrio. 11 Instalar o provedor de identidade. 11 Entrar na Federao Chimarro (Teste de Homologao). 11 Entrar na Federao CAFe.
O roteiro de atividades proposto parte da instalao e configurao do sistema operacional da mquina que ser dedicada ao IdP, e inclui a instalao de um servidor de diretrio onde sero armazenadas as informaes dos membros da instituio acessada pelo IdP. O roteiro segue com a etapa de extrao das informaes das bases de dados relacionais da instituo e o armazenamendo dessas informaes no servidor de diretrio. Por fim, o software do IdP instalado e suas informaes de configurao so remetidas para o gerente da federao. 11 Instalar o servidor bsico padro: 22 Instalar o sistema operacional Ubuntu. 22 Configurar o ambiente. 11 Instalar o diretrio com o esquema brEduPerson: 22 Instalar o OpenLDAP com o esquema brEduPerson includo. 22 Executar teste padro de escrita e leitura no diretrio. O roteiro proposto recomenda a utilizao da distribuio Ubuntu para instalar os sistemas operacionais nas mquinas nas quais os provedores de identidade sero instalados. Essa distribuio foi escolhida por disponibilizar de forma nativa os pacotes Java 6, requisito de software necessrio para executar as ferramentas de extrao de dados e a carga do servidor de diretrio (EID e EID2LDAP), e ainda o prprio software que implementa o provedor de identidade (Shibboleth-IdP). Instale o Ubuntu Server normalmente, executando as configuraes sugeridas no roteiro disponvel no site do projeto. Aps a instalao do sistema operacional e a configurao bsica da mquina, o passo seguinte a instalao do servidor de diretrio LDAP.
Federao CAFe: Implantao do Provedor de Identidade
As seguintes instalaes e configuraes so efetuadas nessa etapa: 11 Instalao e configurao do slapd (servidor LDAP); 11 Criao de um usurio de teste na base LDAP (uid=00123456,ou=people,dc=dominio,dc=br); 11 Liberao das portas 389 e 636 no firewall; 11 Criao de chaves SSL para o LDAP (armazenadas em /etc/ldap/ ). 11 Extrair dados para o metadiretrio: 22 Instalar EID e EID2LDAP. 22 Configurar as extraes. 22 Executar teste padro de acesso ao metadiretrio.
158
11 Alimentar o diretrio a partir do metadiretrio: 22 Configurar a exportao. 22 Executar o teste padro de leitura no diretrio.
Aps a instalao do servidor de diretrio, o prximo passo a instalao das ferramentas EID e EID2LDAP. Essas ferramentas so utilizadas para auxiliar na extrao das informaes sobre os integrantes das bases de dados relacionais e na incluso dessas informaes no servidor de diretrio. Essas ferramentas requerem a instalao dos seguintes softwares: JDK, Tomcat 6, Mysql 5.0.51x e phpMyAdmin 2.11.3. Os requisitos de hardware mnimos so: 4Gb de memria RAM (recomendado 6 Gb), 2GB livres para as aplicaes (Tomcat, Mysql, EID e EID2LDAP), 1Gb livres para as bases de dados (pode variar em funo do tamanho das bases de dados relacionais de origem). Para utilizar a ferramenta EID necessrio ter acesso s bases de dados da instituio de onde sero extradas as informaes sobre as pessoas. Essa ferramenta cria uma base de dados Mysql intermediria denominada metadiretrio. Para configurar as extraes e criar o metadiretrio os seguintes passos so necessrios: 11 Identificar as bases de dados que sero utilizados para alimentar o sistema (base de alunos de graduao, base de alunos de ps-graduao, base de recursos humanos etc.); 11 Verificar as classes e atributos necessrios para o esquema brEduPerson (classes EID recomendadas para brEduPerson j vm configuradas na instalao via roteiro); 11 Cadastrar as fontes de origem (requer normalmente acesso autorizado).
Captulo 9 - Implantao de um provedor de identidade a partir de bases de dados relacionais
A utilizao da ferramenta EID cria o metadiretrio (base de dados MySQL intermediria) e carrega para o metadiretrio as informaes sobre as pessoas vinculadas instituio que devem ser adicionadas ao diretrio LDAP, o qual ser acessado pelo IdP. O passo seguinte consiste em utilizar a ferramenta EID2LDAP para transferir os dados do metadiretrio para o diretrio LDAP. O roteiro de instalao disponibilizado define: 11 O endereo do web service do EID em: http://localhost:8080/eid/services/EidService?wsdl 11 O servidor LDAP em localhost; 11 A transformao para LDIF no padro brEduPerson; 11 O metadiretrio do EID em localhost; 11 As classes EID recomendadas para o BrEduPerson. 11 Instalar o provedor de identidade: 22 Instalar o Shibboleth IdP. 22 Enviar metadados para a Federao Chimarro. 22 Executar aplicao de teste. Uma vez carregado o diretrio que ser acessado pelo provedor de identidade, o passo seguinte a instalao do prprio provedor de identidade. O roteiro recomenda a instalao do software Shibboleth IdP (verso 2.x), o qual requer os seguintes softwares adicionais: Tomcat, Apache2 e OpenSSl.
159
O tutorial disponibilizado requer o endereo do servidor LDAP que ser acessado pelo IdP e efetua as seguintes configuraes: 11 Cadastramento da senha do usurio leitor-shib na base LDAP; 11 Configurao do Apache para utilizar o mdulo mod_jk ; 11 Criao de certificados SSL para o Apache e o Shibboleth-IdP; Aps a instalao do IdP, o prximo passo do roteiro a integrao do IdP instalado com uma federao de teste (Federao Chimarro). Para isso, necessrio enviar para o gerente dessa federao os metadados gerados na execuo das etapas anteriores. Os metadados servem para informar aos demais participantes da federao quais so os servidores reconhecidos e confiveis. O roteiro de instalao do Shibboleth-IdP faz a gerao da chave criptogrfica e de um certificado SSL autoassinado para o servidor. A chave pblica deste certificado parte integrante dos metadados do servidor. Para entrar na Federao CAFe necessrio: 11 Solicitar ou gerar certificado. 11 Instalar o certificado na mquina. 11 Migrar as configuraes. 11 Enviar metadados para a Federao CAFe. 11 Executar aplicao de teste. A entrada na federao de CAFe a ltima etapa da implantao do provedor de identidade inter-institucional. Uma vez que todas as etapas anteriores foram cumpridas com sucesso, necessrio agora dispor de um certificado assinado por uma autoridade certificadora reco nhecida pelos demais membros da federao. De posse do certificado, basta migrar as configuraes necessrias e enviar a nova verso dos metadados para o gerente da Federao CAFe.
160
Roteiro de Atividades 9
Atividade 9.1 Demonstrar o funcionamento da autenticao e envio de atributos
1. Iniciar visualizao dos arquivos de log dos provedores de identidade e de servio: 11 Localizao dos arquivos de logs do IdP: /opt/shibboleth-idp/logs 11 Localizao dos arquivos de log do SP: /var/log/shibboleth 1.1.Abrir terminais (SSH) no provedor de servio: 33 SSH: sp.curso.rnp 33 Senha: sysadmin 1.2.Visualizar (tail f) os arquivos de log indicados pelo instrutor. 2. Acessar recurso web: 2.1.Abrir o browser e acessar a URL indicada pelo instrutor. 2.2.Verificar o redirecionamento para o WAYF no arquivo de log do Shibboleth SP. 3. Selecionar provedor de identidade no WAYF. 4. Autenticar-se com uma conta invlida: 4.1.Enviar credenciais invlidas (login e senha) para o provedor de identidade. 5. Autenticar-se com uma conta vlida: 5.1.Enviar credenciais vlidas (login e senha) para o provedor de identidade. 5.2.Verificar o redirecionamento e envio do handle para o provedor de servio no arquivo de log do Shibboleth IdP. 6. Visualizar o recurso web: 6.1.Verificar o recebimento do handle no arquivo de log do Shibboleth SP. 6.2.Verificar solicitao de atributos no arquivo de log do Shibboleth SP. 6.3.Verificar envio de atributos no arquivo de log do Shibboleth IdP. 6.4.Verificar recebimento de atributos no arquivo de log do Shibboleth SP.
161
162
10
Implantao de um provedor de identidade a partir de um diretrio existente
objetivos
Criao de arquivo de configurao do Shibboleth-IdP que contm o mapeamento necessrio para utilizar atributos j existentes em uma base LDAP para compartilhar dados com a federao CAFe.
conceitos
Introduo
Shibboleth-IDP (Identity Provider): 11 Disponibiliza os atributos de uma base de dados local para a federao. 11 Efetua o mapeamento dos atributos e controle de acesso. O ltimo captulo do curso apresentar as configuraes necessrias para que uma insti-
tuio que est utilizando uma base LDAP com schema definido possa compatibilizar-se com os requisitos da federao CAFe. Sero apresentados os procedimentos necessrios para criar o arquivo de configurao que define o mapeamento realizado pelo Shibboleth-IDP entre o schema LDAP da instituio e os atributos que devem ser compartilhados com os provedores de servio da federao. O Shibboleth-IDP (Identity Provider) faz a busca dos atributos dos usurios na base de dados e apresenta-os de forma organizada e padronizada para os provedores de servio federados. Para executar essa operao ele acessa a base de dados da instituio utilizando os chamados conectores, realizando uma busca dos atributos de determinado usurio e mapeando-os para que sejam visualizados na federao.
163
Os conectores podem fazer essa busca em diversas origens, entre elas bases de dados relacionais, diretrios LDAP, arquivos texto e ainda conectores personalizados, que podem ser definidos caso a caso. Para efetuar o mapeamento entre uma base LDAP existente e que no utiliza o schema brEduPerson, utilizaremos operaes referentes ao conector LDAP e tambm operaes personalizadas.
Anlise do cenrio
11 O objetivo do mapeamento compatibilizar os requisitos da federao com os atributos existentes na base LDAP. 11 Definido no arquivo attribute-resolver.xml. 11 Operaes bsicas: 22 Renomear atributo. 22 Modificar valor de atributo. 22 Modificar valor de sequncia de atributos.
11 cn: primeiro nome. 11 sn: restante do nome. 11 brEduAffiliation: nmero de ordem do vnculo do usurio. Se houver mais de um vnculo eles devem ser fornecidos em ordem crescente. Este atributo serve como ndice para os demais atributos de informaes sobre vnculos. 11 brEduAffiliationType: tipo do vnculo do usurio. Se houver mais de um vnculo, eles devem ser fornecidos na ordem definida em brEduAffiliation. 11 brEntranceDate: data de entrada para cada vnculo. Se houver mais de um vnculo as datas de entrada devem ser fornecidas na ordem definida em brEduAffiliation. 11 brExitDate: data de sada para cada vnculo. Se houver mais de um vnculo, as datas de entrada devem ser fornecidas na ordem definida em brEduAffiliation. A inexistncia dessa informao indica que o usurio ainda tem vnculo ativo.
164
Os atributos listados acima permitem que cada usurio seja identificado corretamente junto sua instituio e que sejam verificados os vnculos ativos ou inativos que ele possui. Diferentes provedores de servio podero requisitar mais ou menos informaes sobre um usurio para permitir o uso de seu servio.
Os atributos j existentes no LDAP de sua instituio refletem as necessidades para a identificao de seus usurios, e devem ser completos o suficiente para suprir os atributos requisitados pela federao CAFe. Segue uma listagem contendo os atributos de um usurio da UFRGS, com os seus respectivos valores, como se encontra na base LDAP:
dn: uid=00112389,ou=People,dc=ufrgs,dc=br objectClass: CourierMailAccount objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount objectClass: ufrgs cn: JOAO DA SILVA gidNumber: 100000 homeDirectory: /export/home/0/0/1/2/3/00123456 sn: JOAO DA SILVA uid: 00123456 displayName: JOAO DA SILVA gecos: JOAO DA SILVA loginShell: /bin/false mail: 00123456@ufrgs.br mailbox: /export/home/0/0/1/2/3/00123456/Maildir quota: 1048576000S
Captulo 10 - Implantao de um provedor de identidade a partir de um diretrio existente
165
shadowLastChange: 1 shadowMax: 99999 shadowWarning: 7 ufrgsCategoriaFuncional: 01: ANALISTA DE TECNOLOGIA DA INFORMACAO ufrgsCategoriaFuncional: 02: ufrgsCategoriaFuncional: 03: ufrgsCodCurso: 01: ufrgsCodCurso: 02: 305 ufrgsCodCurso: 03: 64 ufrgsCodTipoVinculo: 01: 1 ufrgsCodTipoVinculo: 02: 4 ufrgsCodTipoVinculo: 03: 6 ufrgsCurso: 01: ufrgsCurso: 02: CINCIA DA COMPUTAO ufrgsCurso: 03: COMPUTAO ufrgsDataAfastamento: 01: ufrgsDataAfastamento: 02: 23/12/2005 ufrgsDataAfastamento: 03: ufrgsDataIngresso: 01: 31/07/2008 ufrgsDataIngresso: 02: 12/03/2001 ufrgsDataIngresso: 03: 08/03/2006 ufrgsRamal: 5000 ufrgsTipoVinculo: 01: Tecnico-Administrativo ufrgsTipoVinculo: 02: Aluno de graduacao
Federao CAFe: Implantao do Provedor de Identidade
166
Analisando esta listagem, possvel fazer o seguinte mapeamento: 11 eduPersonPrincipalName: utilizar o atributo uid no escopo ufrgs.br. 11 mail: utilizar atributo mail j existente. 11 cn: utilizar a primeira parte do string cn. 11 sn: utilizar o restante do string cn. 11 brEduAffiliation: enviar os valores de ufrgsTipoVinculo na ordem correta de acordo com o ndice. preciso remover o ndice. 11 brEntranceDate: modificar o valor de ufrgsDataIngresso para se adequar ao padro AAAMMDD e enviar ordenadamente, removendo o ndice. 11 brExitDate: similar ao brEntranceDate, utilizando o atributo ufrgsDataAfastamento.
<resolver:DataConnector xsi:type=dc:RelationalDatabase xmlns=urn:mace:shibboleth:2.0:resolver:dc id=MyDatabase> <ApplicationManagedConnection jdbcDriver=org.hsqldb.jdbcDriver jdbcURL=jdbc:hsqldb:res:/data/database/shibdb jdbcUserName=sa /> <QueryTemplate> <![CDATA[ SELECT * FROM PEOPLE WHERE netid=${principal} ]]> </QueryTemplate> </resolver:DataConnector>
Captulo 10 - Implantao de um provedor de identidade a partir de um diretrio existente
<resolver:DataConnector id=myLDAP xsi:type=LDAPDirectory xmlns=urn:mace:shibboleth:2.0:resolver:dc ldapURL=ldaps://servidorad.instituicao.br baseDN=dc=servidora d,dc=instituicao,dc=br principal=servidorad\usuario principalCredential=senha searchScope=SUBTREE mergeResults=true cacheResults=false maxResultSize=1 searchTimeLimit=3000> <FilterTemplate> <![CDATA[ (samAccountName =$requestContext.principalName)
167
]]> </FilterTemplate> <ReturnAttributes>sAMAccountName userPrincipalName name mail cn sn displayName</ReturnAttributes> <LDAPProperty name=java.naming.referral value=follow/> </resolver:DataConnector>
Estes conectores devem ser definidos no arquivo attribute-resolver.xml, e a partir dele que sero gerados os demais atributos que devero ser mapeados via tag <AttributeDefinition/>. A tag resolver:Dependency sempre referenciar o ID de um conector j definido no arquivo.
Renomear atributo
Faz a busca do atributo original na base LDAP e depois renomeia-o.
<resolver:AttributeDefinition id=commonName xsi:type=Simple xmlns=urn:mace:shibboleth:2.0:resolver:ad sourceAttributeID=cn> <resolver:Dependency ref=myLDAP /> <resolver:AttributeEncoder xsi:type=SAML1String xmlns=urn:mace:shibboleth:2.0:attribute:encoder name=urn:mace:dir:attribute-def:cn /> <resolver:AttributeEncoder xsi:type=SAML2String xmlns=urn:mace:shibboleth:2.0:attribute:encoder name=urn:oid:2.5.4.3 friendlyName=cn /> </resolver:AttributeDefinition>
A renomeao de um atributo feita usando apenas uma relao de dependncia entre um atributo que deve ser buscado na base LDAP e a definio de outro atributo com o novo nome. Propriedades da tag SimpleAttributeDefinition:
Federao CAFe: Implantao do Provedor de Identidade
11 id (obrigatrio): nome do atributo. 11 sourceAttributeID (opcional): indica o nome do atributo origem cujo valor ser copiado. 11 <resolver:Dependency : possuem um atributo ref cujo valor o ID nico da definio de atributo ou o conector de dados do qual depende esta definio de atributo. 11 https://wiki.shibboleth.net/confluence/display/SHIB2/ResolverScriptAttributeDefinition 11 https://wiki.shibboleth.net/confluence/display/SHIB2/ResolverScriptAttributeDefinitionE xamples#ResolverScriptAttributeDefinitionExamples-ex1
168
<resolver:AttributeDefinition xsi:type=Script xmlns=urn:mace:shibboleth:2.0:resolver:ad id=fullName sourceAttributeID=cn> <resolver:Dependency ref=myLDAP /> <resolver:Dependency ref=surName /> <Script><![CDATA[ importPackage(Packages.edu.internet2.middleware.shibboleth.common. attribute.provider); fullName= new BasicAttribute(fullName); fullName.getValues().add(cn.getValues().get(0) + +surName. getValues().get(0));]]> </Script> </resolver:AttributeDefinition>>
A alterao do valor de um atributo pode ser feita utilizando cdigo Java Script que defi nido no arquivo attribute-resolver.xml. O trecho do programa armazenado na tag Script e compilado em tempo de execuo pelo Shibboleth-IDP, durante a carga do Tomcat. A resoluo de atributos feita atravs do Java Naming and Directory Interface (JNDI), que da base LDAP para efetuar a modificao do seu valor. O cdigo anterior seleciona os valores dos atributos cn e sn para concatenar e gerar o valor para um novo atributo criado e chamado de fullName, que contm o nome completo do usurio.
Captulo 10 - Implantao de um provedor de identidade a partir de um diretrio existente
169
170
Roteiro de Atividades 10
Atividade 10.1 Renomeando um atributo
Defina um mapeamento para o atributo rfc8222MailBox disponvel no esquema abaixo, de modo que seu contedo seja enviado para a federao com o nome de mail.
dn: uid=00123456,ou=People,dc=ufrgs,dc=br uid: 00123456 cn: JOAO sn: DA SILVA rfc822MailBox: 00123456@ufrgs.br
dn: uid=00123456,ou=People,dc=ufrgs,dc=br uid: 00123456 cn: JOAO sn: DA SILVA rfc822MailBox: 00123456@ufrgs.br
dn: uid=00123456,ou=People,dc=ufrgs,dc=br uid: 00123456 cn: JOAO sn: DA SILVA rfc822MailBox: 00123456@ufrgs.br
Captulo 10 - Roteiro de Atividades 10
171
172
Bibliografia
11 Portal do Shibboleth: Documentao tcnica: Instalao, configurao bsica e avanada do Shibboleth IdP, SP e DS http://shibboleth.net/ 11 Portal do cliente para LDAP Apache Directory Studio http://directory.apache.org/studio/ 11 Wikipedia descrio do protocolo SAML 2.0 http://en.wikipedia.org/wiki/SAML_2.0 11 Portal da Oasis - consrcio sem fins lucrativos que impulsiona o desenvol vimento de padres abertos para a sociedade da informao global https://www.oasis-open.org/committees/tc_home.php?wg_ abbrev=security 11 Portal da Switch- Federao Acadmica Sua https://www.switch.ch/aai/ 11 Portal da Comunidade Acadmica Federada Federao CAFe www.cafe.rnp.br
173
Bibliografia
174
Edr Quinto Moreira membro do Comit Tcnico da Federao CAFe e do Comit Tcnico de Gesto de Identidades da RNP e tambm arquiteto de software no Departamento de Cincia da Computao da UFMG. verton Didon Foscarini Analista de Suporte no CPD da UFRGS. No escopo da Federao CAFe, ajudou a definir as metodologias de instalao dos softwares utilizados (Ubuntu, LDAP, Tomcat, Shibboleth, etc), criando documentao e roteiros de instalao. Gessy Caetano da Silva Junior A nalista de sistemas para o Laboratrio de Computao cientfica LCC/CENAPAD da UFMG. Ldia Aparecida O. Alixandrina Analista de Sistemas na UFMG trabalhando na implantao de diretrios federados no projeto CAFe. Trabalha tambm no desenvolvimento das ferramentas EID (Export Import Directory), EID2LDAP, e pCollecta. Lourival Pereira Vieira Neto Consultor da Diretoria de Pesquisa e Desenvolvimento da RNP, membro do Comit Tcnico de Gesto de Identidade da RNP e membro-desenvolvedor da The NetBSD Foundation Silvana Rossetto Professor Adjunto no Departamento de Cincia da Computao, da Universidade Federal do Rio de Janeiro (UFRJ). Nessa universidade, exerce atividades de ensino no Departamento de Cincia da Computao, integra o grupo de pesquisa na rea de Redes de Computadores e Sistemas Distribudos e participa do Programa de Ps-Graduao em Informtica (PPGI/UFRJ).
O curso desenvolve competncias para implantao de um provedor de identidade Shibboleth e integrao deste provedor Federao CAFe(Comunidade Acadmica Federada). O objetivo principal demonstrar o funcionamento de uma infraestrutura de autenticao e autorizaofederada, para isso sero estudados os conceitos de Diretrios LDAP, esquema brEduPerson, ferramentas auxiliares para criao dediretrios, protocolo SAML 2 e sua implementao Shibboleth. O curso garante aoaluno todo o conhecimento necessrio para implantao do provedorde identidade na sua instituio. Este livro inclui os roteiros das atividades prticas e o contedo dos slides apresentados emsala de aula, apoiando profissionais na disseminao desteconhecimento em suas organizaes ou localidades de origem.
ISBN 978-85-63630-48-3
9 788563 630483