Bienvenido a mi site personal, donde encontrarás un blog sobre mis proyectos y experiencias en el mundo de internet y la programación web.

Al mismo tiempo podrás ver mi portfolio profesional y personal, con una infinidad de trabajos que he realizado y proyectos en los que he colaborado.

Mas Sobre mi Ver mi trabajo

Tutorial login externo usando API de Google – 2 -

Tutorial login externo usando API de Google – 2 -

Ya he explicado en un post anterior las diferentes versiones que tiene la API de Google para realizar login externos.
A mi me llevó mucho tiempo de investigación para documentarme y realizar pruebas con cada tipo de login.

Ni siquiera en los grupos de Google fueron capaces de ayudarme: Login Users with Google Apps Mensajes.

Al final llegue a descubrir que el que necesitaba era el método Sing-on (SSO) o Security Assertion Markup Language (SAML).

NOTA1: Antes de copiar el código tenéis que verificar si es el tipo de Login que necesitáis.
Este tipo de login no vale para las versiones standard, y si tenéis esa versión deberéis probar con otro tipo.

NOTA2: Antes de nada tenéis que documentaros y ver los tipos de login que ofrece la API de Google en mi antiguo post: tutorial login externo usando API de Google

Código para realizar login con Sign-on SSO

descarga el código fuente aquí:

rar
Descargar Ejemplo Completo Login Google Apps con SSO.rar - Descargado 238 veces

Gracias a Gon que me estuvo ayudando a mi I+D ;)

Posts Relacionados:

  1. acortar urls o reducir el tamaño de un link con la api de linkinho
  2. Indexar las búsquedas full-text con Sphinx. Tutorial como usar Sphinx
  3. integra google talk en tu web
  4. Tutorial login externo usando API de Google

Posted in: PHP on Julio 31, 2009 by PedroVentura. Tags: ,

Comparte este post o deja un comentario si te ha resultado útil!!

| | | | |

Url acortada con Linkinho

    http://www.linkinho.com/rLh

Visitar el site: linkinho.com

13 Comentarios en “Tutorial login externo usando API de Google – 2 -”

  1. Harold dice:

    Hola pedro, estaba revisando tu código y encuentro en saml_util.php que aparece un archivo xml dentro de un directorio templates, ese archivo que hace o que es?

  2. Pedro Ventura dice:

    Buenas hiro,

    muchas gracias por tu comentario y aportación!!

    Soy consciente que es posible que mi código está algo des-actualizado y está muy personalizado con lo que yo hice, pero me alegro que lo hayas conseguido!!! se que es un tremendo lio!

    Si luego quieres postear o colgar algún código de ejemplo adicional me lo dices y lo haré encantado. Puedo hacer referencia, si tienes, a tu web o blog.

    Un saludo!

  3. hiro dice:

    El siguiente paso es validar el usuario, y contraseña contra la propia base de datos de google.

    Supongo que la forma mas correcta es hacerlo con OAUTH…
    Si tengo exito ya os pasaré mi código.

  4. hiro dice:

    Hola Pedro,

    He estado un par de dias peleandome con tu codigo, y por fin he conseguido que me funcione. Te quedo muy agradecido, por que con tu código me quedan las cosas bastante claras.

    De todas formas os comento los problemas que he tenido, por si pueden ayudar a alguien.

    Lo primero, la instalación del “xmlsec1″ que se usa para firmar el xml, en nuestros servidores no estaba instalado, y instalandolo con el yum no funcionaba. Finalmente era por culpa de la version de las librerias “libxml2″ que eran demasiado antiguas.

    También me he liado un poco por que en el zip de tu ejemplo usas un fichero .key para la variable $pubKey
    y por lo que he visto tiene que ser un fichero .cer para que la aplicacion “xmlsec1″ lo pueda codificar

    Aparte he tenido que regenerar mis claves de firma, por que las que tenía generadas para usar con la aplicación de rnd.feide.no eran RSA en lugar de DSA para que puedan ser usadas por la aplicación “xmlsec1″

    Aqui explican esto ultimo:
    http://markmail.org/message/itz7eybyfurvdt3o#query:xmlsec%20Error%3A%20failed%20to%20load%20public%20key%20from+page:1+mid:qgmnycgd5chbvtsg+state:results

  5. Pedro Ventura dice:

    Pues mira he estado buscando algo sobre el ClientLogin en .Net

    He encontrado esto que son códigos de ejemplo con la librerías en .NET para la API de Google, echa un ojo al código, porque parece que tiene buena pinta.
    http://code.google.com/p/google-gdata/
    Con estas librerías parece que puedes gestionar todos o casi todos los servicios de Google en .Net:

    * Base
    * Blogger
    * Calendar
    * Spreadsheets
    * Google Apps Provisioning
    * Code Search
    * Notebook
    * Picasa Web Albums
    * Document Feed
    * Contacts
    * You Tube
    * Google Health

    Además encontré esta documentación que está bien porque viene códigos de ejemplo en .Net
    http://code.google.com/intl/es-ES/apis/gdata/docs/auth/clientlogin.html

    También he encontrado este desarrollo de una empresa u otros programadores que es un SDK para construir apps en .Net , échale un ojo porque también tiene buena pinta.

    http://code.google.com/p/lokad-sdk/

    Ya me contarás.

    Un saludo!

  6. Juan Carlos Gutierrez dice:

    Hola Pedro, estuve buscando y encontre algo sobre ClientLogin API de google, es para aplicaciones instaladas (no web obviamente), creo que podria servirme esto, te dejo la URL para que la revises y me des tu opinion y si se puede me puedan dar mas luces sobre el tema.

    http://code.google.com/intl/es-ES/apis/accounts/docs/AuthForInstalledApps.html

  7. Hola Hiro,

    usar el sistema simpleSMALphp de rnd.feide.no es lo peor yo estuve un par de semanas probando su código y fue mas o menos perder el tiempo.

    Hiro, lo realmente complicado es lo que preguntas y lo que yo lleve mucho tiempo para desarrollar. Es decir logear desde un servicio o web externa y acceder a Google Apps. Lo bueno es que si el formulario de login esta en tu server lo puedes personalizar como quieras.

    Sobre el login lo que tienes que hacer es primero comprobar en tu base de datos, esto es algo fundamental, pues el SSO no comprueba la contraseña sino si exite el usuario.

    Por lo que el proceso, cuando yo hice todo esto, era el siguiente:

    1.- El usuario se logea a través de un formulario en tu server.

    2.- Los datos que ha introducido los compruebas en tu propia base de datos. Por lo que cuando el usuario cambie la contraseña la tendrá que cambiar en tu máquina.

    3.- Después usas el SSO y mandas el nombre del user a GA

    El tema es que primero tienes que comprobar si el usuario existe en tu base de datos y el login y pass estan bien (en tu BBDD), después solo pasas el login a GA, ya que sólo se comprueba el login.

    Esto es lo que yo investigué y lo que yo llegue a implementar y funcionaba.

    Creo que la API tenía un método para recoger la password de GA, pero no estoy muy seguro.

  8. Juan Carlos Gutierrez dice:

    Hola, buen ejemplo, pero como podría hacer si quiero utilizar el SSO desde una aplicacion Desktop cliente/servidor, por ejemplo en el colegio donde trabajo los sistemas estan en .Net Cliente/Servidor, como podria implementar el SOO en ese escenario.

  9. JR dice:

    Muchas gracias, muchiiisimas garcias, buenísimo artículo, muy util.

  10. [...] actualización: He colgado el código que he usado. Podéis ver el post con el ejemplo completo en tutorial login externo usando API de Google 2 [...]

Deja tu comentario

Nombre:

Email (no será publicado)

Website

Comentario

Deja tu comentario usando FacebookConnect