Toba 2.3 y OpenID

Hola!

Soy de la Universidad Nacional de Cordoba, estamos tratando de integrar toba (pilaga y diaguita por el momento, mapuche mas adelante) para que inicien sesion mediante un servidor interno de OpenID.

Gracias a Sebastian Marconi, configuramos una instancia de toba 2.3 con pilaga 2.0.1 de desarrollo para que intente la autenticacion mediante nuestro servidor OpenID, pero al momento de ingresar, pilaga muestra el siguiente mensaje de error:

Claimed identity is not a valid identifier

y se genera esto en los logs:

Fecha: 02-01-2013 13:25:06 Operacion: Autentificaci�n de Usuarios Usuario: no_autentificado Version-PHP: 5.3.3-7+squeeze14 Servidor: 192.168.13.139 URI: /pilaga/2.0/aplicacion.php?ah=st50e45e98a3def&ai=pilaga||3555 Referrer: http://192.168.13.139/pilaga/2.0/aplicacion.php?ah=st50e45e96e313b&ai=pilaga||3555 Host: 192.168.13.161 ========== [DEBUG][pilaga] PUNTO DE MONTAJE: se carg� exitosamente el autoload del punto de montaje proyecto [DEBUG][pilaga] PUNTO DE MONTAJE: se carg� exitosamente el autoload del punto de montaje personalizacion [DEBUG][toba] [SECCION] Iniciando componentes... [INFO][pilaga] PUNTO MONTAJE: se carg� la clase login/ci_login.php del punto de montaje proyecto. El path del mismo es /var/www/2.0.1/SIU-Pilaga/proyectos/pilaga/php [DEBUG][toba] Mensaje a usuario: Claimed identity is not a valid identifier [DEBUG][toba] componente(2372): Pantalla de eventos: 'login' [DEBUG][toba] [SECCION] Procesando eventos... [DEBUG][toba] componente(2372): [ inicializar_dependencias ] array ( 0 => 'openid', ) [DEBUG][toba] [SECCION] Configurando dependencias para responder al servicio... [DEBUG][toba] componente(2372): Pantalla de servicio: 'login' [DEBUG][toba] componente(2372): [ callback ] 'conf__login' [DEBUG][toba] componente(2372): [ callback ] 'conf__openid' [DEBUG][toba] [SECCION] Respondiendo al servicio__generar_html...

Desde ya, muy agradecido por la/s respuesta/s

EDIT:
Agrego el contenido del archivo instalacion/openid.ini

[basicos]
;permite_login_toba = 1                                         ;Permite loguearse usando la table apex_usuario de la base de toba
;crear_usuario = 1                                                      ;Crear usuario automaticamente al loguearse por primera vez
;crear_usuario_proyecto = toba_referencia       ;Solo crear usuarios al loguearse por primera vez en este proyecto
;crear_usuario_perfil_funcional = Usuario       ;Perfil funcional del proyecto
campo_usuario = cuil                                            ;Que campo
campo_nombre = "nombre apellido"

;;;;;;;;;; CAMPOS ;;;;;;;;;;;;;;;;

;[campo_email]
;atributo = EMAIL
;requerido = 1

;[campo_nombre]
;atributo = FIRSTNAME
;requerido = 1

;[campo_apellido]
;atributo = LASTNAME
;requerido = 1

[campo_cuil]
atributo = NAMESUFFIX
requerido = 1

;[campo_legajo]
;atributo = NAMEPREFIX
;requerido = 0

;;;;;;;;;; PROVIDERS ;;;;;;;;;;;;;;;;

[provider_unc]
nombre = OpenID UNC
url = http://openid.unc.edu.ar:8080/openaselect/profiles/openid/

;[provider_google]
;nombre = Google
;url = https://www.google.com/accounts/o8/id

;[provider_otro]
;nombre = Otro
;url = http://
;personalizable = 1

Al parecer el error es porque la libería (poidsy) no encuentra la URL especificada en el openid.ini
https://github.com/csmith/Poidsy/blob/master/processor.php#L173
Puede pasar que desde PHP no puede resolver la url, deberías probar si desde el servidor responde un ping el servidor openid, o si es un linux hacerle un wget a la url logueado con el usuario www-data

si, desde el servidor puedo hacer un wget hacia openid y opbtengo respuesta, te transcribo la sesion:

www-data@aioros:~$ pwd
/var/www
www-data@aioros:~$ wget http://openid.unc.edu.ar:8080/openaselect/profiles/openid/
--2013-01-02 14:02:35--  http://openid.unc.edu.ar:8080/openaselect/profiles/openid/
Resolviendo openid.unc.edu.ar... 200.16.16.141
Connecting to openid.unc.edu.ar|200.16.16.141|:8080... conectado.
Petici�n HTTP enviada, esperando respuesta... 200 OK
Longitud: 1018 [text/html]
Saving to: `index.html'

100%[======================================================================================================================================================>] 1.018       --.-K/s   in 0s      

2013-01-02 14:02:35 (200 MB/s) - `index.html' saved [1018/1018]

www-data@aioros:~$ 

Agrego aqui abajo el log de poidsy, en caso de que ayude…


[Wed, 02 Jan 2013 14:10:12 -0300] processor.php:63 process(): Processing authentication attempt for http://openid.unc.edu.ar:8080/openaselect/profiles/openid/
[Wed, 02 Jan 2013 14:10:12 -0300] discoverer.inc.php:158 Discoverer->discover(http://openid.unc.edu.ar:80...): Performing discovery for http://openid.unc.edu.ar:8080/openaselect/profiles/openid/
[Wed, 02 Jan 2013 14:10:12 -0300] discoverer.inc.php:166 Discoverer->yadisDiscover(http://openid.unc.edu.ar:80...): Attempting Yadis discovery on http://openid.unc.edu.ar:8080/openaselect/profiles/openid/
[Wed, 02 Jan 2013 14:10:12 -0300] discoverer.inc.php:181 Discoverer->yadisDiscover(http://openid.unc.edu.ar:80...): Unable to open stream
[Wed, 02 Jan 2013 14:10:12 -0300] discoverer.inc.php:276 Discoverer->htmlDiscover(http://openid.unc.edu.ar:80...): Performing HTML discovery on http://openid.unc.edu.ar:8080/openaselect/profiles/openid/
[Wed, 02 Jan 2013 14:10:12 -0300] discoverer.inc.php:281 Discoverer->htmlDiscover(http://openid.unc.edu.ar:80...): Unable to open stream
[Wed, 02 Jan 2013 14:10:12 -0300] processor.php:173 tryDiscovery(http://openid.unc.edu.ar:80...): Couldn't perform discovery on http://openid.unc.edu.ar:8080/openaselect/profiles/openid/

Al parecer no queda otra que ponerse a debuggear el archivo php/3ros/poidsy/discoverer.inc.php y tratar de ver porque no puede parsear el html.
Quizas falla el fopen de esta linea https://github.com/csmith/Poidsy/blob/master/discoverer.inc.php#L278
proba sacarle el @ de enfrente a ver si tira algun error. Yo iria haciendo var_dump de esas llamadas para ver donde se rompe

Hola,

fijate si en php.ini no tenes lo siguiente:


allow_url_fopen = Off

Tiene toda la pinta que sin eso poidsy no funca.

Saludos

Humm segun tengo entendido, esa linea lo que hace es abrir el archivo de log.
EDIT: Efectivamente, al comentar esa linea no genera logs.
Lo de var_dump es una buena idea, la pongo en practica!

Esa linea esta tal cual, lo que si no te entendi si es que tiene que estar Off u On

Proba pasarlo a


allow_url_fopen = On

Y reiniciar apache. Esta configuración es una medida de seguridad para evitar ataques de inclusión remota de archivos (explotando alguna otra supuesta vulnerabilidad previa de algún sistema), pero por como trabaja esta librería de openid requiere que este en On

Me di cuenta que no teniamos casi nada de documentación de esto. Agregue una nueva entrada exclusiva de openid, espero que sirva

Buen día. Utilizo este hilo para consultarles donde puedo encontrar info respecto de la autenticacion CAS???.
Desde ya gracias
Saludos

Hola Carolina,

de parte de toba como lo integramos al framework (a partir de 2.4), la idea seria modificar el parametro autenticacion dentro del archivo instalacion.ini.

Hay que tener en cuenta que si el proyecto desde el contexto de ejecucion fuerza un tipo de autenticacion explicito, este seteo no sera tomado en cuenta.

Con respecto a CAS, te sugeriria que sigas los lineamientos de JASIG para el deployment del servidor, para una prueba rapida suele ser bastante sencillo de instalar… pero para un ambiente de produccion seguro va a llevar mas trabajo.

Saludos