Casiva Agustin

Engineering, Development and IT Management

Hi there! 馃憢

I’m Agustin Casiva, I’m a Software Engineer from Argentina.

I have been working on IT for many years now, I worked in many fields of the industry, such as hardware support, networking, sysadmin but what I do love most is development.

I have worked for many organizations, public and private, local and remote, filling many roles.

My expertise is on Web Development, Linux, Open Source, CMSs, HTML, CSS, PHP, JavaScript, Backend Development, Product Development, Project Management, Team Leading, among others.

In 2013 I have founded 42mate, a Web Development Agency focused on the design, development, maintenance of Web Apps. I still work on 42mate where I work leading development teams and scoping new projects.

Besides 42mate I also work as an independent consultant where I provide services such as

  • Development Training, for individuals or teams.
  • Architecture Design and Review.
  • Tech Advisor for non tech startup founders.
  • Tech Advisor for Digital Design Agencies.

If you are interested on my services let’s talk!

More about me

sfGuard con LDAP

Ayer me vi en la necesidad de pasar el control de usuarios de un sistema que utiliza el sfGuardPlugin por una base Ldap (Active Directory). Para eso me puse a investigar un poco como hacerlo y v铆 que el famoso plugin provee de un mecanismo para enganchar una funci贸n personalizada para el chequeo del password, dicha funci贸n personalizada es la que debe realizar la autenticaci贸n del username/password contra el controlador de Dominio; si esta devuelve verdadero significa que el usuario fue validad correctamente, si devuelve falso quiere decir que no. Una consideraci贸n a tener en cuenta es que el usuario debe existir dentro de la tabla sf_guard_user por que primero verifica la existencia del username y la autenticaci贸n la realiza contra el Controlador de Dominio.

Para poder empezar necesitamos una cuenta v谩lida para bindearnos al arbol LDAP y poder hacer una busqueda por el username (pidanselo a su “amigo” sysadmin). De mas esta decir que debemos tener un Controlador de Dominio funcionando. Tambien deber谩n tener las extensiones de ldap para PHP, si estan en un debian/ubuntu instalen el paquete php5-ldap.

Paso siguiente es cargar en la base de datos del sistema local todos los nombres de usuario que podr谩n usar nuestro sistema y que estan en el arbol LDAP, consideren que si quisieran que cualquier usuario definido en el ldap pueda loguearse puedan sincronizar la informaci贸n o dar de alta al usuario en la base local autom谩ticamente si este no existe la primera vez que intenta loguearse.

El tercer paso es crear una Clase dentro de lib (para que la tome el autoloader de symfony) que posea un m茅todo est谩tico llamado checkPassword el cual deber谩 recibir como argumentos el username y el passoword. 聽Esto deber铆a quearles algo asi

NOTA: Corregir en el ejemplo los Distinguished Names por los que correspondan en tu arbol ldap.

El paso final es configurar dentro de la configuraci贸n de tu aplicaci贸n (donde usar el sfGuardAuth) editar el archivo app.yml y especificar que vas a usar la clase LdapLogin y el m茅todo checkPassword.

all:
  sf_guard_plugin:
    check_password_callable: [LdapLogin, checkPassword]

Con esto el control de validaci贸n user/pass deber铆a ir al controlador de dominio integrando asi tus aplicaciones.

Mas info en http://www.symfony-project.org/plugins/sfGuardPlugin

Leave a Reply

Your email address will not be published. Required fields are marked *

*