É possível ter dados não replicados em um consumidor LDAP?

2

Li toda a documentação disponível , a Domínio do livro OpenLDAP , e como um zilhão de mensagens na lista de mensagens, mas eu não encontrei um maneira de tornar tal cenário possível. Eu vejo vários casos de uso para este cenário como um aplicativo corporativo que sincroniza todos os usuários do LDAP principal da Org, mas mantém seus próprios esquemas e objetos relacionados ao aplicativo em seu servidor.

Então, por favor, você poderia me apontar na direção certa ou me ajudar a descartar a possibilidade?

EDIT 17 de junho

Um cenário de exemplo:

Oqueestoutentandorealizaréconseguirtodososdadosemo=area1,o=myorg,dc=orgeo=area2,o=myorg,dc=orgdoprovedor,mastambémparasercapazdeterdadosadicionaisnoconsumidor,comoo=subarea1,o=myorg,dc=org.

Eunãotenhonenhumproblemaemobterosdadosdoprovedor,euconfigureiumaentradasyncreplnoconsumidorparacadaramo(area1,area2)comdiferentesrids

syncreplrid=101provider="ldap://provider:389" 
 bindmethod=simple 
 binddn="cn=replicator,o=myorg,cn=org" 
 credentials="***" 
 searchbase="o=area1,o=myorg,dc=org" 
 type=refreshAndPersist 
 retry="5 5 300 5" 
 timeout=3 
 schemachecking=off 
 scope=sub

e também ativei o syncprov no provedor.

O problema surge quando tento adicionar algum dado no consumidor, sempre falha com erro:

LDAP Error code 53 - shadow context; no update referral
    
por mvillar 10.06.2014 / 12:01

4 respostas

2

Sim, você pode. Basta pesquisar filtro e attrs que você deseja replicar na sua configuração syncrepl

syncrepl rid=1
  provider=ldap://provider.myorg.com:389
  type=refreshOnly
  interval=01:00:00:00
  searchbase="ou=sales,o=employees,o=myorg,cn=com"
  filter="(objectClass=posixAccount)"
  scope=base
  attrs="cn,sn,userPassword"
  schemachecking=off
  bindmethod=simple
  binddn="cn=syncuser,o=myorg,cn=com"
  credentials=secret

agora, é o seguinte:

  • replicar apenas ou = vendas, o = myorg, cn = com
  • replicar apenas o esquema posixAccount
  • apenas cn, sn e userPassword. Assim mantendo o gid e o uid do consumidor intactos.
  • e não entre em crianças. Apenas o baseDN que você especificou. O escopo tem algumas opções.
    • sub, significa tudo com subárvores
    • um, significa apenas a base de pesquisa e a abaixo dela
    • base, significa apenas a base de pesquisa

Existe uma pegadinha. Para atributos que o seu master samba não possui, você precisa atualizar manualmente. Por exemplo, você tem a senha do samba em seu LDAP do consumidor e seu LDAP mestre não a possui, você precisa atualizar 2 LDAP para sincronizar sambaNTPassword e sambaLMPassword no LDAP do consumidor para userPassword no LDAP mestre quando o usuário alterar sua senha. Claro, isso só se aplica se você quiser manter as senhas sincronizadas.

    
por 13.06.2014 / 01:26
1

Se você está se referindo é possível ter um esquema de dados diferente para um consumidor, então eu acho que você poderia apenas replicar as coisas separadamente para uma floresta (ou criar outra) e conectar o consumidor a essa floresta ou site AD. Infelizmente eu usei o openldap apenas brevemente. Eu espero que isso ajude .

    
por 12.06.2014 / 15:35
1

abordagem de 2 back-ends

No que diz respeito a diferentes ramificações em diferentes backends, você pode ter um backend configurado para ser um consumidor de um master remoto, e outro backend configurado para ser um backend padrão quando a leitura e gravação são realizadas diretamente.

Você define ou=sales,o=employees,o=myorg,cn=com como o DN de um back-end com as configurações da replicação. E você define ou=accounting,o=employees,o=myorg,cn=com como o DN de outro back-end, sem configurações de replicação.

1 abordagem de back-end

Se tudo for mantido no mesmo backend, eu imagino o seguinte:

  1. Configure a replicação de back-end em um maneer multi-mestre. Desta forma, ambos os servidores são graváveis
  2. Onde a árvore localmente gravável tiver que ser localizada, implemente a ACI para manter os dados replicados como somente leitura para os usuários locais, se necessário
  3. Se a árvore gravável localmente tiver que ser mantida localmente e não replicada, você poderá configurar a diretiva para fazer uma replicação seletiva (ignorando atributos, objeto, DN, ...)
por 12.06.2014 / 16:12
0

Eu tive o problema semelhante e encontrei uma opção que permite gravações nas bases do consumidor:

olcMirrorMode: TRUE

Ele deve ser adicionado depois de todas as opções de syncrepl. Eu acho que isso resolve o seu problema também.

    
por 06.05.2016 / 01:00

Tags