Gracias por tus respuestas, Sergio!
El uso de la pw que comentas es porque estoy probando sobre un portal
que a su vez
debe de tener la pw del usuario en un principio para conectarse sobre
otro servicio.
Ya me funciona pero no de una forma del todo académica :-) Ver abajo.
Ahora quiero que al hacer un logout en el AS borre los cookies en los
PoA donde
se ha validado. ¿Hay que generar una página de imágenes con los cookies
caducados?
Saludos,
Agustin
----------------------------------------
<Location /cgi-bin/>
Options Indexes
Order allow,deny
Allow from all
require valid-user
AuthType PAPI
AuthName "PAPI Auth"
PAPIServiceID xxxxxx
PAPIAcceptFile /usr/local/PAPI/PoA/images/image_ok.png
PAPIRejectFile /usr/local/PAPI/PoA/images/image_nok.png
PAPILcookTimeout 18000
PAPIURLTimeout 1800
PAPIAuthLocation cookie_handler.cgi
PAPIWAYF built-in
PAPIKeysPath /usr/local/PAPI/PoA/KEYS/
PAPIAS UVAS https://as.uv.es/cgi-bin/AuthServer Universitat de Valencia
PAPILazySession Off
PAPIRemoteUserAttribute username
PAPIReqDB /usr/local/PAPI/PoA/xxxxxx.mldbm
PAPIReqDBPath /usr/local/PAPI/PoA/
</Location>
En el src:
site::xxxxxx::xxxxxx protegido modulo C
APACHE::https://yyy.uv.es::/cgi-bin/papilogin::7200::xxxxxx::/::
/cgi-bin/xxxxxx/main/papi/::
El 05/07/2010 9:28, Sergio Gómez escribió:
> 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...
>>>>>
>>>>>
>>>>>
>>>
|