Você está na página 1de 194

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

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

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

Rio de Janeiro Escola Superior de Redes 2014

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

Escola Superior de Redes


Coordenao Luiz Coelho Edio Pedro Sangirardi Reviso Lincoln da Mata Reviso Tcnica Ldia Aparecida O. Alixandrina Edr Quinto Moreira Coordenao Acadmica de Gesto de Identidade Renato Duarte Equipe ESR (em ordem alfabtica) Adriana Pierro, Celia Maciel, Cristiane Oliveira, Derlina Miranda, Edson Kowask, Elimria Barbosa, Evellyn Feitosa, Felipe Nascimento, Lourdes Soncin, Luciana Batista, Luiz Carlos Lobato e Yve Marcial Capa, projeto visual e diagramao Tecnodesign Verso 1.2.1 Este material didtico foi elaborado com fins educacionais. Solicitamos que qualquer erro encontrado ou dvida com relao ao material ou seu uso seja enviado para a equipe de elaborao de contedo da Escola Superior de Redes, no e-mail info@esr.rnp.br. A Rede Nacional de Ensino e Pesquisa e os autores no assumem qualquer responsabilidade por eventuais danos ou perdas, a pessoas ou bens, originados do uso deste material. As marcas registradas mencionadas neste material pertencem aos respectivos titulares. Distribuio

Escola Superior de Redes

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

Creative Commons: Atribuio e Uso No-Comercial 2.5 Brasil

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

1. Introduo Federao CAFe


Introduo1 Infraestrutura de autenticao e autorizao federada2 Federao acadmica2

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

2. Reviso de LDAP e esquema brEduPerson


Reviso de servio de diretrio e LDAP13 LDAP14 OpenLDAP15 Modelos LDAP15 Modelo de informao15 Classes de objetos17 Atributos18 Modelo de nomes20 Modelo funcional22 Representao LDIF24 Comandos de shell e ferramenta grfica27 Esquema brEduPerson31 Modelo de nomes para uso na Federao CAFe32 Roteiro de Atividades 235 Atividade 2.1 Instalar e configurar um servio de diretrio OpenLDAP35 Atividade 2.2 Editar o arquivo LDIF e executar alteraes no diretrio37 Atividade 2.3 Utilizao de ferramenta grfica para acesso ao servidor LDAP38

3. Construindo metadiretrios com EID


Motivao para uso do EID 39 Metadiretrio39 EID40 EID e brEduPerson42 Acesso43 Configuraes iniciais44 Configurao de extraes46 Definio de repositrios46 Extraes49 Processos55 Agendamentos57 Resultados de processamento59

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

4. Criando extraes no EID


Extrao de arquivos texto67 Extrao de arquivos texto68 ETC69 Extrao de diretrios LDAP70 Resoluo de objetos70 Parmetros globais71 Importao incremental72 Script de converso74 Script de converso Bean Shell74 Script de converso Java Nativo75 Algoritmos de unificao75 Web services77 Problemas comuns78 Roteiro de Atividades 4 79 Atividade 4.1 Definio de uma extrao de arquivo texto79 Atividade 4.2 Definio de extrao para a classe Aluno81 Atividade 4.3 Transformao do campo Sexo82 Atividade 4.4 Importao de login e senha83 Atividade 4.5 Alterar um registro de pessoa da base de origem e reagendar o processo de carga da classe Identificao 85 Atividade 4.6 Cadastrar um repositrio de dados do tipo Diretrio LDAP86 Atividade 4.7 Criar uma extrao a partir de repositrio do tipo Diretrio LDAP 86

5. Gesto de pessoas e grupos no EID


Gesto manual de pessoas89 Conciliao de registros89 Conciliao de registros90 Pesquisa de pessoas91 Insero de novas pessoas93 Alterao de dados via interface94 Forar reunificao96 Desativao de pessoas96 Gesto de grupos97 Insero e atualizao de grupos97 Roteiro de Atividades 599 Atividade 5.1 Conciliao de um registro manualmente99 Atividade 5.2 Registros pendentes para conciliao99 Atividade 5.3 Insero de uma nova pessoa100 Atividade 5.4 Definio de um grupo100

6. Alimentao de diretrios com EID2LDAP


Caractersticas do EID2LDAP101 Arquitetura102 XML do EID103 XML do EID103 XSLT104 Processamento do LDIF105 Configurao e uso106 Acesso106 Configurao de exportao108 Inicializao do agente109 Cadastramento dos servidores110 Cadastramento do XSLT111 Cadastramento do XSLT112 Definio de agendamento112 Verificao do log114 vi Problemas comuns115

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

8. Provedor de identidade na plataforma Shibboleth


Principais pontos de configurao151 Configurao do Apache152 Configurao do Tomcat152 Configurao do Shibboleth IdP152 Roteiro de Atividades 8155 Atividade 8.1 Validando a instalao e testando a Federao155

vii

9. Implantao de um provedor de identidade a partir de bases de dados relacionais


Roteiro de implantao de um provedor de identidade157 Roteiro de atividades158 Roteiro de Atividades 9161 Atividade 9.1 Demonstrar o funcionamento da autenticao e envio de atributos 161

10. Implantao de um provedor de identidade a partir de um diretrio existente


Origem dos dados163 Anlise do cenrio164 Atributos recomendados pela federao164 Atributos do esquema original165 Definio dos mapeamentos166 Renomear atributo168 Alterar valor de atributo169 Roteiro de Atividades 10171 Atividade 10.1 Renomeando um atributo171 Atividade 10.2 Alterando o valor de um atributo171 Atividade 10.3 Mltiplos atributos171

Bibliografia 173

viii

Escola Superior de Redes


A Escola Superior de Redes (ESR) a unidade da Rede Nacional de Ensino e Pesquisa (RNP) responsvel pela disseminao do conhecimento em Tecnologias da Informao e Comunicao (TIC). A ESR nasce com a proposta de ser a formadora e disseminadora de competncias em TIC para o corpo tcnico-administrativo das universidades federais, escolas tcnicas e unidades federais de pesquisa. Sua misso fundamental realizar a capacitao tcnica do corpo funcional das organizaes usurias da RNP, para o exerccio de competncias aplicveis ao uso eficaz e eficiente das TIC. A ESR oferece dezenas de cursos distribudos nas reas temticas: Administrao e Projeto de Redes, Administrao de Sistemas, Segurana, Mdias de Suporte Colaborao Digital e Governana de TI. A ESR tambm participa de diversos projetos de interesse pblico, como a elaborao e execuo de planos de capacitao para formao de multiplicadores para projetos educacionais como: formao no uso da conferncia web para a Universidade Aberta do Brasil (UAB), formao do suporte tcnico de laboratrios do Proinfo e criao de um conjunto de cartilhas sobre redes sem fio para o programa Um Computador por Aluno (UCA).

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.

Convenes utilizadas neste livro


As seguintes convenes tipogrficas so usadas neste livro: Itlico Indica nomes de arquivos e referncias bibliogrficas relacionadas ao longo do texto.

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,

Infraestrutura de autenticao e autorizao federada


11 Motivao: 11 Disseminao de tecnologias e ferramentas que estimulam o compartilhamento de recursos, informaes e servios inter-institucionais. 11 Desafio para as instituies: 11 Desenvolver ambientes seguros e escalveis para permitir que a colaborao visionada acontea de fato.

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.

Figura 1.1 Modelo de autenticao.

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.

Captulo 1 - Introduo Federao CAFe

Elementos de uma federao


11 Uma federao inclui dois elementos: 22 Provedor de Identidade (IdP). 22 Provedor de Servio (SP). 11 Atores em uma federao: 22 Usurio: deseja usar um recurso protegido. 22 Provedor do recurso: aplicao com um SP instalado. 22 Instituio do usurio: possui um IdP e um processo interno de autenticao. Uma federao constituda de dois componentes principais: 11 Provedores de identidade: armazenam e gerenciam as informaes sobre pessoas. 11 Provedores de servio: oferecem servios restritos para grupos de usurios.
Federao CAFe: Implantao do Provedor de Identidade

Figura 1.2 Autenticao federada

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.

Figura 1.3 Componentes de uma federao e suas associaes.

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.

Componente adicional de uma federao


11 Where Are You From (WAYF) / Discovery Service (DS): 22 Elemento que centraliza as informaes sobre provedores de identidade de uma federao.

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.

Figura 1.4 Interao entre os elementos de uma federao.

Federao CAFe: Implantao do Provedor 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.

Exemplos de federaes acadmicas


11 InCommon: Federao nos EUA, 107 instituies e dois milhes de usurios. 11 Feide: Federao na Noruega. 11 Switch: Federao na Sua. 11 UK Federation: Federao no Reino Unido.

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).

Captulo 1 - Introduo Federao CAFe

Figura 1.5 Arquitetura bsica proposta para a Federao CAFe.

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).

Figura 1.6 Estatsticas de provedores de servios da CAFe.

w
A listagem dos IdPs pode ser consultada em: http://portal.rnp. br/web/servicos/ instituicoes-clientes

Figura 1.7 Estatsticas de provedores de identidade da CAFe.

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

Captulo 1 - Introduo Federao CAFe

Federao CAFe: Implantao do Provedor de Identidade

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.

Captulo 1 - Introduo Federao CAFe

11

Federao CAFe: Implantao do Provedor de Identidade

12

2
Reviso de LDAP e esquema brEduPerson
objetivos
Fazer uma reviso de servio de diretrio, LDAP e Esquema brEduPerson.

conceitos

Protocolo LDAP e Esquema brEduPerson.

Reviso de servio de diretrio e LDAP


11 Servio de diretrio: 11 Banco de dados especializado para localizar, gerenciar, administrar e organizar objetos e recursos de rede. 11 Unificao de informaes de pessoas e servios. 11 Banco de informaes distribudas. 11 Mecanismo de busca flexvel. 11 Espao de nomes homogneo. 11 Servio padronizado. Neste captulo sero revisados os conceitos gerais sobre diretrio com o uso do protocolo

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.

Captulo 2 - Reviso de LDAP


e esquema brEduPerson

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.

dc=rnp, dc=br ou=bsa ou=operadores


cn sn uid Mail Joo Silva silva jsilva joao.silva@rnp.br

ou=rja

ou=hardware

ou=funcionarios cn=Joo Silva


Figura 2.1 Modelo de informao.

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

[ MAY <atributos opcionais> ]

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:

objectclass ( <OID da classe de objeto> [ NAME <nome da classe de objetos> ]

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

11 udio: 1.3.6.1.4.1.1466.115.121.1.4 11 Certificado: 1.3.6.1.4.1.1466.115.121.1.8 11 JPEG: 1.3.6.1.4.1.1466.115.121.1.28

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:

<nome do atributo> = <valor>


22 Enquanto DNs identificam unicamente uma entrada no diretrio, RDNs fazem o mesmo dentro de um nvel do diretrio. Entradas so arranjadas dentro da DIT com base em seus DNs. Um DN um nome nico
Federao CAFe: Implantao do Provedor de Identidade

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

ou=funcionarios cn=Joo Silva

Figura 2.2 DN e RDN.

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.

Representao por strings


cn=Joo Silva,ou=funcionarios,ou=operadores, ou=bsa,dc=rnp,dc=br
A sintaxe exata para nomes definida na RFC 2253. Os exemplos seguintes so DNs vlidos escritos na forma de string:

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.

Representao por URL


ldap://servidor/cn=Joo Silva,ou=funcionarios, ou=operadores,ou=bsa,dc=rnp,dc=br?uid
O formato da URL LDAP tem a forma geral:

ldap://<host>:<porta>/<caminho>,

21

Onde <caminho> tem a forma:

<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.

Exemplo (&(cn=joao)(sn=silva)) (|(uid=joao)(uid=silva)) (!(uid=joao)) gidNumber=100 sn~=silv uidNumber>=5000 Sn<=silva *

<= *

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 :

( & ou | (filtro1) (filtro2) ...)( ! (filtroN) )


Operadores: = 5,8 igualdade >= 5 maior igual <=5 menor igual ~=5 aproximao =* 5 quaisquer caracteres

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 :

dn: <nome distinto> <atributo>: <valor> <atributo>: <valor>


Uma linha pode ser continuada, comeando uma nova linha com um caractere de espao ou tabulao:

dn: cn=Jorge, ou=lcc, o=ufmg, c=br


Atributos multi-valorados so especificados em linhas separadas:

cn: Joo Silva cn: Joo


Se o valor de um atributo contm um caractere que no esteja na codificao US-ASCII ou comece com um espao ou dois-pontos (:), o valor do atributo seguido por um duplo dois-pontos (::) e codificado em uma notao em base64. Entretanto, sempre possvel
Federao CAFe: Implantao do Provedor de Identidade

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

dn: <distinguished name> <attrdesc>: <attrvalue> <attrdesc>: <attrvalue> <attrdesc>:: <base64-encoded-value>

24

<attrdesc>:< <URL> ...

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

dn: cn=Joao Silva ,dc=rnp,dc=br

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>

Federao CAFe: Implantao do Provedor de Identidade

<attrdesc>: <value2> ... -

Descrio de sentenas de atualizao:

dn: cn=Joao Silva,dc=rnp,dc=br changetype: add objectclass: person objectclass: inetorgperson

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

Comandos de shell e ferramenta grfica


Principais clientes LDAP por linha de comando: 11 ldapadd <opes> -f <arquivo LDIF> 22 Adiciona entradas nos diretrios. 11 ldapmodify <opes> -f <arquivo LDIF> 22 Modifica os dados no diretrio, seja modificando entradas ou adicionando-as. 11 ldapdelete <opes> <lista de DNs | -f arquivo> 22 Exclui entradas do diretrio. 11 ldapsearch <opes> <filtro de busca> 22 Realiza buscas no diretrio de acordo com critrios especficos.

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,

ldapadd -x -H ldap://servidor.ldap -D cn=admin,dc=curso,dc=ldap -W -f arquivo.ldif ldapmodify -x -D cn=admin,dc=esr,dc=rnp,dc=br -W -f arquivo.ldif ldapsearch -x -D cn=admin,dc=esr,dc=rnp,dc=br W b

27

dc=curso,dc=ldap uid=00123456 ldapdelete x D cn=admin,dc=esr,dc=rnp,dc=br W uid=dijkstra, ou=people,dc=esr,dc=rnp,dc=br

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.

Figura 2.3 Ferramenta grfica Apache Directory Studio.

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

Figura 2.4 Conexo com o servidor LDAP.

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.

Figura 2.5 Administrador da base LDAP.

A tela mostrada na Figura 2.6 permite configurar as opes de acesso, ou seja, usurio e senha de acesso ao servidor LDAP.

Captulo 2 - Reviso de LDAP


e esquema brEduPerson

29

Figura 2.6 Opes de navegao no diretrio.

Com a opo Fetch Base DNs possvel obter o DN da base LDAP apenas consultando o servidor.

Federao CAFe: Implantao do Provedor de Identidade

Figura 2.7 Tela principal do ApacheDS.

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.

Classes de objetos e atributos


11 brPerson 11 brPersonCPF, brPersonPassport 11 brEduPerson 11 brEduAffiliationType, brEntranceDate, brExitDate, brEduAffiliation 11 brBiometricData 11 brCaptureDate, brBiometricSource, brBiometricData O esquema brEduPerson define quatro classes de objetos: 11 brPerson (com atributos gerais sobre pessoas); 11 brEduPerson (com atributos comuns para pessoas em universidades); 11 brBiometricData (com atributos sobre dados biomtricos); 11 brEduVoIP (com atributos sobre telefones VoIP). 11 Classes de objetos e atributos: 22 brEduVoIP 33 brEduVoIPalias 33 brEduVoIPtype 33 brEduVoIPadmin 33 brEduVoIPcallforward 33 brEduVoIPaddress 33 brEduVoIPexpiryDate 33 brEduVoIPbalance 33 brEduVoIPcredit 33 brEduVoIPphone

Captulo 2 - Reviso de LDAP


e esquema brEduPerson

31

Modelo de nomes para uso na Federao CAFe


11 Necessidade de refletir na base de dados o fato de uma mesma pessoa desempenhar diferentes papis dentro da sua instituio ou possuir mais de um nmero VoIP, cada um com suas caractersticas, ou armazenar dados biomtricos de fontes distintas. 11 Exemplos: 22 O mesmo aluno em mais de um curso, com data de ingresso e cdigo do curso distintos. 22 Um professor exercendo diferentes funes em perodos determinados: 33 Coordenao de curso. 33 Direo de unidade.

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

Telefone VoIP 1 do Joo

Vnculo 2 do Joo
Figura 2.8 Entradas descrevendo vnculos.

Telefone VoIP 2 do Joo Dado biomtrico do dedo polegar esquerdo do Joo

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

schacCountryOfCitizenship: Brazil telephoneNumber: +55 22 81389199 cn: Silvana userPassword: ******

dn: braff=1,uid=silvana,ou=people,dc=uff,dc=br objectclass: brEduPerson braff: 1 brafftype: faculty brEntranceDate: 20070205

33

dn:braff=2,uid=silvana,ou=people,dc=uff,dc=br objectclass: brEduPerson braff: 2 brafftype: student brEntranceDate: 20070205 brExitDate: 20080330

dn:brvoipphone=1,uid=silvana,ou=people,dc=uff,dc=br objectclass: brEduVoIP brvoipphone: 1 brvoipalias: 2346 brEduVoIPtype: pstn brEduVoIPadmin:uid=admin,ou=people,dc=uff,dc=br

uid=silvana

brcpf:12345678900 brpassaport: A23456 schacCountryOfCitizenship:Brazil telephoneNumber:+55 22 81389199 cn: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

Federao CAFe: Implantao do Provedor de Identidade

brafftype:student brEntranceDate:20070205 brExitDate:20080330

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

Figura 2.9 Entradas.

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:

sudo su 2. Faa a atualizao dos pacotes:

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:

debconf-set-selections <<-EOF slapd EOF apt-get -y install slapd


4. Pare o servio de LDAP ( normal dar erro, pois ainda no foi configurado):

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:

/etc/init.d/slapd stop sh /opt/treinamento/popula.sh /etc/init.d/slapd start

36

11. Execute os seguintes comandos para instalar utilitrios para manipulao do LDAP:

apt-get install ldap-utils /etc/init.d/slapd restart


Agora o LDAP j est instalado na sua VM.

Atividade 2.2 Editar o arquivo LDIF e executar alteraes no diretrio


1. Crie um arquivo atividade2.ldif contendo os dados abaixo e substituindo o que estiver entre <> por valores personalizados:

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:

ldapadd -f atividade2.ldif -x D cn=admin,dc=<SUA_ INSTITUICAO>,dc=br W


Neste comando os parmetros so: - x: informa ao ldapadd que utilize operao de bind simples. - D <DN>: especifica um DN para realizar o bind. -W: mostra o prompt para digitar a senha do DN especificado com a opo -D. - f <arquivo>: especifica um arquivo LDIF cujos dados sero adicionados ao diretrio.
Captulo 2 - Roteiro de Atividades 2

37

3. Verifique a insero dos dados no diretrio substituindo <LOGIN> e <SUA_INSTITUICAO> pelo valor associado no item 1.

ldapsearch -x -D cn=admin,dc=<SUA_INSTITUICAO>,dc=br W b dc=<SUA_INSTITUICAO>,dc=br uid=<LOGIN>


No comando acima, alm dos parmetros utilizados no item anterior h tambm: - b: especifica uma base para comear a busca; deve ser um DN da base LDAP. uid=<LOGIN>: filtro de busca que seleciona as entradas que se encaixam no critrio especificado. 4. Remova a entrada adicionada ao diretrio no item 1:

ldapdelete uid=<LOGIN>,ou=people,dc=<SUA_INSTITUICAO>,dc=br -x -D cn=admin,dc=<SUA_INSTITUICAO>,dc=br W


5. Verifique a remoo da entrada repetindo o comando do item 3.

Atividade 2.3 Utilizao de ferramenta grfica para acesso ao servidor LDAP


1. Clique no cone do Apache Directory Studio que se encontra no seu desktop para execut-lo, escolha no menu a opo LDAP e clique em New Connection. 2. Entre com os dados do servidor LDAP: 11 Preencha o nome da conexo; 11 Preencha o IP do servidor LDAP (IP da sua VM); 11 Clique em Check Network Parameter. 3. Para os parmetros de autenticao siga os seguintes passos: 11 Preencha o campo Bind DN ou User com cn=admin,dc=<SUA_INSTITUICAO>,dc=br. 11 Em Bind password entre com a senha do usurio admin, senha: 1234. 11 Clique em Check Authentication. 4. Configure o DN da base: 11 Clique em Fetch Base DNS; 11 Clique em Finish; 11 Feche a aba Welcome; 11 Na tela LDAP Browser procure pelo usurio cujo uid=00123456.
Federao CAFe: Implantao do Provedor de Identidade

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

Metadiretrios e Export Import Directory (EID).

Motivao para uso do EID


Diferentes de pequenos diretrios, diretrios grandes no podem ser gerenciados manualmente. O desenvolvimento de um integrador a partir do zero tem um custo muito alto. Assim, uma soluo a integrao com sistemas existentes. Este terceiro captulo do curso apresentar conceitos gerais sobre metadiretrios, alm de demonstrar como construir metadiretrios com EID. Diretrios que possuem um baixo fluxo de pessoas ou poucas dezenas de cadastros podem ser facilmente gerenciados pela incluso e excluso manual de registros. Diretrios com muitos usurios e com comportamento mais dinmico demandam um esforo maior de manuteno, o que praticamente inviabiliza seu gerenciamento manual. Este o caso de diretrios acadmicos, onde entram e saem centenas (ou milhares) de pessoas todos os semestres. Entretanto, os processos que implicam na modificao do diretrio j existem e, em geral, alunos, aposentadoria de professor ou tcnico etc. Desta forma, possvel aproveitar essas informaes e integrar a manuteno do diretrio com esses processos. O desenvolvimento de extratores para o cenrio especfico de uma organizao pode ser muito alto, porm a ideia central sempre a mesma: consolidar os dados para a construo do diretrio. O objetivo do Export Import Directory (EID) facilitar a integrao de dados de diversos sistemas para construir um metadiretrio e, por fim, um ou mais diretrios.
Captulo 3 - Construindo metadiretrios
com EID

so registrados formalmente em algum sistema, como o caso de ingresso e formatura de

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.

Figura 3.1 Fluxo de informaes em um metadiretrio.

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.

Figura 3.2 Servios incorporados ao metadiretrio.

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.

Captulo 3 - Construindo metadiretrios


com EID

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.

Figura 3.3 Estrutura dos dados.

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.

Federao CAFe: Implantao do Provedor de Identidade

Figura 3.4 Definio de classes.

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.

Figura 3.5 Nova definio de classe.

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

Figura 3.6 Administrao de repositrios.

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.

Figura 3.7 Cadastro de um repositrio do tipo Banco de Dados Relacional.

Para cadastrar um novo repositrio, acione o comando Novo na tela de Administrao de 47

Captulo 3 - Construindo metadiretrios


com EID

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.

Federao CAFe: Implantao do Provedor de Identidade

Figura 3.8 Incluso de arquivo CSV.

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

Figura 3.9 Alterao de servidor LDAP.

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

Figura 3.10 Administrao de extraes.

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.

Federao CAFe: Implantao do Provedor de Identidade

50

Figura 3.11 Cadastro de ETC.

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

Figura 3.12 Leiaute de origem.

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.

Figura 3.13 Detalhes dos campos do leiaute de origem.

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).

Captulo 3 - Reviso de LDAP


e esquema brEduPerson

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.

Figura 3.14 Configuraes do leiaute de destino.

Os pontos fundamentais no leiaute de destino esto em Campo Fonte e Script.


Federao CAFe: Implantao do Provedor de Identidade

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.

Figura 3.15 Detalhes dos campos do leiaute de Destino.

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.

Figura 3.17 Tela de administrao de processos.

Captulo 3 - Reviso de LDAP


e esquema brEduPerson

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.

Figura 3.18 Incluso de 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.

Figura 3.19 Pesquisa de agendamento.

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

Figura 3.20 Incluso de agendamento.

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

Figura 3.21 Pesquisa de resultado 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.

Figura 3.22 Visualizao de resultado de processamento.

Captulo 3 - Reviso de LDAP


e esquema brEduPerson

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.

Federao CAFe: Implantao do Provedor de Identidade

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:

JAVA_OPTS=-XX:MaxPermSize=512M -Xmx512M -Duser.timezone=America/ Sao_Paulo -Duser.language=pt -Duser.country=BR -Djava.library. path=$JARO_WINKLER_DIR -Dfile.encoding=UTF-8


2. Os drivers para conexo com os bancos de dados se encontram em /opt /treinamento. Copie os drivers de banco para /usr/share/java/ com o comando a seguir:

cp /opt/treinamento/mysql-connector-java-5.1.16-bin.jar /usr/share/ java


3. necessrio ainda fazer a criao de alguns links simblicos para o conector. Para tanto, execute as linhas de comando a seguir:

ln -sf /usr/share/java/mysql-connector-java-5.1.16-bin.jar /usr/share/ tomcat6/lib/ ln -sf /usr/share/java/mysql-connector-java-5.1.16-bin.jar /var/lib/ tomcat6/lib/


4. Sabendo-se que a instalao padro do Tomcat via apt-get no possui o arquivo tomcat-dbcp.jar (necessrio para algumas aplicaes), deve-se baix-lo e coloc-lo na pasta lib do Tomcat. Para tanto, execute o comando:

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.

<tomcat-users> <role rolename=manager/> <user username=eid password=SENHA_EID roles=manager/> </tomcat-users>

61

6. Inicialize o Tomcat atravs do seguinte comando:

/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.

Configuraes de banco de dados no MySQL


1. necessrio fazer a criao das bases de dados que sero utilizadas pelo EID e EID2LDAP. As informaes so armazenadas em bases MySQL. Para criar as bases execute a linha de comando a seguir:

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

Instalando EID e EID2LDAP


1. Na pasta /opt/treinamento esto os arquivos WAR das verses recentes do EID e do EID2LDAP. Execute os comandos a seguir para criar os diretrios, e descompacte os arquivos WAR dentro deles. O EID se encontra disponvel tambm no Sourceforge: http://sourceforge.net/projects/eid/files/

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

2. Crie a varivel de ambiente JARO_WINKLER_DIR com o comando a seguir:

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:

cd /opt/eid/WEB-INF/classes/br/ufmg/lcc/eid/model/conciliator make compile


5. Copie os arquivos eid.xml e eid2ldap.xml para /etc/tomcat6/Catalina/localhost/ com os comandos abaixo:

cp /opt/treinamento/eid.xml /etc/tomcat6/Catalina/localhost cp /opt/treinamento/eid2ldap.xml /etc/tomcat6/Catalina/localhost


6. Altere o seguinte arquivo /etc/init.d/tomcat6 adicionando as seguintes linhas no incio do arquivo:

JARO_WINKLER_DIR=/opt/eid/lib export JARO_WINKLER_DIR


7. Atribua as respectivas permisses pasta do EID e reinicie o Tomcat atravs dos comandos abaixo:

chown -R tomcat6:tomcat6 /opt/eid/ /etc/init.d/tomcat6 restart


8. Acesse a aplicao atravs do browser: http://IP_VM:8080/eid. 11 Logue com usurio eid e a senha informada no arquivo tomcat-users.xml. 11 Acesse o menu Configurao/Repositrio de Dados e defina o usurio e a senha do repositrio Metadiretrio (usurio e senha: root ). 11 Em seguida teste a conexo com o banco de dados atravs de Testar conexo. Salve a configurao da senha com o boto Salvar (localizado no canto superior direito). 9. Acompanhe os logs em: 11 /var/log/tomcat6/catalina.{DATA_ATUAL}.log 11 /var/log/tomca6/localhost.{DATA_ATUAL}.log

Atividade 3.2 Configurao de um repositrio


dados). O banco se encontra no servidor. 1. Acesse o menu Configurao/Repositrio de Dados; 2. Acione o comando Novo para definir um novo repositrio; 3. Escolha o tipo do repositrio como Banco de Dados Relacional. 4. Fornea os campos necessrios: 4.1.Nome: Repositrio Acadmico.
Captulo 3 - Roteiro de Atividades 3

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.

Atividade 3.3 Definio de uma extrao


Crie uma extrao para retirar informaes da tabela Pessoas e alimentar a classe Identificao. 1. Acesse o menu Configurao/ETC; 2. Acione o comando Novo; 3. Na guia ETC, especifique: 3.1.Nome: extrao de pessoas do sistema acadmico. 3.2.Descrio: extrao de dados de pessoas a partir do sistema acadmico. 4. Na guia Leiaute de Origem: 4.1.Repositrio: Repositrio Acadmico. 4.2.SQL: select * from Pessoas. 4.3.Acione o comando Leiaute. 4.4.Selecione o campo Id como identificador nico (IU).
Federao CAFe: Implantao do Provedor de Identidade

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

Atividade 3.4 Definio de um processo e seu agendamento


Crie um processo que inclua a extrao definida anteriormente e o agende para ser execu tado de imediato, sem repeties. 1. Acesse o menu Configurao/Processo; 2. Acione o comando Novo; 3. Preencha os campos: 3.1.Nome: Processo de extrao Acadmico. 3.2.Descrio: Processo de extrao de dados do sistema acadmico. 3.3.Modo: selecione Interromper Processamento. 3.4.Nmero de tentativas : 1 3.5.Intervalo entre tentativas : 1 4. No painel Itens de processo, acione o boto Novo e selecione a ETC Extrao de pessoas do sistema acadmico. Clique em Selecionar : 22 Intervalo commit: 500 22 Nmero de erros: 0 5. Acione Salvar. 6. Acesse o menu Processamento/Agendamento. 7. Acione o comando Novo. Selecione: 7.1.Processo: Processo de extrao acadmico. 7.2.Tipo de repetio: No repetir. 7.3.Item de incio: Extrao de pessoas do sistema acadmico. 7.4.Finalizar no item: Extrao de pessoas do sistema acadmico. 7.5.Prxima execuo: marcar Processar agora. 8. Acione o comando Salvar. 9. Observe o resultado acessando o cone Resultado de processamento ou o menu Processamento/Resultado de processamento. 10. Depois de alguns minutos, acesse o menu EID/Gesto e pessoas para visualizar as pessoas importadas.

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.

Captulo 3 - Roteiro de Atividades 3

Atividade 3.5 Limpar o repositrio EID

65

4. Clique na aba SQL e cole o seguinte SQL:

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.

Atividade 3.6 Reagendar o processo de carga da classe Identificao


Altere o Processo de extrao Acadmico para ser executado novamente. 1. Acesse o menu Processamento/Agendamento; 2. Acione o comando Alterar para o agendamento do processo de extrao acadmico; 3. Prxima execuo: marcar Processar agora; 4. Acionar o comando Salvar ; 5. Observe o resultado acessando o menu Processamento/Resultados de processamento.
Federao CAFe: Implantao do Provedor de Identidade

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.

Extrao de arquivos texto


11 EID importa arquivos CSV (Comma-Separated Value). 11 Informaes complementares no mantidas em bancos de dados. Este captulo apresenta funcionalidades avanadas que podem ser utilizadas na configu rao de extraes, como extraes de arquivos texto, uso de parmetros globais, importao incremental e uso de scripts de converso. O EID capaz de importar dados de arquivos CSV, alm de bancos de dados relacionais. Arquivos CSV so arquivos separados por ponto-e-vrgula ou tabulao (o Excel exporta

arquivos neste formato). Em algumas situaes este recurso til, principalmente em casos onde a informao mantida em planilhas externas aos sistemas utilizados na organizao.

Captulo 4 - Criando extraes no EID

67

Figura 4.1 Repositrio.

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.

Extrao de arquivos texto


Leiaute de origem: 11 Arquivo de origem define o nome do arquivo. 11 Permite a seleo da codificao. 11 Configurao de separador decimal e separador de campos.
Federao CAFe: Implantao do Provedor de Identidade

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

Figura 4.2 Leiaute de origem Arquivo CSV.

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.

Captulo 4 - Criando extraes no EID

69

Extrao de diretrios LDAP

Figura 4.3 Leiaute de Origem.

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.

Federao CAFe: Implantao do Provedor de Identidade

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.

Figura 4.4 Leiaute de destino de dados.

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

Figura 4.5 Administrao de Parmetros Globais.

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).

Figura 4.6 Marcao de time stamp.

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

SELECT FROM WHERE

a.* aluno a, pessoas p a.idPessoa = p.id and

73

p.DATA_ATUALIZACAO_REGISTRO AND

>

#{ETL.Etc de pessoas.INITIAL} < #{ETL.Etc de pessoas.FINAL};

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}.

Script de converso Bean Shell


Federao CAFe: Implantao do Provedor de Identidade

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

Necessrio utilizar o mtodo execute().

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.

Script de converso Java Nativo


if (#{senha} != null){ result =#{senha}.substring(1, 4); }else{ result=null; }

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().

if (#{senha} != null) { }else{ } result=null; result =#{senha}.substring(1, 4);

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.

Captulo 4 - Criando extraes no EID

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.

Federao CAFe: Implantao do Provedor de Identidade

Figura 4.7 Algoritmo de deduplicao.

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:

188853 ERROR [Eid thread] br.ufmg.lcc.eid.controller. EidServletContextListener - Error processing conciliation

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.

Atividade 4.2 Definio de extrao para a classe Aluno


Configure uma extrao para a classe Aluno, extraindo dados das tabelas Discente e Curso. 1. Acesse o menu Configurao/ETC. 2. Acione o comando Novo. 3. Na guia ETC, especifique: 3.1.Nome: Extrao de alunos do sistema acadmico. 3.2.Descrio: Extrao de dados de alunos a partir do sistema acadmico. 4. Na guia Leiaute de Origem: 4.1.Repositrio: Repositrio Acadmico. SQL:

SELECT d.CodDiscente, d.CodCurso, d.CodPessoa,

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.

Atividade 4.3 Transformao do campo Sexo


Modifique a extrao de arquivo CSV da classe Identificao de forma que o campo de
Federao CAFe: Implantao do Provedor de Identidade

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

3.2.Crie um script para converter o campo Sexo com o cdigo:

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.

Atividade 4.4 Importao de login e senha


Crie uma extrao para carregar a classe Conta a partir do arquivo texto usuarios.txt. 1. Acesse o menu Configurao/ETC. 2. Acione o comando Novo. 3. Na guia ETC, especifique:
Captulo 4 - Roteiro de Atividades 4

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

5. Crie um script para extrair o campo Senha. Utilize o cdigo:

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.6 Cadastrar um repositrio de dados do tipo Diretrio LDAP


1. Acesse o menu Configurao/Repositrio de Dados. 2. Acione o comando Novo para definir um novo repositrio. 3. Escolha o tipo para o repositrio como Servidor LDAP. 4. Fornea os campos necessrios: 11 Nome: Nome para identificar facilmente o repositrio. 11 Descrio: Descrio textual do repositrio. 11 Host : IP da sua VM. 11 Porta: 389 11 Login: cn=admin,dc=<INSTITUICAO>, dc=br 11 Senha: 1234 11 Verso Protocolo: 3 5. Acione o comando Testar Repositrio: 11 Em caso de sucesso no teste, acione o comando Salvar. 11 Em caso de insucesso, observe a mensagem de erro e providencie a correo.

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

Federao CAFe: Implantao do Provedor de Identidade

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

Gesto manual de pessoas e gesto de grupos.

Gesto manual de pessoas


Forma de manipulao dos registros via GUID: 11 Conciliao manual. 11 Incluso, alterao e remoo de pessoas. Este captulo apresentar as funcionalidades da gesto manual de pessoas e grupos.

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.

Captulo 5 - Gesto de pessoas e grupos no EID

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.

Figura 5.1 Conciliao de registros.

O algoritmo de conciliao gera um novo registro equivalente a cada conjunto de registros


Federao CAFe: Implantao do Provedor de Identidade

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

Figura 5.2 Interface de conciliao.

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.

Captulo 5 - Gesto de pessoas e grupos no EID

Figura 5.3 Nova conciliao.

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.

Figura 5.4 Gesto de pessoas.

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

Figura 5.5 Atributos visveis.

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.

Insero de novas pessoas


11 Forma de insero de pessoas no existentes nas bases corporativas, que passam a compor o metadiretrio. 11 O EID possibilita a insero de pessoas externas s bases corporativas. 11 Uma vez includas, estas passam a fazer parte do metadiretrio, participando tambm das conciliaes.

Captulo 5 - Gesto de pessoas e grupos no EID

93

Figura 5.6 Gesto de pessoas.

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.

Alterao de dados via interface


11 Correo de dados. 11 Atribuio de instncias de classes.

Federao CAFe: Implantao do Provedor de Identidade

94

Figura 5.7 Tela de gesto de pessoas.

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.

Captulo 5 - Gesto de pessoas e grupos no EID

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.

Figura 5.8 Reunificao.

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.

Figura 5.9 Desativao de pessoas.


Federao CAFe: Implantao do Provedor de Identidade

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.

Insero e atualizao de grupos


Incluso, alterao e remoo so feitos da mesma forma como na gesto de pessoas, assim como as operaes com grupos. A interface pode ser acessada pelo menu EID/Gesto de Grupos.

Captulo 5 - Gesto de pessoas e grupos no EID

97

Federao CAFe: Implantao do Provedor de Identidade

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.

Atividade 5.2 Registros pendentes para conciliao


Concilie ou exclua da conciliao os registros que o EID no teve certeza que eram da mesma pessoa: 1. Acesse o menu EID/Conciliao. 2. exibida uma lista com todos os registros que ficaram pendentes para conciliao. 3. Nos Parmetros visveis marque a classe Identificao e selecione: nomeCompleto, sexo, nomePai, nomeMe. 4. Pesquise por usurios duplicados e faa a conciliao clicando no cone Conciliar. 5. Pesquise por usurios que no so os mesmos, mas esto agrupados para conciliar e exclua da conciliao clicando no checkbox abaixo da lixeira e acionando o boto Excluir.

Captulo 5 - Roteiro de Atividades 5

99

Atividade 5.3 Insero de uma nova pessoa


Faa a insero manual de uma nova pessoa via interface. 1. Acesse o menu EID/Gesto de pessoas. 2. Acione o comando Novo. 3. Selecione as classes Identificao e Conta. 4. Preencha os dados da aba Identificao e tambm da aba Conta. Identificao: 11 Nome completo: Maria Silva Souza. 11 CPF: 12345678900. 11 Data de nascimento: 23/01/1985. Conta: 11 login: msilva 11 senha: esr 11 Acione o comando Salvar.

Atividade 5.4 Definio de um grupo


Faa a definio de um grupo no EID. 1. Acesse o menu EID/Gesto de grupos. 2. Acione o comando Novo. 3. Selecione a classe Grupo. 4. Informe o nome Alunos de Arquitetura. 5. Como critrio, coloque a seguinte consulta:

select a.eidObject from Aluno a where a.nomeCurso =ARQUITETURA


6. Acione o comando Salvar.

100

Federao CAFe: Implantao do Provedor de Identidade

6
Alimentao de diretrios com EID2LDAP
objetivos
EID2LDAP, arquitetura XML do EID e XSLT.

conceitos

Mapeamento de dados do metadiretrio para diretrio LDAP e escalonamento de atualizaes.

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

LDIF Servidores LDAP

Figura 6.1 Arquitetura do EID2LDAP.

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=person>.... </eid-object>


11 Grupos:

<eid-object type=group>...</eid-object>
11 Membros do grupo:

<member> <eid-object>...</eid-object>....</member>
11 Pessoas e grupos desativados:

<eid-object type=person removed=true>

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

cn: <xsl:value-of select=@guid /> sn: <xsl:value-of select=@guid /> </xsl:template>


O XSLT utilizado para formatar o LDIF que ser enviado para o LDAP. De acordo com as informaes contidas nos dados provenientes do EID, o XSLT especifica o mapeamento de cada um dos atributos para os atributos LDAP, bem como a operao a ser feita (Add/ Modify/Delete). Excluso de registros (registros marcados com removed=true):

<xsl:template match=/> <xsl:apply-templates select=eid-object[@type=person and @removed=true] mode=removed />

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

Federao CAFe: Implantao do Provedor de Identidade

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 Servidor LDAP

Agendamento

Resultado do agendamento

Agente gerenciador de 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.

Figura 6.5 Gerenciador de Agendamentos.

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

11 Menu: Configurao/Servidor LDAP.

109

Figura 6.6 Administrao de LDAP.

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.

Cadastramento dos servidores

Federao CAFe: Implantao do Provedor de Identidade

Figura 6.7 Cadastro do servidor LDAP.

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

Captulo 6 - Alimentao de diretrios com EID2LDAP

Figura 6.8 Administrao de Arquivos XSLT.

Cadastramento do XSLT

Figura 6.9 Tela de cadastro de 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.

Federao CAFe: Implantao do Provedor de Identidade

Figura 6.10 Administrao de agendamentos.

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.

Figura 6.11 Interface para cadastro de um agendamento.

A tela da Figura 6.11 apresenta a interface para cadastro de um agendamento, exibida


Captulo 6 - Alimentao de diretrios com EID2LDAP

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.

Figura 6.12 Tela de resultado do processamento.

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

Federao CAFe: Implantao do Provedor de Identidade

Figura 6.13 Tela de visualizao de resultado de agendamentos.

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

Federao CAFe: Implantao do Provedor de Identidade

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.

Atividade 6.2 Configurao do servidor LDAP


Configure um servidor LDAP local: 1. Acesse o menu Configurao/Servidor LDAP. 2. Acione o comando Alterar do LDAP local. 3. Altere os dados de conexo para seu servidor LDAP local deixando-os como abaixo: 11 Nome: LDAP local 11 Descrio: Servidor LDAP local 11 Endereo Servidor : IP da sua VM 11 Nmero Porta: 389 11 Login: cn=admin,dc=<instituio>,dc=br (ex. cn=admin,dc=ufmg,dc=br) 11 Senha: 1234 11 Verso Protocolo: 3 11 Nmero de srie: -1 4. Acione o comando Salvar.

Atividade 6.3 Configurao de uma transformao


Configure uma transformao e associe-a ao servidor LDAP local. Para tanto: 1. Acione o menu Configurao/Transformao. 2. Acione o comando Alterar para modificar a transformao brEduPerson j cadastrada. 3. Informe um nome para a transformao. 4. No campo Contedo do XSLT, no arquivo exibido substitua ${RAIZ_BASE_LDAP} pelo DN da raiz do diretrio (dc=<instituio>,dc=br).
Captulo 6 - Roteiro de Atividades 6

5. No detalhe Servidor LDAP, o servidor LDAP configurado na Atividade 6.2 deve estar selecionado. 6. Acione o comando Salvar.

117

Atividade 6.4 Executar teste padro: leitura no diretrio


Execute o teste padro para leitura no metadiretrio: 1. Verifique a carga da classe Conta. Utilizando um navegador web, acesse a URL a seguir, trocando <servidor> pelo endereo do servidor EID:

http://<servidor>:8080/eid/services/EidService/ getGuids?condition=select%20c.eidObject.stringID%20 from%20Conta%20c%20where%20c.eidObject.unifiedDomain%20 %3D%20true%20and%20c.login%20!%3D%20null%20and%20c. eidObject.serialNumber%20%3E%20(select%20max(e. serialNumber)- 1000%20from%20EidObject%20e%20where%20e. unifiedDomain%20%3D%20true)


2. Observe o resultado de busca e se a pgina exibida assemelha-se ao trecho:

<ns:getGuidsResponse> <ns:return>CIVZAGRA-CXJFBAAA</ns:return> <ns:return>KHWRXWEA-CXJFBAAA</ns:return> <ns:return>MEMJJEJA-DXJFBAAA</ns:return> <ns:return>OYFQQYMA-CXJFBAAA</ns:return> <ns:return>QACXOEDA-DXJFBAAA</ns:return> <ns:return>QGEDIIFA-BXJFBAAA</ns:return> </ns:getGuidsResponse>

Atividade 6.5 Definio de um agendamento


Agende a atualizao do diretrio LDAP. 1. Acesse o menu Agendamento/Agendamento Servidor LDAP. 2. Acione o comando Novo e configure os parmetros do agendamento, de forma que o LDAP seja atualizado. 2.1.Informe uma Descrio para o agendamento. 2.2.Informe o Tipo de Repetio como No Repetir. 2.3.Deixe o campo Intervalo em minutos em branco. 2.4.No campo Prxima Execuo, informe data e hora atual, no formato: dd/mm/aaaa hh:mm. 2.5.No campo Mximo de erros informe 0. 2.6.No campo Nome do Servidor LDAP informe o LDAP cadastrado.

118

Federao CAFe: Implantao do Provedor de Identidade

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

Atividade 6.6 Desativao e alterao de registros no metadiretrio


Fazendo alteraes no metadiretrio serem refletidas no LDAP. 1. Acesse o EID: http://IP_VM:8080/eid, menu EID/Gesto de Pessoas. 2. Preencha os parmetros de pesquisa com: 2.1.Classe: Conta 2.2.Classe de Atributos : login 2.3.Valor do atributo: usuario1 2.4.Clique em Pesquisar. 3. Selecione o usurio para ser desativado clicando no check box abaixo do cone de lixeira e no boto Desativar na barra de menus. 4. Preencha os parmetros de pesquisa novamente com: 4.1.Classe: Conta 4.2.Classe de Atributos : login 4.3.Valor do atributo: usuario2 5. Clique no cone Atualizar do registro pesquisado e v para a aba Identificao. Altere a data de nascimento para 01/01/1990. 6. Clique em Salvar. 7. Acesse o EID2LDAP: http://IP_SERVIDOR:8080/eid2ldap, menu Agendamento/Agendamento Servidor LDAP. 8. Clique no boto Alterar e em seguida no boto Salvar forando com que a exportao seja executada novamente. 9. Aguarde alguns segundos at a importao ser realizada com sucesso; para verificar acesse o menu Agendamento/Resultado Agendamento.
Captulo 6 - Roteiro de Atividades 6

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

Federao CAFe: Implantao do Provedor de Identidade

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.

Por que Shibboleth?


Desenvolvido para tratar os seguintes desafios: 11 Mltiplas senhas requeridas para mltiplas aplicaes. 11 Escalabilidade no gerenciamento de mltiplas aplicaes. 11 Problemas de segurana associados ao acesso de servios de terceiros. 11 Privacidade. 11 Interoperabilidade dentro e entre organizaes.
Federao CAFe: Implantao do Provedor de Identidade

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

Provedor de Identidade (IdP)


Identidade: 11 Autenticao. 11 Web SSO. 11 Atributos.

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

Attribute Authority Shibboleth IdP Tomcat Apache


11 Shibboleth Identity Provider: 22 Handle Service. 22 Attribute Authority. 11 CAS: 22 Web SSO. 11 LDAP: 22 Autenticao. 22 Atributos. A instalao padro de um provedor de identidade da federao CAFe composta por trs
Federao CAFe: Implantao do Provedor de Identidade

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

Provedor de Servio (SP)


Servio: 11 Recurso. 11 Autorizao. O provedor de servio responsvel por fazer a autorizao do usurio e disponibilizar o acesso ao recurso, atravs da autenticao e dos atributos disponibilizados pelo provedor de identidade. A autorizao e o acesso ao recurso so realizados da seguinte forma: o usurio solicita o acesso ao recurso; o provedor de servio solicita que ele se autentique no provedor de identidade da sua instituio; o provedor de identidade envia um handle

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

Figura 7.2 Arquitetura de um provedor de servios

Shibboleth Service Provider: 11 mod_shib (mdulo do Apache). 11 shibd (daemon).

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

CAS Handle Service

Recurso

Apache

mod_shib

LDAP

Attribute Authority Shibboleth IdP Tomcat Apache


*Essa demonstrao foi baseada no expert Demo da SWITCHaai
Figura 7.3 Solicitao de acesso ao recurso e redirecionamento do usurio.

shibd Shibboleth SP
BD
Captulo 7 - Plataforma Shibboleth

1. O usurio inicia o browser e acessa a URL referente ao recurso: } https://eaa1.dri.cefetmg.br/secure.

eGET /secure/ HTTP/1.1 Host: eaa1.dri.cefetmg.br

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 302 Found Location: http://shibboleth.ufrgs.br/chimarrao/WAYF\ ?shire=https://eaa1.dri.cefetmg.br/Shibboleth.sso\ &target=https://eaa1.dri.cefetmg.br/secure/\ &providerId=https://eaa1.dri.cefetmg.br/shib-sp

GET /chimarrao/WAYF ?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: shibboleth.ufrgs.br\


3. O WAYF responde ao browser com uma pgina para o usurio selecionar a sua instituio de origem.

HTTP/1.x 200 OK Set-Cookie: JSESSIONID=ABA262C37103B02AB65D16B1D0EB3359; Path=/ chimarrao; Secure Content-Type: text/html;charset=ISO-8859-1 [... HTML ...]

128

Federao CAFe: Implantao do Provedor de Identidade

Fase 2

Figura 7.4 Seleo da instituio de origem.

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.

Figura 7.5 Seleo da instituio de origem no Discovery Service ou WAYF

129

Captulo 7 - Plataforma Shibboleth

Fase 3
HTTPS Request/Response HTTPS Redirect HTTPS Session Conexo interna Conexo virtual Apache WAYF

Metadata

4
x

6
7

CAS Handle Service

Recurso

Apache

mod_shib

LDAP

Federao CAFe: Implantao do Provedor de Identidade

Attribute Authority Shibboleth IdP Tomcat Apache

shibd Shibboleth SP
BD

4. O usurio envia a seleo da sua instituio de origem a partir de uma requisio HTTP.

GET /chimarrao/WAYF\ ?shire=https://eaa1.dri.cefetmg.br/Shibboleth.sso\ &target=https://eaa1.dri.cefetmg.br/secure/\ &action=selection\

Figura 7.6 Autenticao do usurio na sua instituio de origem.

130

&origin=urn:mace:shibboleth:chimarrao:rnp.br\ &cache=TRUE HTTP/1.1 Host: shibboleth.ufrgs.br Cookie: JSESSIONID=ABA262C37103B02AB65D16B1D0EB3359


5. Aps o envio da requisio do usurio, o WAYF responde com um redirecionamento HTTP para o provedor de identidade do usurio. Os cookies so habilitados para lembrar a escolha do usurio para o checkbox Lembrar a seleo nesta sesso do navegador, ou seja, o cookie estar disponvel somente durante a sesso atual do browser. O browser do usurio, ento, envia uma requisio HTTP para o Shibboleth Handle Service da sua instituio de origem.

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

GET /shibboleth-idp/SSO\ ?target=https://eaa1.dri.cefetmg.br/secure/\ &shire=https://eaa1.dri.cefetmg.br/Shibboleth.sso HTTP/1.1 Host: idp-demo.rnp.br


6. Como o usurio ainda no est autenticado, o servidor web, protegendo o acesso ao Handle Service, redireciona o browser para o sistema de autenticao single sign-on (CAS).

HTTP/1.x 200 OK Set-Cookie: JSESSIONID=C5766808E41D3C64BFBD3839D6701730; Path=/shibboleth-idp; Secure [...] Location: https://idp-demo.rnp.br/cas/login


Captulo 7 - Plataforma Shibboleth

?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

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.

HTTP/1.x 200 OK Content-Type: text/html; charset=iso-8859-1 [... HTML ...]

132

Federao CAFe: Implantao do Provedor de Identidade

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

Attribute Authority Shibboleth IdP Tomcat Apache

shibd Shibboleth SP
BD
Captulo 7 - Plataforma Shibboleth

Figura 7.7 Acesso ao recurso.

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.

/cas/login ?service=https://idp-demo.rnp.br/shibboleth-idp/SSO &shire=https://eaa1.dri.cefetmg.br/Shibboleth.sso

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

GET /shibboleth-idp/SSO\ ?target=https://eaa1.dri.cefetmg.br/secure/\ &shire=https://eaa1.dri.cefetmg.br/Shibboleth.sso


Federao CAFe: Implantao do Provedor de Identidade

&ticket=ST-17-lGFPJrLWJva134whvhxZ HTTP/1.1 Host: idp-demo.rnp.br Cookie: JSESSIONID=C5766808E41D3C64BFBD3839D6701730; _saml_ idp=dXJuOm1hY2U6c3d

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:

<Directory /var/www/secure> AuthType shibboleth ShibRequireSession On require valid-user </Directory>

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

POST /Shibboleth.sso HTTP/1.1 Host: eaa1.dri.cefetmg.br Content-Type: application/x-www-form-urlencoded Content-Length: 16859

135

TARGET=https://eaa1.dri.cefetmg.br/secure/\ &SAMLResponse=PFJlc3BvbnNlIHht\ [...] 0Pjwv%0D%0AQXNzZXJ0aW9uPjwvUm VzcG9uc2U%2B

Fase 5
HTTPS Request/Response HTTPS Redirect HTTPS Session Conexo interna Conexo virtual Apache Metadata WAYF

CAS Handle Service

13

Recurso
13

Apache

Federao CAFe: Implantao do Provedor de Identidade

mod_shib
11 12

13

LDAP

11

11

Attribute Authority Shibboleth IdP Tomcat Apache

Handle
12

11

Atributos

shibd Shibboleth SP
BD

11

Figura 7.8 Solicitao de atributos.

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:statuscode value=samlp:Success />

</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

notonorafter=2004-05-25T23:16:10.939Z> <saml:audiencerestrictioncondition> <saml:audience> https://eaa1.dri.cefetmg.br/secure/ </saml:audience> </saml:audiencerestrictioncondition>

</saml:conditions> <saml:attributestatement> <saml:subject> <saml:nameidentifier format=urn:mace:shibboleth:1.0:nameIdentifier

namequalifier=https://idp-demo.rnp.br/shibboleth> 3f7b3dcf-1674-4ecd-92c8-1544f346baf8 </saml:nameidentifier>

</saml:subject> <saml:attribute attributename=urn:mace:dir:attribute-def:cn attributenamespace=urn:mace:shibboleth:1.0:attributeNamespace:u ri> Edsger </saml:attributevalue> <saml:attributevalue xsi:type=xsd:anyURI>

</saml:attribute> <saml:attribute attributename=urn:mace:dir:attribute-def:sn attributenamespace=urn:mace:shibboleth:1.0:attributeNamespace:u ri>


Federao CAFe: Implantao do Provedor de Identidade

<saml:attributevalue xsi:type=xsd:anyURI> Dijkstra </saml:attributevalue>

</saml:attribute> [...] </saml:attributestatement> </saml:assertion> </samlp:response>

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

Captulo 7 - Plataforma Shibboleth

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

Attribute Authority Shibboleth IdP Tomcat Apache

Handle
12

11

Atributos

shibd Shibboleth SP
BD

11

Federao CAFe: Implantao do Provedor de Identidade

Figura 7.9 Acesso ao recurso

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:

apt-get update apt-get install apache2 libapache2-mod-jk

Configurar Java, Tomcat e Apache


1. As seguintes configuraes devem ser feitas para que o Tomcat execute o Shibboleth-IDP: Edite /etc/java-6-openjdk/security/java.security e adicione as linhas 10 e 11 listadas abaixo:

security.provider.8=sun.security.smartcardio.SunPCSC security.provider.9=sun.security.pkcs11.SunPKCS11 ${java.home}/lib/ security/nss.cfg .. security.provider.10=edu.internet2.middleware.shibboleth. DelegateToApplicationProvider security.provider.11=org.bouncycastle.jce.provider. BouncyCastleProvider


2. Edite /etc/tomcat6/server.xml para definir que receber conexes HTTPS na porta 8443; para isso, descomente a seguinte linha (aproximadamente a linha 94 do arquivo original):

<Connector port=8009 protocol=AJP/1.3 redirectPort=8443 />


Logo abaixo da linha descomentada, adicione o seguinte conector (o arquivo citado em keystoreFile e truststoreFile ser criado adiante):

<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

keystorePass=changeit truststoreFile=/opt/shibboleth-idp/credentials/idp.p12 truststorePass=changeit truststoreAlgorithm=DelegateToApplication/>


3. Copie o arquivo para auto-deploy do Shibboleth IdP para o Tomcat. O instalador do Shibboleth-IDP deixar o arquivo idp.war disponvel no caminho descrito em docBase, e o Tomcat o instalar durante a sua inicializao.

cp /opt/treinamento/idp/idp.xml
Contedo do arquivo idp.xml:

/etc/tomcat6/Catalina/localhost

<Context docBase=/opt/shibboleth-idp/war/idp.war privileged=true antiResourceLocking=false antiJARLocking=false unpackWAR=false swallowOutput=true />

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.

<VirtualHost SUBSTITUIR_IP:443> ServerName SUBSTITUIR_IP

ServerSignature Off SSLEngine SSLCertificateKeyFile


Federao CAFe: Implantao do Provedor de Identidade

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

JkMount /idp/* ajp13_worker

CustomLog /var/log/apache2/access-idp-443.log combined LogLevel warn ErrorLog /var/log/apache2/error-idp-443.log </VirtualHost>


5. Aps alterar, copie o arquivo para o Apache:

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/

JkShmFile JkLogFile JkLogLevel

/var/run/apache2/jk-runtime-status /var/log/apache2/mod_jk.log info

7. Comandos para finalizar a configurao do Apache:

mkdir /var/www/vazio/ a2dissite default a2ensite idp-SSO a2enmod ssl a2enmod jk


8. Reinicie o Apache e o Tomcat e veja se os servios so iniciados com sucesso. Caso contrrio, verifique os erros indicados.

/etc/init.d/apache2 restart /etc/init.d/tomcat6 restart

Atividade 7.2 Baixar e instalar o Shibboleth-IDP e bibliotecas Java


O Shibboleth-IdP est disponvel no site da internet2: http://shibboleth.net/downloads/ identity-provider/2.4.0/shibboleth-identityprovider-2.4.0-bin.zip. Para o curso j baixamos os arquivos necessrios na pasta /opt/treinamento/idp. 1. Substitua o IP da sua VM no lugar de SUBSTITUIR_IP, copie a sequncia de comandos abaixo e cole no terminal:
Captulo 7 - Roteiro de Atividades 7

export JAVA_HOME=/usr/lib/jvm/java-6-openjdk/ cd /root/

143

cp /opt/treinamento/idp/tomcat6-dta-ssl-1.0.0.jar tomcat6/lib

/usr/share/

cp /opt/treinamento/idp/bcprov-jdk16-144.jar /usr/lib/jvm/java-6openjdk/jre/lib/ cp /opt/treinamento/idp/shibboleth-identityprovider-2.4.0-bin.zip /root

unzip shibboleth-identityprovider-2.4.0-bin.zip cd shibboleth-identityprovider-2.4.0/ cp -r endorsed /usr/share/tomcat6/

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

./install.sh chown tomcat6:tomcat6 /opt/shibboleth-idp/logs/ chown tomcat6:tomcat6 /opt/shibboleth-idp/metadata/

Atividade 7.3 Configurao do Shibboleth IdP


1. Edite o arquivo /opt/shibboleth-idp/conf/handler.xml, comente a seo referente
Federao CAFe: Implantao do Provedor de Identidade

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> -->

<!--

Username/password login handler -->

144

<LoginHandler xsi:type=UsernamePassword jaasConfigurationLocation=file:///opt/shibboleth-idp/conf/ login.config> <AuthenticationMethod>urn:oasis:names:tc:SAML:2.0:ac:class es:PasswordProtectedTransport</AuthenticationMethod> </LoginHandler>


2. Edite /opt/shibboleth-idp/conf/relying-party.xml para substituir o bloco correspondente tag MetadataProvider id=URLMD pelo bloco abaixo:

<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>

<metadata:RetainedRole>samlmd:SPSSODescriptor</etadata:RetainedRole> </metadata:MetadataFilter> </metadata:MetadataFilter> </metadata:MetadataProvider>


3. Copie o arquivo de configurao attribute-filter.xml e o metadata do SP:

cp /opt/treinamento/idp/attribute-filter.xml /opt/shibboleth-idp/conf cd /opt/shibboleth-idp/metadata/ wget -no-check-certificate https://sp.curso.rnp/Shibboleth.sso/Metadata

cp Metadata sp-metadata.xml chmod 777 sp-metadata.xml


4. Copie o seguinte arquivo com o comando:
Captulo 7 - Roteiro de Atividades 7

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

11 SUBSTITUIR_BASE_DN ramo da rvore que contm os usurios:

11 SUBSTITUIR_USUARIO_LEITOR_SHIB usurio que tem direito de leitura na base LDAP:

ou=people,dc=SUBSTITUIR _ INSTITUICAO,dc=br

11 SUBSTITUIR_SENHA_LEITOR_SHIB senha do usurio de leitura: 00123456

cn=leitor-shib, 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; };

Atividade 7.4 Certificados SSL


1. Antes de gerar as chaves criptogrficas e os certificados SSL preciso preparar a con figurao do OpenSSL. O comando do bloco abaixo cria esse arquivo. Substitua o IP na primeira linha, e depois copie e cole todo o bloco no terminal.

HOSTNAME_FQDN=SUBSTITUIR_IP cat >/opt/shibboleth-idp/credentials/openssl.cnf <<-EOF


Federao CAFe: Implantao do Provedor de Identidade

[ 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

= serverAuth, nsSGC, msSGC

= OpenSSL Certificate for SSL Web Server

extendedKeyUsage [ v3_ca ]

= serverAuth, nsSGC, msSGC

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.

<KeyDescriptor> <ds:KeyInfo> <ds:X509Data> <ds:X509Certificate> INSIRA_AQUI_O_CONTEUDO_DO_ARQUIVO_DO_CERTIFICADO </ds:X509Certificate> </ds:X509Data> </ds:KeyInfo> </KeyDescriptor>


5. Envie para o instrutor o arquivo de metadata que est localizado em:

opt/shibboleth-idp/metadata/idp-metadata.xml substituindo apenas o final do seu IP no comando abaixo.


Quando solicitado, informe a senha sysadmin:

scp /opt/shibboleth-idp/metadata/idp-metadata.xml sysadmin@sp.curso. rnp:/home/sysadmin/SUBSTITUIR_FINAL_IP.xml


6. Reinicie o Tomcat e o Apache para que as configuraes sejam recarregadas:

/etc/init.d/apache2 restart /etc/init.d/tomcat6 restart


7. Acesse o seguinte endereo para verificar se o IdP est no ar: http://<IP_da_mquina_virtual>:8080/idp/profile/Status. Verifique se uma pgina em branco com a palavra OK exibida.
Captulo 7 - Roteiro de Atividades 7

149

150

Federao CAFe: Implantao do Provedor de Identidade

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

Provedor de identidade, plataforma Shibboleth.

Principais pontos de configurao


Neste captulo apresentaremos os principais pontos de configurao de um provedor de identidade na plataforma Shibboleth.

Provedor de identidade Shibboleth IdP


resolver.xml arp.xml idp.xml Handle Server (HS) Web browser Attribute Authority (AA) Certicados SSL Shibboleth SP
Captulo 8 - Provedor de identidade na plataforma Shibboleth

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.

Configurao do Shibboleth IdP


11 Identificao e configurao bsica do provedor: 22 /opt/shibboleth-idp/conf/relying-party.xml
Federao CAFe: Implantao do Provedor de Identidade

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

Captulo 8 - Provedor de identidade na plataforma Shibboleth

154

Federao CAFe: Implantao do Provedor de Identidade

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:

cd /opt/shibboleth-idp/bin ./aacli.sh -configDir=/opt/shibboleth-idp/conf --principal=00123456


Depois de alguns segundos ser retornado um trecho de mensagem SAML com os atributos requeridos, que deve ser semelhante ao seguinte:

<?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

Federao CAFe: Implantao do Provedor de Identidade

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

Provedor de identidade, base de dados relacionais.

Roteiro de implantao de um provedor de identidade


Metodologia adotada: 11 Dividir a tarefa de implantao do provedor de identidade em atividades ou etapas distintas. 11 Construir scripts para auxiliar na execuo das atividades definidas. 11 Elaborar testes intermedirios ao final de cada atividade/etapa.

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

Captulo 9 - Implantao de um provedor de identidade a partir de bases de dados relacionais

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

Federao CAFe: Implantao do Provedor de Identidade

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

Captulo 9 - Roteiro de Atividades 9

162

Federao CAFe: Implantao do Provedor de Identidade

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

Configurao do Shibboleth-IdP, anlise de um schema LDAP e mapeamento de atributos

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.

Origem dos dados


11 Base LDAP. 11 Banco de dados relacional. 11 Arquivos de texto. 11 Conector personalizado (utilizando Java).

163

Captulo 10 - Implantao de um provedor de identidade a partir de um diretrio existente

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.

Atributos recomendados pela federao


Conjunto mnimo de atributos recomendados pela federao CAFe para identificar um usurio: 11 eduPersonPrincipalName 11 mail 11 cn 11 sn 11 brEduAffiliation 11 brEntranceDate 11 brExitDate Atributos recomendados pela federao CAFe: 11 eduPersonPrincipalName: identificao nica do usurio no escopo da instituio (cdigo de usurio@dominio_da_instituio). 11 mail: endereo de e-mail.
Federao CAFe: Implantao do Provedor de Identidade

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.

Atributos do esquema original


Os atributos presentes no esquema UFRGS sero mapeados para os atributos recomendados pela federao CAFe.

uid :00123456 cn sn :JOAO DA SILVA :JOAO DA SILVA

ufrgsTipoVinculo :01: aluno-graduacao ufrgsDataAfastamento:01: ufrgsDataIngresso :01: 01/03/2002

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

ufrgsTipoVinculo: 03: Aluno de mestrado academico userPassword:: e1NTSEF9SGM2VFlwaW

Definio dos mapeamentos


11 Renomear atributo: 22 uid => brEduAffiliationType 11 Alterar o valor de um atributo: 22 uid + @ufrgs.br => mail 11 Modificar o valor de sequncia de atributos: 22 atrib=01: aluno, atrib=02: bolsista => aluno;bolsista

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.

Conector Banco de dados


Define uma conexo para extrair atributos de um banco de dados relacional.

<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

Conector LDAP (AD, DS389, OpenLDAP)


Define uma conexo com uma base LDAP. O exemplo seguinte para diretrio AD:

<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

Alterar valor de atributo


A alterao de valores efetuada atravs de cdigo Java inserido na definio de um atributo.

<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

a implementao de um conector do LDAP com o Java. possvel buscar qualquer atributo

169

170

Federao CAFe: Implantao do Provedor de Identidade

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

Atividade 10.2 Alterando o valor de um atributo


Defina um mapeamento para o atributo uid disponvel no esquema abaixo, de modo a remover os zeros esquerda do nmero:

dn: uid=00123456,ou=People,dc=ufrgs,dc=br uid: 00123456 cn: JOAO sn: DA SILVA rfc822MailBox: 00123456@ufrgs.br

Atividade 10.3 Mltiplos atributos


Defina um mapeamento para o novo atributo displayName concatenando os valores de cn e sn. Retorne dois resultados diferentes, nas formas cn sn e sn, cn.

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

Federao CAFe: Implantao do Provedor de Identidade

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

Federao CAFe: Implantao do Provedor de Identidade

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).

LIVRO DE APOIO AO CURSO

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