Disponibilização do Serviço de Diretório (LDAP) para autenticação de usuários da comunidade UNICAMP Serviço de Diretório (LDAP) O que é Serviço de Diretório ? Um serviço de diretório é um software que armazena e organiza informações de um grupo de usuários e que permite aos administradores gerenciar o acesso destes a sistemas e recursos computacionais. Referência: http://www.4linux.com.br/que-ldap-que-sao-servicos-diretorios.html Serviço de Diretório (LDAP) O que é LDAP ? ( LDAP - Lightweight Directory Access Protocol ) É um protocolo de aplicação utilizado para acesso e manutenção de um diretório de informações em uma rede IP O protocolo é definido pela RFC 2251. Serviço de Diretório (LDAP) Motivação ➲ ➲ ➲ ➲ os usuários memorizavam vários usernames e senhas troca de senhas era uma atividade complexa grande variedade de mecanismos de controle de acesso diferentes sistemas de gerenciamento de controle de acesso Serviço de Diretório (LDAP) Serviço de Diretório (LDAP) Abrangência O Serviço de Diretório provê autenticação centralizada para aplicativos conectados a rede da Universidade, demonstrando ser uma solução estratégica para um ambiente complexo e diversificado. Serviço de Diretório (LDAP) Benefícios Alcançados ➲ Autenticação para: – softwares de apoio ao ensino – redes sem fio (corporativas, departamentais e Eduroam) – serviços de internet e intranets – alguns sistemas de informação ➲ Infraestrutura para o ambiente de e-mail de alunos e CCUEC Serviço de Diretório (LDAP) Aplicativos conectados ao DS Exemplos: OPENMEETINGS WEBCALENDAR MOODLE WIRELESS Programas (Java, PHP, etc) SERVIDOR LINUX Serviço de Diretório (LDAP) Exemplo de programa em PHP <?php // using ldap bind $ldaprdn = 'uid=usuario,ou=people,dc=unicamp,dc=br'; $ldappass = 'senha_do_usuario'; // associated password // ldap rdn // connect to ldap server $ldapconn = ldap_connect("ldaps://ldap1.unicamp.br ldaps://ldap2.unicamp.br") or die("Could not connect to LDAP server."); if ($ldapconn) { // binding to ldap server $ldapbind = ldap_bind($ldapconn, $ldaprdn, $ldappass); // verify binding if ($ldapbind) { echo "LDAP bind successful..."; } else { echo "LDAP bind failed..."; } } ?> Serviço de Diretório (LDAP) Exemplo de programa em JAVA /** * Obtém órgãos do usuário do Diretório Ldap dado o uid do mesmo. * @param conLdap Connection * @param uid para a consulta ao Ldap * @return java.util.Vector */ public void mtObtemOrgaosLdapDadoUidBD(LDAPConnection conLdap, String uid, java.util.Vector vetorOrgao) throws Exception { List siglas = new ArrayList(); List codigosLotacao = new ArrayList(); Search search = new Search(); LDAPEntry ldapEntry = search.forUser(conLdap, "uid", uid); // Get the attributes of the entry LDAPAttributeSet attributesSet = ldapEntry.getAttributeSet(); Iterator enumAttrs = attributesSet.iterator(); // Loop on attributes while (enumAttrs.hasNext()) { LDAPAttribute attribute = (LDAPAttribute) enumAttrs.next(); // get attribute name String key = attribute.getName(); if(key.equals("ou") || key.equals("departmentNumber")) { // get attribute value Enumeration enumVals = attribute.getStringValues(); while (enumVals.hasMoreElements()) { String value = (String) enumVals.nextElement(); if(key.equals("ou")) { siglas.add(value); } if(key.equals("departmentNumber")) { codigosLotacao.add(value); } } } } Serviço de Diretório (LDAP) Resultados ➲ ➲ ➲ ➲ Acesso para as unidades da identidade digital corporativa de alunos, docentes e funcionários O usuário só precisa lembrar de um único par de usuário e senha Segurança reforçada (SHA-2). Facilita o uso de senhas “fortes” e possibilita alterá-las com mais frequência. Serviço de Diretório (LDAP) Resultados - Dados armazenados Vínculo / Ano 2009 (Projeto Piloto) 2010 2011 (implantação) 2012 (até 14/Maio) TOTAL ALUNOS 31.964 16.610 13.795 5.535 67.904 UNICAMP 3.267 689 4.008 503 8.467 FUNCAMP 143 656 701 99 1.599 TOTAL 35.374 17.955 18.504 6.137 77.970 Serviço de Diretório (LDAP) Resultados – Clientes Unidade/Órgão Aplicativo/Finalidade Biblioteca Central Gerenciamento de periódicos Wireless Intranet Sistemas de Ficha catalografica Atendimento de solicitação de documento Webcalendar WebRT Mail Openmeetings Wireless CCUEC VPN Eduroam Intranet Dacger Media Wiki Nagios Subversion Sistema de Controle Almoxarifado Sistema de Empréstimo CEB Wireless CEL Sistema baseado Saki (legado) Ciclo Básico Autenticação do laboratório – 190 máquinas Cadastro de excursão (PHP) Autocadastro de aluno IB EUA (formulário para comissão de ética) FCA Radius/Proxy Wifi Radius Wifi Externo Moodle GGTE Sici (Sist. Central de Informação do INOVA) INOVA Público Alvo Toda Comunidade Unicamp Comunidade BC Comunidade BC Toda Comunidade Unicamp Toda Comunidade Unicamp Comunidade do CCUEC Comunidade do CCUEC Comunidade do CCUEC e Alunos Docentes da Unicamp Toda Comunidade Unicamp Toda Comunidade Unicamp Toda Comunidade Unicamp Comunidade do CCUEC Aluno da Unicamp Toda Comunidade Unicamp Comunidade do CCUEC Comunidade do CCUEC Comunidade do CCUEC Comunidade do CCUEC Toda Comunidade do CEB Alunos da Unicamp Alunos e Docentes da Unicamp Comunidade do IB Alunos da Unicamp Comunidade do IB Comunidade da FCA Comunidade da FCA Toda Comunidade Unicamp Comunidade do Inova Serviço de Diretório (LDAP) Arquitetura do Serviço de Diretório REDE PROTEGIDA Balanceamento de Carga MASTER (write/read) REPLICA REPLICA REDE CORPORATIVA Slave (read/only) Slave (read/only) Serviço de Diretório (LDAP) Exemplo ldapsearch -x -H ldaps://ldap.unicamp.br -b "dc=unicamp,dc=br" uid=teste dn: uid=teste,ou=people,dc=unicamp,dc=br o: UNICAMP sn: teste ou: cc cn: TESTE employeeNumber: 999999 employeeType: CLT uid: teste loginShell: /sbin/nologin mail: [email protected] uidNumber: 1000 givenName: TESTE gecos: TESTE homeDirectory: / gidNumber: 1000 preferredLanguage: pt-br departmentNumber: 9.9.9.0.0.0.0 radiusSimultaneousUse: 1 eduPersonPrimaryAffiliation: staff eduPersonPrincipalName: [email protected] eduPersonAffiliation: staff uecEmailID: teste uecTipoUID: Normal dialupAccess: 1 shadowLastChange: 15574 ShadowExpire: 15574 shadowFlag: 1 userPassword: SENHA uecEmailStatus: active Serviço de Diretório (LDAP) Uso do Serviço de Diretório Serviço de Diretório (LDAP) Futuro ➲ ➲ ➲ ➲ Expansão do serviço na universidade Integração na Comunidade Acadêmica Federada (CAFe) que é uma federação de identidade que reúne instituições de ensino e pesquisa brasileiras Infraestrutura para o ambiente de e-mail do domínio @unicamp.br Autenticação do software de gestão de documentos digitais da DAC Serviço de Diretório (LDAP) Conclusão A nova infraestrutura utilizando serviço de diretório permite conectar uma vasta gama de aplicações com facilidade, evitando duplicação de esforços na autenticação e manutenção de dados de identidade digital da comunidade UNICAMP. Serviço de Diretório (LDAP) Equipe do Projeto (CCUEC - “core team”) ➲ ➲ ➲ Denise Guanaes Cosso – Contato: [email protected] Marcos Aguinaldo Forquesato – Contato: [email protected] Newton Pereira Amusquivar – Contato: [email protected] Informações: http://www.ccuec.unicamp.br/ccuec/diretorio_autenticacao Obrigado !!