Global (form everywere) Address List, ou como usar o motor de LDAP para área de Contactos – Parte 2

Bom dia a todos,

Após o post da semana passada sobre a adição de um livro centralizado de contactos ao ldap server que serve de base para o nosso IDM/IPA chegou a altura de configurar acessos ao mesmo.

Alem da disponibilidade da informação, é necessário garantir que apenas os elementos certos acedem a mesma.
Iremos assim aplicar uma política de acessos utilizando as contas já criadas em IDM/IPA para definir quem acede a informação e com que permissões.

Como tal, definimos os seguintes níveis de acesso:

a) Users de administração – vamos imaginar um user ldap de nome rollodex.
b) Permissões para um grupo geral de leitura.
c) Permissões para um grupo geral de administração.

O primeiro exemplo será o administrador, caso se opte por não se usar a opção c).
Será um utilizador apenas que irá fazer a gestão do rollodex.

Assim será necessário construir o ldif que irá atribuir as permissões, após a criação do utilizador rollodex em IDM:

# cat admin.ldif
dn: dc=domain,dc=com
changetype: modify
add: aci
aci: (targetattr = “*”) (target = “ldap:///ou=fornecedores,ou=addressbook,dc=domain,dc=com”) (version 3.0;acl “user_admin”;allow (all,proxy)(userdn = “ldap:///uid=rollodex,cn=users,cn=accounts,dc=domain,dc=com”);)

Em seguida, executaremos o ldapmodify de forma a carregar as permissões:

# ldapmodify  -D “cn=directory manager”  -p 389 -h idm.domain.com  -f admin.ldif -W

Agora que temos um user de administração, iremos necessitar que o grupo comercial tenha acesso aos dados do repositório de contactos.

Para tal, e após criar o grupo “comercial” dentro do IDM, é altura de construir a ACI com o acesso:

# cat groupread.ldif
dn: dc=domain,dc=com
changetype: modify
add: aci
aci: (targetattr = “*”) (target = “ldap:///ou=fornecedores,ou=addressbook,dc=domain,dc=com”) (version 3.0;acl “grupo_de_leitura”;allow (read,proxy)(groupdn = “ldap:///cn=comercial,cn=groups,cn=accounts,dc=domain,dc=com”);)

Em seguida teremos de carregar o ldif dentro do nosso IDM:

# ldapmodify  -D “cn=directory manager”  -p 389 -h idm.domain.com  -f groupread.ldif -W

Finalmente chegamos a possibilidade c) por exemplo para uma equipa que mantenha a informação dos contactos atualizada e correta.

Ou seja, as permissões dadas no exemplo a) utilizando a sintaxe do exemplo b) aplicada a um novo grupo de ACIs:

# cat groupadmin.ldif
dn: dc=domain,dc=com
changetype: modify
add: aci
aci: (targetattr = “*”) (target = “ldap:///ou=fornecedores,ou=addressbook,dc=domain,dc=com”) (version 3.0;acl “grupo_de_leitura”;allow (all,proxy)(groupdn = “ldap:///cn=gestaoinformacao,cn=groups,cn=accounts,dc=domain,dc=com”);)

O processo de carregamento é idêntico aos anteriores.

Considerações finais:

Todos os exemplos anteriores onde são utilizados ldapgroups, pressupõe que os grupos sejam criados (por exemplo em interface IDM), e os grupos sejam populados com utilizadores válidos existentes em IDM/IPA.

Outra consideração importante a ter é como em todos os casos em que se utilizam e alteram sistemas dinâmicos e complexos, existe sempre a necessidade de backups válidos e testados.
É necessária a noção, que o IDM/IPA tem um comportamento de AD e como tal snapshot’s das máquinas envolvidas não são backups válidos por várias razões, sendo a principal que a reposição de um snapshot pode contaminar e deixar inutilizável uma floresta IPA/IDM inteira.
Para backups e restore o IDM/IPA fornece ferramentas apropriadas para o efeito. Por favor utilizem elas.

Chegamos entretanto ao fim deste pequeno livro de receitas que mostra a versatilidade do IDM/IPA e da stack que o compõe, que alem de um ponto centralizado de gestão de identidade, pode ainda ser utilizado para melhorar a comunicação dentro de uma empresa fomentado a partilha de informação (neste caso contactos de fornecedores), de uma forma totalmente segura.

Caso tenham duvidas, estou como sempre disponível para quaisquer duvidas que possam ter.

Abr.
Nuno