On Sun, 2010-07-04 at 17:17 +0200, Agustin Lopez wrote:
>
> Gracias Sergio!
>
> Curiosamente sólo me aparece en el CGI la variable REMOTE_USER cuando
> pongo
> PAPILazySession Off
Las cosas de no documentar... es que estas cosas las hablamos en su día
en la lista y ya me descuidé. Está claro que debo meterle mano a eso,
pero tiempo es que no sé de donde sacarlo.
Las sesiones Lazy no se inician automáticamente, hay que indicar en la
URL que vamos a iniciar sesión. Se usan para servicios web que pueden
ser accesibles aunque el usuario no esté identificado.
Para activar las LazySession necesitas poner un Link en la web que
apunte a:
<a
href="http://servidor.dominio.es/directorio/PAPI/cookie_handler.cgi?target=URL_DE_RETORNO"
>Iniciar sesión</a>
Lo que interesa de esa URL es el parámetro target al cookie-handler de
PAPI.
Si se pulsa sobre el enlace se comienza la identificación en PAPI y
cuando termine, la web que se carga es la URL_DE_RETORNO. Que puede ser
la página principal de la aplicación o cualquier otra.
> Además aparecen las siguientes variables:
> HTTP_X_PAPI_ASID=UVAS
> HTTP_X_PAPIATTR_USERNAME=pepito
> HTTP_X_PAPIATTR_PASSWORD=xxxxxx
>
> Quizá es algún problema con mi modpapi.
Cuando te identificas, tanto el papi de perl, como mod_papi, crean un
HTTP_X_PAPIATTR por cada atributo que manda el AS encriptado en la
LCOOK.
Así que el AS está mandando el atributo password...
Para que el REMOTE_USER funcione, debes poner
PAPIRemoteUserAttribute username
ya que, como te comenté, por defecto busca uid.
> Donde puedo bajar la versión que usais vosotros de modpapi?
Es la misma que la de la forja.
> Saludos,
> Agustín
>
>
>
>
> Sergio Gómez escribió:
> > Por defecto, mod_papi espera que llegue codificado en la LCOOK un
> > atributo uid, ese atributo es usado para crear REMOTE_USER. El AS debe
> > ser el que envíe el uid. Si el AS envía otro atributo distinto (como
> > ePTI), solo tienes que indicarle cual es con
> >
> > PAPIRemoteUserAttribute
> >
> > en la configuración de mod_papi
> >
> > Un saludo,
> >
> > On Fri, 2010-07-02 at 13:44 +0200, Agustin Lopez wrote:
> >
> > > Hola de nuevo!
> > >
> > > Estoy usando mod_papi como comentas pero no me llega REMOTE_USER si uso
> > > el modo PAPIWAYF built-in.
> > >
> > > ¿Teneis idea de a qué puede deberse?
> > >
> > > Muchas gracias,
> > > Agustín
> > >
> > >
> > > > Proteges el Location de tu aplicacion con mod_papi configurado en modo
> > > > 'lazy' y al
> > > > pinchar en Login, rediriges. Si vuelve ya autenticado, mod_papi te
> > > > habra definido
> > > > $_SERVER['REMOTE_USER']. Por tanto una de las primeras cosas que debe
> > > > hacer
> > > > tu aplicacion es ver si esa variable tiene valor y si es asi,
> > > > considerar que ya esta
> > > > autenticado. No haria falta que mantengas cookies locales. Si lo
> > > > haces, al pinchar el
> > > > usuario en 'logout' no basta con borrarlas, porque puede volver a
> > > > pinchar en 'Login'
> > > > y volveria a entrar sin pedirle usuario/clave por las cookies de PAPI.
> > > > El boton de
> > > > logout debe forzar el logout de PAPI para que no pase eso.
> > > >
> > > > La config. es algo como:
> > > >
> > > > <Location /cgi-bin/XXX>
> > > > AuthType PAPI
> > > > PAPILazySession On
> > > > PAPIRemoteUserAttribute ePTI # El atributo de PAPI del que sacar
> > > > 'REMOTE_USER'
> > > > Require valid-user
> > > > PAPIServiceID XXX_svcid
> > > > ...
> > > > PAPIGPoAURL ...
> > > > </Location>
> > > >
> > > > Y en la aplicacion (Consigna es PHP pero es parecido):
> > > >
> > > > if (!array_key_exists('REMOTE_USER',$_SERVER)) {
> > > > header("Location: " . <URL-de-tu-aplicacion>.
> > > > "/PAPI/cookie_handler.cgi?target=" .
> > > > urlencode($GLOBALS["script_name"]));
> > > > exit;
> > > > }
> > > >
> > > > // Aqui esta autenticado, solo algo 'superior' (mod_papi) ha podido
> > > > poner $SERVER['REMOTE_USER']
> > > > ...
> > > >
> > > > Un saludo
> > > >
> > > > P.D.: Disculpad la ausencia de acentos, mi PC tiene un problema con
> > > > ellos...
> > > >
> > > >
> > > >
> >
> >
>
--
Sergio Gómez Bachiller <[log in para visualizar]>
Operador, Servicio de Informática
Universidad de Córdoba
Edificio Ramón y Cajal
Campus de Rabanales
Telf: 957 21 2132 Fax: 957 21 8116
|