Você basicamente corrige os uid / gids para consolidá-los.
Ou você os consolida de alguma forma. Você poderia usar um diretório meta de algum tipo que armazena o uid por sistema em cada objeto de usuário. (Mesmo para gid).
Assim, você poderia ter todos os valores em um objeto, mas precisaria de uma maneira de diferenciá-los para os vínculos LDAP no diretório meta. Talvez por um atributo uid diferente por sistema (que seria difícil de gerenciar) e depois configurar cada sistema para usar seu próprio atributo uid, em vez do uid padrão.
Com base no comentário, e pensando mais sobre isso, eu acho que talvez seja algo que você possa fazer sem um sistema de estilo IDM, mas sim apenas um servidor LDAP de sua escolha. Em seguida, exporte seus dados de todas as suas fontes e consolide-as. Ou seja Para cada usuário geoffc, encontre todos os uid's nas fontes de dados. Em seguida, adicione um SystemAuid = 123, SystemBuid = 999, SystemCuid = 767543 e assim por diante em um arquivo LDIF.
Em seguida, configure o SystemA para usar SystemAuid = em vez de uid = em sua configuração pam / ldap. E assim por diante.
Mesma ideia básica para grupos. Um sistema de estilo IDM seria configurado para fazer os dados trabalhar por conta própria como parte dos processos básicos e mantê-los conforme as mudanças acontecem em cada sistema ao longo do tempo.
Você precisaria adicionar um processo para adicionar novos usuários ao seu LDAP. Nesse caso, você escolheria o próximo uid gratuito disponível e o atribuiria a todos os valores desse usuário, então, a partir de então, você se afastaria de vários valores.