Tag Archives: php

Autenticar usuarios usando Active Directory(LDAP) en SugarCRM

Hoy me tocó instalar la actualización 5.5 de Sugar, la última versión que estabamos utilizando era la versión 5.2 y pues habíamos identificado algunos problemas en esa versión.

Bueno, así que instalé Sugar 5.5 y cuando estaba a punto de importar los usuarios de la instalación pasada noté que se podían logear los usuarios usando LDAP o Active Directory de Microsoft.

Aprovechándo que aquí en la empresa cuentan con un servidor con Active Directory me aventuré a probar, y recurriendo a estos vínculos:

http://www.sugarcrm.com/forums/showthread.php?t=31950&highlight=ldap

http://www.sugarcrm.com/wiki/index.php?title=Integrating_SugarCRM_with_Windows_Active_Directory

http://zhalbrecht.webfactional.com/blog/2008/03/05/configuring-ldap-authentication-using-sugarcrm-and-active-directory/

http://www.sugarcrm.com/wiki/index.php?title=Authenticate_with_LDAP_through_SOAP

Pues acabé con una configuración como ésta:

Server: xxx.xxx.xxx.xxx (la ip del servidor pues éste se encuentra en la intranet)

User DN: CN=Users, DC=example, DC=com (el Active Directory (?) donde se encuentran los usuarios lo podemos identificar usando http://www.ldapbrowser.com/, solo tenemos que identificar el directorio que alberga a los usuarios).

Port: 389 El puerto en el que normalmente escucha LDAP

Bind Attribute: cn <– algunos también consiguieron que funcionara con userPrincipalName, yo recomendaría probar con los dos dígitos que preceden al directorio de los usuarios en User DN, en este caso cn.

Login Attribute: samaccountname <– Podría ser userPrincipalName también ó  sAMAccountName, prueben con todos.

Authentication (marcado).

User Name: user@example.com Este debe ser un usuario con acceso a explorar todos los usuarios, he encontrado referencias a que éste usuario debe ser un usuario administrador del dominio pero en mi caso funcionó con un usuario común, nótese que al final del nombre de usuario agrego el dominio, si en login attribute han escrito samaccountname no debería ser necesario añadir el dominio al logearse en SugarCRM, y esto lo pueden comprobar también usando LDAP Browser, miren los atributos de cada usuario.

Password: **********

Y pues esto es todo, los comentarios son bienvenidos 🙂

Como instalar php 5.2.11 en Centos usando YUM

Al parecer la última versión de php que se encuentra en los repositorios oficiales de Cent OS es la versión 5.1.6, y pues ahora que quiero instalar SugarCRM 5.5 necesito al menos una de las versiones 5.2.x pero sin llegar a las 5.3.x pues hay serias incompatibilidades con éstas. Yo mismo he experimentado éstos problemas cuando instalé Xampp con php 5.3.0 y prestashop no funcionaba.

En fin, ya que php 5.2.x no se encuentra en los repositorios oficiales debemos agregar un repositorio a los que yum tiene a su disposición. Me he basado en los siguientes artículos:

http://bluhaloit.wordpress.com/2008/03/13/installing-php-52x-on-redhat-es5-centos-5-etc/#comment-635

http://www.jasonlitka.com/yum-repository/

Utilizaremos las instrucciones del segundo vínculo que el primero por defecto nos muestra como instalar php 5.3.x y de ninguna forma les aconsejo que lo hagan a menos que sepan muy bien lo que hacen.

Primero agregaremos el repositorio:



nano -w /etc/yum.repos.d/utterramblings.repo

Agregamos éstos contenidos:

Nótese que asumo que usas Centos 5 y una arquitectura i386 (en el artículo arriba puedes encontrar instrucciones específicas para otras versiones/arquitecturas), además de que por defecto estoy declarando el repositorio como desactivado para evitar problemas de dependencias.


[utterramblings]
 name=Jason's Utter Ramblings Repo
 baseurl=http://www.jasonlitka.com/media/EL5/i386/
 enabled=0
 gpgcheck=1
 gpgkey=http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka

Ahora ya estamos listos para hacer:


# yum upgrade php --enablerepo=utterramblings

Useful snippets in Joomla

Return a full page error, good for using when there is no way to get into some kind of requests combination from the normal page flow. (as for hacking the requests)

JError::raiseError( 404, 'Contact not found' );
return;

We can place this snippet at the start of our view.html.php to allow only registered users to have access to this content, and we can allow guest just changing the $accessLevel variable, you could easily load that variable from the component xml configuration.

$user        = &JFactory::getUser();
// $accessLevel for guests 0, for registered users 1
$accessLevel = 1;
if (($accessLevel > $user->get('aid', 0))) {

$uri        = JFactory::getURI();
$return        = $uri->toString();

$url  = 'index.php?option=com_user&view=login';
$url .= '&return='.base64_encode($return);
$mainframe->redirect($url, JText::_('You must login first') );

}

That snippet called from a view class returns a JParameter object with the parameters that belong to config.xml in the administrator side (The ones that are settable using the component preferences dialog) and (something I didn´t realize until) the parameters belonging to the actual view layout, usually default.xml inside com_mycomponent/view/tmpl/default.xml.

global $mainframe;
$params = &$mainframe->getParams('com_mycomponent');