Bom dia a todos,
Perguntaram-me recentemente se havia a possibilidade de utilizar um Red Hat IDM / IPA como repositório centralizado dos contactos de “pessoas ou organismos de interesse” para uma empresa.
Tendo em conta que a empresa em questão tinha já um IDM a funcionar, e não estavam interessados em que fosse construido um openLDAP para o efeito surgiu o desafio.
(Nota: Todos os passos assumem que já existe em funcionamento um IDM/IPA).
Em primeiro lugar foi necessário agrupar os contactos dos utilizadores que desejavam centralizar a informação, e proceder a sua extração do seu local original (google, owncloud, etc).
Muita atenção com a qualidade dos dados que extraem de forma a garantir a qualidade na informação importada.
Com os dados em mão, e tendo em conta que o cliente (e o suporte) não queriam misturadas as contas de autenticação centralizada, com o repositório de contactos, optei por fazer uma nova OU dentro da árvore do Cliente:
# cat create_ou.ldif
dn: ou=addressbook,dc=domain,dc=com
objectclass:organizationalunit
ou: addressbook
description: generic groups branch
dn: ou=fabricantes,ou=addressbook,dc=domain,dc=com
objectclass:organizationalunit
ou: nuno
description: generic groups branch
Seguido de um inport da mesma para dentro da árvore de ldap com o seguinte comando:
# ldapadd -xWvD “cn=directory manager” -c -p 389 -h idm.domain.com-W -f create_ou.ldif
Em seguida, e com os dados em formato vcard (exportado nativamente tanto pelo google como pelo owncloud), é necessário converter os dados em formato ldap/ldif para importação dentro do IDM.
Para tal, recomendo uma ferramenta de conversão extremamente útil de nome vcfconvert e pode ser executado via web ou via script local.
No meu caso, e tendo em conta a sensibilidade de alguma da informação para o Cliente optei por descarregar o script e executar localmente:
./vcfconvert.sh -p -f ldap -d \; -b “ou=fabricantes,ou=addressbook,dc=domain,dc=com” -o ../contacts.vcf > contactos.ldif
Nota: onde se lé contacts.vcf reporta ao ficheiro extraído originalmente (por exemplo do google accounts).
Finalmente, chegamos a altura de carregar os nossos dados dentro do nosso ldap:
# ldapadd -xWvD cn=directory manager -c -p 389 -h idm.domain.com -W -f contactos.ldif
Finalmente, podemos validar o resultado do nosso import através do comando:
#ldapsearch -h idm.domain.com-p 389 -D “cn=Directory Manager” -b “ou=fabricantes,ou=addressbook,dc=domain,dc=com” -W
Os dados são inclusive visíveis dentro de uma address list de outlook quando configurado para ir ler ao host do IDM, com a apropriada search base: ou=fabricantes,ou=addressbook,dc=domain,dc=com.
Como podem reparar, todos os acessos foram feitos via o Directory Manager, e como tal só estão visíveis e editáveis por ele.
No próximo post, ensinarei a colocar ACI’s (ACLs) de forma a que todos os utilizadores de um dito group dentro do IDM (por exemplo GALUsers) tenham permissões de edição e leitura, e todos os restantes users de leitura.
Caso tenham alguma duvida, estou como sempre disponível.
Abraço.
Nuno