05 dez 2009 @ 12:32 
1 Star2 Stars3 Stars4 Stars5 Stars6 Stars7 Stars8 Stars9 Stars10 Stars (1 votes, average: 10,00 out of 10)
Loading ... Loading ...

Uma tarefa que parece fácil (e efetivamente é) pode se tornar um problema que dura quase um mês. Foi exatamente isso que aconteceu quando eu comecei a pesquisar sobre como integrar o TestLink, ferramenta Open Source de gerencia de testes ao Active Directory.

Alguns motivos que dificultaram a configuração:
-Falta de conhecimento técnico do LDAP (Lightweight Directory Access Protocol) e sua estrutura;
-Má documentação do TestLink com relação a integração;
-Pouco tratamento de falhas desta configuração no TestLink;
-Pouco suporte a esta integração;

Gostaria de pedir para desconsiderarem se algum termo referente as tecnologias abaixo relacionadas estiver confuso ou até mesmo errado. Essa não é minha área de especialização, e como já foi citado anteriormente, precisei de algum tempo para compreender os problemas envolvidos e as soluções que deveriam ser adotadas, que, possivelmente para um profissional desse setor, seriam facilmente identificadas.

Os motivos acima me motivaram a ajudar as pessoas que pesquisarem no Google sobre esse problema, que na verdade é simples, mas pelos fatores apresentados acima, tornaram-se um problema de um mês, muitas horas de configuração, várias tentativas e inúmeras descobertas.

Abaixo um “tutorial” de como integrar o LDAP passo a passo, e todas as configurações que são necessárias e as que não são necessárias:

Requisitos:
-TestLink instalado;
-Um servidor com Windows com Active Directory;
-Usuário ativo do Active Directory (preferencialmente desvinculado de qualquer colaborador, ex: tl@empresa.com);
-Uma classe de acesso ao LDAP (por exemplo php_ldap);
-Uma tabela com a estrutura do LDAP da organização;

1º Passo:
No arquivo do php.ini, descomentar (habilitar) a extensão “extension=php_ldap.dll”

phpiniO procedimento acima garante que o servidor PHP possa usar o protocolo LDAP. Sem essa configuração, o sistema não vai funcionar corretamente.
No exemplo acima, estou usando o WAMP em minha estação local.

2º Passo:
No arquivo config.inc.php, informar as seguintes configurações:
*['method'] = ‘LDAP’;
-O método deve ser informado como LDAP para que ele use a rotina de autenticação do Active Directory
*['ldap_server'] = ‘192.168.0.xxx’;
-O servidor de LDAP da organização. Pode ser o IP ou o DNS (nome) como ldap.empresa.com
*['ldap_port'] = ‘389′;
-Para Windows utilizar a porta 389
*['ldap_version'] = ‘0′;
-a versão deve ser informada como zero, caso seja diferente pode ter incompatibilidade
*['ldap_root_dn'] = ‘OU=Empresa LTDA,DC=empresa,DC=com’;
-Informar OU para os diretórios da empresa e DC para os identificadores
*['ldap_organization'] = ”;
-Deixar o organization em branco
*['ldap_uid_field'] = ’sAMAccountName’;
-Para Windows usar sAMAccountName
*['ldap_bind_dn'] = ‘CN=usuario,OU=*Usuarios,OU=Organização Empresa,DC=empresa,DC=com’;
-Informar o usuário ativo do Active Directory
*['ldap_bind_passwd'] = ’senha’;
-Informar a senha do usuário selecionado
*Para facilitar a leitura estou ocultando o array ($tlCfg->authentication)

Recomendo que essas informações sejam requeridas e alinhadas com departamento de administração de rede e infraestrutura.

Salvar as modificações.

3º Passo:
Para quem já usa o TestLink com controle interno de senha (MD5), é necessário atualizar os usuários já existentes para os nomes do LDAP, por exemplo, se o e-mail é “nome@empresa.com” o usuário do TestLink deve ser “nome”, caso seja nome.sobrenome@empresa o usuário do TestLink deve ser “nome.sobrenome”.

Isso causa um problema também, pois o TestLink tem uma regra que permite somente o cadastro de um nome sem caracteres especiais exceto pelo sublinhado “_”, mas para que ele passe a aceitar pontos basta mudar a expressão regular presente no arquivo de configuração (config.inc.php).
A expressão padrão é:  /^[\w \-]+$/
Para aceitar um ponto entre dois nomes*: /^[\w \-]+\.+[\w \-]+$/
* Minha sugestão, pode ser modificada de acordo com o padrão de cada empresa.

4º Passo:
Reiniciar o servidor do PHP para aceitar as novas modificações
Não é necessário excluir as senhas já cadastradas. Recomendo na verdade deixar as senhas para uma situação emergencial, já que agora, se o servidor de Active Directory da empresa cair, a utilização do TestLink será comprometida.

Uma outra sugestão off topic para esse post é desativar a “auto criação” de usuários, para evitar “penetras” e spammers no TestLink. Para isso basta mudar a opção de user_self_signup para FALSE

Espero que esse post possa ajudar as pessoas que como eu estiveram procurando por algum tutorial que não fale a velha “língua técnica” dos administradores de redes e infraestrutura.

PS: As informações acima são baseadas em um case de implantação da funcionalidade em uma empresa privada a qual eu presto consultoria. Não representa que funcione em qualquer outra empresa, que sejam as únicas ou melhores configurações possíveis para essa funcionalidade.

Outras referencias que podem te ajudar:
-Conhecer um pouco mais sobre LDAP http://en.wikipedia.org/wiki/LDAP
-Fórum do TestLink http://www.teamst.org/phpBB2/
-Outro tutorial sobre esse mesmo assunto http://blog.loftninjas.org/2008/02/07/using-active-directory-ldap-authentication-with-testlink/

Bons testes :)

Creative Commons License
This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.

Post to Twitter

Posted By: Camilo Ribeiro
Last Edit: 21 dez 2009 @ 13:36

EmailPermalink
Tags
Tags:
Categories: Ferramentas


 

Responses to this post » (One Total)

 
  1. [...] Integrando TestLink ao Active Directory via Open LDAP – Camilo Ribeiro (Camilo Ribeiro); [...]

Post a Comment

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Spam Protection by WP-SpamFree

?>

 Last 50 Posts
 Back
Change Theme...
  • Users » 1
  • Posts/Pages » 35
  • Comments » 105
Change Theme...
  • VoidVoid « Default
  • LifeLife
  • EarthEarth
  • WindWind
  • WaterWater
  • FireFire
  • LightLight

Sobre



    No Child Pages.

Oportun.



    No Child Pages.