DiretóOlá a todos. Bom, tenho um cenário com três servidores LDAP. Esse cenário na prática represent

1. DiretóOlá a todos. Bom, tenho um cenário com três servidores LDAP. Esse cenário na prática represent

Luiz Marcelo
luizmarceloo

(usa Ubuntu)

Enviado em 17/06/2010 - 17:33h

Olá a todos.
Bom, tenho um cenário com três servidores LDAP. Esse cenário na prática representa uma estrutura de uma instituição multi-campi.

Por exemplo:
Cada servidor de cada campus possui os seguintes contextos de nome instanciados em um backend hdb:

Campus 1: dc=a,dc=instituicao,dc=org
Campus 2: dc=b,dc=instituicao,dc=org
Campus 3: dc=c,dc=instituicao,dc=org

Cada campus administra apenas seu servidor, porém permite que ocorra consultas aos outros servidores remotos. Eles devem se apresentar como um diretório único, transparente às consultas dos usuários.
Tentei utilizar o backend meta com o sufixo dc=instituicao,dc=org para realizar um mascaramento de nome.
Na prática o backend meta (instanciado no servidor campus a) está assim:

database meta
suffix "dc=instituicao,dc=org"
uri "ldap://localhost/dc=a"
idassert-bind bindmethod=simple
binddn="cn=leitor,dc=a"
credentials="leitora"
rebind-as-user yes
suffixmassage "dc=instituicao,dc=org" "dc=a"

# Servidor remoto b
uri "ldap://10.0.0.2/dc=b"
idassert-bind bindmethod=simple
binddn="cn=leitor,dc=b"
credentials="leitorb"
rebind-as-user yes
suffixmassage "dc=instituicao,dc=org" "dc=b"
lastmod off

# Servidor remoto c
uri "ldap://10.0.0.3/dc=c"
idassert-bind bindmethod=simple
binddn="cn=leitor,dc=c"
credentials="leitorc"
rebind-as-user yes
suffixmassage "dc=instituicao,dc=org" "dc=b"
lastmod off


Ao realizar uma consulta geral a dc=instituicao,dc=org todos os dados dos três campi eram mesclados e retornados a consulta.
exemplo:
ldapsearch -x -D cn=leitor,dc=a -W -b dc=instituicao,dc=org "cn=leitor"

o resultado é:
cn=leitor,dc=instituicao,dc=org
cn=leitor,dc=instituicao,dc=org
cn=leitor,dc=instituicao,dc=org

Aparecem 3 resultados, cada um encontraddo nas três diferentes bases. O problema é que possuem o mesmo DN.

Supondo que essa estrutura é utilizada para autentiação de usuários e que um usuário possa autenticar-se em qualquer instituição, seja ela a de origem ou fora, caso exista dois usuários com uid=joao ( ex: uid=joao,dc=a,dc=intituicao,dc=org e uid=joao,dc=b,dc=instituicao,dc=org) ao realizar a busca pelo utilizando backend meta, os resultados apareceráão duplicados (pois o backend meta faz masquerading de :

uid=joao,dc=a,dc=intituicao,dc=org
para
uid=joao,dc=instituicao,dc=org

Alguém com experiência na utilização do backend meta, poderia me dar uma dica de como implementar esse cenário sem que ocorra uma duplicação de DNs ?
De repente uma forma de fazer que o servidor nao armazene uma nova entrada caso ela seja igual a uma já existente (sob o masquerading do proxy meta)?

O Objetivo principal dessa implementação é: implementar um modelo distribuído que garanta
1 - independência administrativa para cada campus (apenas escreve em sua base, mas lê em todas)
2 - Permitir que usuários possam se autenticar no sistema, dentro ou fora de sua instituição origem.

Por último, seria possível a utilização do backend relay, afinal qual o principal papel desse backend?

Desde já Agradeço.
Luizmarceloo!


  






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts