LDAP: Usos e Aplicações



Documentos relacionados
Entendendo o OpenLDAP. Por GABRIEL STEIN

LDAP. Laboratório de Computação Científica UFMG

Sistemas Operacionais Livres. Servidor Web Apache

BSDDAY - 13 de Agosto SP/Brazil

Serviço de Diretórios com OpenLDAP. Marcos Sungaila

Elementos. Setores, departamentos, diretorias etc.

SERVIDOR WEB - APACHE SERVIDOR WEB - APACHE SERVIDOR WEB - APACHE 27/02/2012

Introdução ao Active Directory AD

ATIVIDADES EM MIDDLEWARE DA RNP

Curso de extensão em Administração de redes com GNU/Linux

ADMINISTRAÇÃO DE SISTEMA OPERACIONAL DE REDE (AULA 4)

Segurança da Informação

Conceitos de relação de confiança

Projeto Integrador Projeto de Redes de Computadores

Instalando servidor Apache

MINICURSO WINDOWS SERVER 2008 UTILIZANDO O VMWARE PLAYER

Disponibilização do Serviço de Diretório (LDAP) para autenticação de usuários da comunidade UNICAMP

Conceitos, Arquitetura e Design

ADMINISTRAÇÃO DE SISTEMA OPERACIONAL DE REDE (AULA 5)

Instalação Apache + MySQL + PHPMyAdmin CentOS

LDAP Conceitos e Aplicações. Antonio Carlos Feitosa Costa (antonio@cbpf.br)

FACULDADE DE TECNOLOGIA SENAC GESTÃO DA TECNOLOGIA DA INFORMAÇÃO LABORATORIO DE REDE

V WSPPD Uma visão geral do OpenLDAP e Active Directory para autenticação de usuários em sistemas heterogêneos e distribuídos

Integrações com LDAP. Treinamento OTRS Help Desk

DESENVOLVIMENTO E IMPLEMENTAÇÃO DE UM PROXY DNS EM UMA REDE HETEROGÊNEA

Capítulo 7. Hyper Text Transfer Protocol (HTTP). Serviço Apache. - Protocolo HTTP - Sessão HTTP - Configuração do serviço Apache

Laboratório de Redes de Computadores e Sistemas Operacionais

Sistema de Banco de Dados Distribuídos e DataGrid

Configurando e Instalando o TRAC

Gestão de identidades e ICPEDU ou Como implementar uma AR na sua instituição? Jeroen van de Graaf Laboratório de Computação Científica UFMG

WSUS. Windows Server Update Services

Manual Gestix Confi gurar o Apache Manualmente. Gestix.com

Controle de Acesso em Rede

Administração de Sistemas Operacionais. Prof. Rodrigo Siqueira

O que é LDAP? Protocolo Lightweight Directory Access Protocol Conjunto de critérios, mecanismos e métodos TCP/IP Multiplataforma.

Especificações da oferta Gerenciamento de dispositivos distribuídos: Gerenciamento de ativos

Guia de administração para a integração do Portrait Dialogue 6.0. Versão 7.0A

DESENVOLVENDO APLICAÇÕES WEB UTILIZANDO A FERRAMENTA WEBSCHARTS

Versão /10. Xerox ColorQube 9301/9302/9303 Serviços de Internet

JSF - Controle de Acesso FERNANDO FREITAS COSTA

Tutorial de Active Directory Parte 3

Linux - Servidor de Redes

Redes de Computadores. Ricardo José Cabeça de Souza

Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho

Parceiro Oficial de Soluções Zabbix no Brasil

COORDENAÇÃO DE TECNOLOGIA (COTEC) JUNHO/2010

Atualizado em 9 de outubro de 2007

Instalação e Configuração do Servidor HTTPD Apache

Network Services Location Manager. Guia para os administradores de rede

Líder em Soluções Samba 4 no Brasil

Gerenciando seu projeto com dotproject

Senado Federal Questões 2012

ADMINISTRAÇÃO DE SISTEMAS OPERACIONAIS

Sistemas Operacionais de Rede INTRODUÇÃO AO ACTIVE DIRECTORY

Instalação do I3GEO no servidor Linux Debian

Intranets. FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO

FTIN Formação Técnica em Informática Módulo Sistema Proprietário Windows AULA 04. Prof. André Lucio

Protegendo o Apache. Prof. Claudio Silva

Atividade Proposta da Disciplina: Laboratório de Rede de Computadores

Hyper Text Transfer Protocol (HTTP) ADI HTTP 1/18

Sistemas Operacionais II. Prof. Gleison Batista de Sousa

FTIN Formação Técnica em Informática. Sistema Operacional Proprietário Windows Prof. Walter Travassos

Curso: Redes II (Heterogênea e Convergente)

Instalando e Configurando o DNS Server

Professor: Macêdo Firmino Disciplina: Sistemas Operacionais de Rede

Lightweight Directory Access Protocol LDAP

Gerência de Quotas de Impressão com CUPS e Pykota

Flaviano José Angeli. Orientador: Dalton Solano dos Reis

MQSeries Everyplace. Leia-me primeiro G

Gerência de Redes. Arquitetura de Gerenciamento.

FANESE Faculdade de Administração e Negócios de Sergipe

Disciplina: Tecnologias de Banco de Dados para SI s

Instalação e Configuração do Nagios

Projeto de Redes de Computadores. Servidor Radius

Software de gerenciamento de impressoras

INSTALANDO E CONFIGURANDO O ACTIVE DIRECTORY NO WINDOWS SERVER 2008

O que são DNS, SMTP e SNM

5/7/2010. Apresentação. Introdução. Ponto de vista do usuário. Curso Tecnologia em Telemática. Disciplina Administração de Sistemas Linux

Sistema TrackMaker de Rastreamento e Logística de Transportes. Solução de Despacho Integrada. Manual do Usuário

Sistemas de Arquivos. Sistemas Operacionais - Professor Machado

Tutorial de TCP/IP Parte 25 Criando Zonas Reversas

Introdução a Banco de Dados

Instalação e Configuração

OpenLDAP. Clodonil Honório Trigo UMA ABORDAGEM INTEGRADA. Novatec

Implementando e Gerenciando Diretivas de Grupo

Manual de Instalação

Redes de Dados e Comunicações. Prof.: Fernando Ascani

Prof. Roberto Franciscatto 4º Semestre - TSI - CAFW. Free Powerpoint Templates Page 1

LOJA ELETRÔNICA MANUAL DE INSTALAÇÃO

Instalação Cliente Notes 6.5

Introdução ao Sistema. Características

FACULDADE DE TECNOLOGIA SENAC GOIÁS PROJETO INTEGRADOR. Projeto de Redes de Computadores. 5º PERÍODO Gestão da Tecnologia da Informação GOIÂNIA

Manual de Utilização do PLONE (Gerenciador de página pessoal)

Configuração de DNS em Windows Servidor 2008

Transcrição:

LDAP: Usos e Aplicações Daniel Novais Martins CNPTIA/Embrapa VI Seminário de Capacitação Interna dnovais@correionet.com.br

LDAP: Usos e Aplicações Relembrando Vantagens/Limitações Elementos de uma solução LDAP Exemplos : Sendmail, Apache, aplicação em C Conclusão

Relembrando Lightweight Directory Access Protocol => baseado no padrão X.500 X.500 simplificado e flexível Implementado sobre TCP/IP (totalmente integrado à Internet) Padrão que pode ser encontrado na RFC 1777/RFC 2251 Repositório, Protocolo e API

Relembrando LDAP não é um substituto para banco de dados relacional, file system ou DNS. Aplicações LDAP podem ser agrupadas em 3 categorias : apps para localizar usuários e recursos na rede apps que gerenciam estes usuários e recursos apps de autenticação e segurança

Vantagens Multi-plataforma - aplicações LDAP-aware Padrão Aberto Opções de fornecedores de solução (comercial, open source) Facilidade de instalação e manutenção Replicação é uma tecnologia built-in Delegação de autoridade e permissão via ACL (Access Control List) no próprio servidor

Exemplos de utilização Informações que precisam ser lidas de diferentes locais e são pouco alteradas : Phone Book Informações de contato dos clientes Informações de infra-estrutura, tais como, mapas NIS, email aliases, etc Configurações de pacotes de software Public Certificates e Security keys

Quando utilizar LDAP - checklist A informação precisa estar disponível em muitas plataformas? Os dados serão acessados através de vários computadores e/ou aplicações? Os registros armazenados sofrem poucas mudanças (poucas vezes no dia)? A estrutura dos dados pode ser representada em banco de dados do tipo flat, ou seja, toda a informação de um item pode ser colocado em um único registro? Obs: qualquer informação do tipo fichário é forte candidata.

Limitações Não substitui Banco de Dados Relacionais (heavy updates, processamento transacional, geração de relatórios, SQL, two phase commit) Não é um file system, dificultando o armazenamento de BLOB (binary large objects) Não serve como base para uma solução DNS, não funciona connectionless como o DNS.

Estrutura de um diretório LDAP As informações são armazenadas de forma hierárquica (como o DNS e estruturas de diretórios de arquivos). Por quê? Você pode querer obter apenas as informações de um ramo da hierarquia Você pode implantar segurança em ramos diferentes da árvore Combinado com replicação, você pode projetar sua árvore para minimizar a utilização de banda da rede

Estrutura de um diretório LDAP Como DNS hosts (sol.cnptia.embrapa.br), no LDAP existe o Distinguished Name (DN) => dn:cn=daniel, ou=cnptia, o=embrapa, c=br O top level do diretório é chamado base DN : o=embrapa, c=br o=embrapa.br dc=embrapa, dc=br

Exemplo de uma entry : dn: uid=dmartins, ou=cnptia, o=embrapa, c=br objectclass: person objectclass: organizationalperson objectclass: inetorgperson objectclass: foobarperson uid: fsmith givenname: Daniel sn: Martins cn: Daniel Martins telephonenumber: 19-43672929 roomnumber: 122G ou: cnptiai mailroutingaddress: dmartins@cnptia.embrapa.br mailhost: sol.cnptia.embrapa.br userpassword: {crypt}3x1231v76t89n uidnumber: 1234 gidnumber: 1200 homedirectory: /home/dmartins loginshell: /usr/local/bin/bash

Exemplo de uma objectclass objectclass inetorgperson requires objectclass, uid, cn allows sn, description, destinationindicator, facsimiletelephonenumber, internationalisdnnumber, l, ou, physicaldeliveryofficename, postofficebox, postaladdress, postalcode, preferreddeliverymethod, registeredaddress, seealso, st, streetaddress, telephonenumber, teletexterminalidentifier, telexnumber, title, userpassword, x121address

Outro exemplo de objectclass objectclass strongauthenticationuser requires objectclass, usercertificate

Projetando uma árvore de Diretórios Pensar como uma estrutura de diretórios de arquivos A hierarquia permite agrupar dados, que podem vir a ser úteis para : Delegação de autoridade para outros servidores ou sites Replicação de dados Segurança e controle de acesso Escalabilidade

Exemplo de uma árvore LDAP Estrtura Interna Sefaz c=br o=sp.gov o=fazenda ou=usuarios ou=pessoal ou=grupos ou=regionais ou=servicos cn=nakano cn=harumi... ou=terceiros cn=consultor1... cn=delegado cn=inspetor cn=chefe PF cn=adm Sistemas cn=fiscal cn=sefadm cn=administrativ o cn=drt5... ou=sede cn=impressora cn=www... ou=dr02 ou=dr03 ou=dr04 ou=dr05... ou=dr16

Diretrizes para uma topologia de diretórios Evitar modelos que necessitem ser constantemente alterados (exemplo: evitar seguir um organograma) Evitar mover registros LDAP entre OU. Você tem tipos de dados que são similares em alguns aspectos, mas diferem no modo como são utilizados? Coloque em OU diferentes, por exemplo : ou=pessoal e ou=terceiros Se for replicar dados, considere quebrar OU em sub OU, por exemplo : ou=clientes; quebrar em ou=sudeste,ou=clientes e ou=nordeste, ou=clientes

Controle de acesso ao diretório LDAP Podemos colocar ACLs para controlar quem acessa o servidor LDAP : access to * by * read (acesso de leitura para todos) access to * by self write by anonymous auth by * read (usuários podem modificar seus atributos, permite autenticação, permite usuários autenticados lerem)

Controle de acesso II access to attr=userpassword by self write by anonymous auth by dn= uid=admin, ou=cnptia, o=embrapa, c=br write by * none access to * by self write by dn= uid=admin, ou=cnptia, o=embrapa, c=br write by * read

Exemplo : Sendmail A partir da versão 8.10, é possível implementar roteamento de mensagens via LDAP. guest@cnptia.embrapa.br poderia ser apenas guest@embrapa.br O Sendmail busca na base LDAP se o endereço está OK (conta ou alias existente), atributos uid e maillocaladdress. Depois o Sendmail pode fazer um forward do email para o servidor regional correspondente via atributos mailroutingaddress ou mailhost.

Exemplo: Apache Autenticação de usuários, acesso às páginas e recursos disponíveis. Existe um módulo disponível: http://www.rudedog.org/auth_ldap/ É preciso compilar o módulo e disponibilizá-lo no Apache, no arquivo httpd.conf : # For Unix LoadModule auth_ldap_module modules/auth_ldap.so

Exemplo: Apache <Directory /usr/local/projeto/html> AllowOverride All order allow,deny allow from all Options ExecCGI AuthName Projto" AuthType Basic AuthLDAPURL ldap://sol.cnptia.embrapa.br/o=embrapa, c=br?uid?sub?(objectclass=*) require valid-user # require user guest ou require group cn=administradores, ou=cnptia, o=embrapa, c=br </Directory>

Exemplo: C++ programming int LDAPTAMAuth::init(){ strcpy(hostname, sol.cnptia.embrapa.br"); strcpy(username,""); strcpy(password,""); strcpy(rootnode,"o=embrapa, c=br ); if (connect() == 1) return 1; return 0; } int LDAPTAMAuth::connect(){ _ld = (LDAP*) ldap_open(hostname,ldap_port); if (_ld == NULL) return 0; if(ldap_simple_bind_s(_ld,username,password)!= LDAP_SUCCESS)return 0; return 1;}

Exemplo: C++ programming int LDAPTAMAuth::setattribute(const char *entrydn, const char *attribute, const char *value){ LDAPMod mod; LDAPMod *mods[3]; int rc, retorno=1; char *vals[2]; mod.mod_op = LDAP_MOD_REPLACE; mod.mod_type = strdup((char *) attribute); vals[0] = strdup((char *) value); vals[1] = NULL; mod.mod_values=vals; mods[0] = &mod; mods[1] = NULL; rc = ldap_modify_s(_ld, (char *) entrydn, mods); if (rc!= LDAP_SUCCESS) { fprintf(stderr, "ldap_modify_s: %s\n", ldap_err2string(rc)); retorno=0;} return retorno;}

Conclusão Não é uma panacéia Modelagem/topologia Padrão aberto, ubiquidade de soluções ( servers, clientes, linguagens) Complexidade dos ambientes atuais Single Sign-On

Bibliografia RFC2251 - Lightweight Directory Access Protocol (v3) RFC2252 - LDAPv3 Attribute Syntax Definitions RFC2253 - UTF-8 Representation of Distinguished Names RFC2254 - The String Representation of LDAP Search Filters RFC2255 - The LDAP URL Format RFC2256 - A Summary of the X.500(96) User Schema for use with LDAPv3 http://www.linc-dev.com/ldapres.html (contém RFCs, fornecedores de aplicações, etc.) http://www.netscape.com/comprod/server_central/product/directory/i ndex.html