Autenticação unica entre SuiteCRM ou WebAplications Alfresco e Pentaho

Problema Inicial

Desenvolvemos para um Parceiro uma solução integrada baseada nos Softwares Livres SuiteCRM , Alfresco e Pentaho que permite suporte a gestão de relacionamento com agências, Gestão de Conteúdo empresarial e Business Intelligence integrados numa única aplicação chamado, e precisávamos  que ao fazer login todos as aplicações fossem autenticadas juntamente para podemos usar “partes” de cada uma das aplicações para cada funcionalidade

Solução de Autenticação Múltipla

Usamos um único formulário de Login ( montamos em html puro ) para receber os dados de login e senha usar o mesmo POST enviado pelo submit  para fazer o POST em todos os demais ( SuiteCRM, Pentaho e Alfresco ) softwares simultaneamente , com isso ao navegar entre as soluções o usuário não percebia que estava em diversos softwares.

Obs – Ao Cadatrar usuário os usuarios e senhas devem ser idênticos em ambos o sistemas , ou usar ambos integrados a o OpenLDAP/AD.

Index.html ( multi post )

O arquivo index.html foi adicionado na pasta raiz do SuiteCRM para que o mesmo seja carregado antes do index.php nativo e com isso usamos ele como tela de login , no exemplo abaixo pode ver o fonte do arquivo onde usamos neste exemplo um sistema fictícios chamado “meusoftware” na url https://meusoftware.ambientelivre.com.br

O fonte pode ser visualizado no gitHub.

https://github.com/ambientelivre/multi-authentication/blob/master/index.html

tela-login-em-html

Imagem da Tela de Login ( index.html )

Pode verificar que no arquivo HTML são realizados 2 Submits simultaneamente usando AJAX, direcionando os dados para dois arquivos php de autenticação , a do SuiteCRM nativo e os demais um php personalizado:

  • SuiteCRM/service/v4_1/rest.php
  • Alfresco e Pentaho – ../authAlfrescoPentaho.php

authAlfrescoPentaho.php

Este arquivo recebe o POST do INDEX.HTML captura os dados de usuário e senha e faz outras requisições.

  • Alfresco : https://meusoftware.ambientelivre.com.br/share/page/dologin
  • Pentaho: https://meusoftware.ambientelivre.com.br/pentaho/j_spring_security_check

Obs. O Alfresco e Pentaho nesta caso estão sobre um proxy reverso NGIX para não apresentarem as postar do Tomcat. originalmente o Alfresco usa a porta 8080 ( https://meusoftware.ambientelivre.com.br:8080/share/ ) e o Pentaho usamos a 9090 ( https://meusoftware.ambientelivre.com.br:9090/pentaho )

Este PHP usou para autenticar o CURL e setou Cookies dos retornos para o usuário ficar autenticado. o fonte pode ser acessado no gitHub.

https://github.com/ambientelivre/multi-authentication/blob/master/authAlfrescoPentaho.php

 

Alterações para permitir o uso de IFRAME do Alfresco ( Cross-Origin )

O Alfresco tem um padrão de segurança muito bem elaborado e construído , então quando vamos fazer qualquer integração web com o mesmo , encontramos algumas dificuldades e temos de configurar diversos níveis de permissão para que isso funcione adequadamente , para que entenda o que vou adiciona abaixo recomendo fortemente  ler sobre ou conhecer os conceitos de  Cross-Origin antes de prosseguir

Para que o Cross-origin funcione deve existir estar configurações no arquivo alfresco-5.0.c/tomcat/shared/classes/alfresco/web-extension/share-config-custom.xml

<config evaluator=”string-compare” condition=”IFramePolicy” replace=”true”>
<cross-domain>
<url>http://portal.ambientelivre.com.br</url>
</cross-domain>
</config>

<config evaluator=”string-compare” condition=”SecurityHeadersPolicy” replace=”true” >
<headers>
<header>
<name>X-Frame-Options</name>
<enabled>false</enabled>
</header>

<header>
<name>X-Frame-Options</name>
<value>ALLOW-FROM http://portal.ambientelivre.com.br/</value>
</header>

<header>
<name>X-Frame-Options</name>
<value>ALLOW-FROM http://portal.ambientelivre.com.br/</value>
</header>

</headers>
</config>

 

Se ficou com alguma duvida comente o Post e posso complementar a solução.

 

 

Sobre Marcio Junior Vieira

Atualmente atua como Cientista de Dados da Ambiente Livre. Evangelista de tecnologias Open Source e Free Software desde 1999. Data Scientist, Data Engineer e Big Data Expert. Certified Pentaho Solutions Consultant. Alfresco ECM & Activiti BPM e Camunda BPM Expert. Scala, Java, PHP, Python and JavaScript Programmer.
Esta entrada foi publicada em Alfresco, Pentaho, PHP, SugarCRM, SuiteCRM. Adicione o link permanente aos seus favoritos.

3 respostas para Autenticação unica entre SuiteCRM ou WebAplications Alfresco e Pentaho

  1. Thiago Martins disse:

    Muito Obrigado, para mim isso foi muito útil.
    Porém eu consegui fazer o login apenas no SuiteCRM, no Pentaho ainda não.
    Acho que os cookies não estão sendo criados ou estão sendo criados errado.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *