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
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
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
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
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.