Archivado en la categoría (Identidad Digital, PAPI) por Teresa
Publicado el 28-02-2010

El componente icGPoA de PAPI está experimentando un auge de popularidad en los últimos meses gracias a la labor de RedIRIS en su federación de identidad digital SIR.

Pero, ¿qué es un icGPoA?. Éste es un componente sencillo, extremadamente sencillo (y en cuanto se complique dejará de tener éxito), que permite actuar como GPoA o AS.

escenario

Así, el icGPoA sólo es capaz de responder a los siguientes mensajes:

  • Mensaje ATTREQ de GPoA a AS: este tipo de mensaje solicita una lista de atributos del usuario.
  • Mensaje CHECK de PoA a GPoA: donde el PoA solicita al icGPoA información de autenticación y atributos.

Para generar estas respuestas, el icGPoA sólo necesita una lista de atributos del usuario y una clave privada para firmarla (sobre esto ya hablaremos otro día…). En PHP tiene la siguiente «complejidad»:

if (isset($_REQUEST[«ACTION»])) {
$theRef = $_REQUEST[«DATA»];
}
else {
$theRef = $_REQUEST[«PAPIPOAREF»];
}
$assertion = «attrA=val1,attrB=val2|val3@ID_AS»;
$now = time();
$ext = $now + 3600;
$reply = $assertion . «:» . $ext . «:» . $now . «:» . $theRef;
$safe = openssl_encrypt($reply, $pKey);

El resultado es la compatibilidad con el protocolo PAPI en muy pocas líneas de código. Obviamente no es un componente que escale, pero no se ha pensado para usarse como sistema de identidad digital en una organización sino como un sencillo conector fácilmente adaptable hacia una federación basada en PAPI.
Todavía no hemos hablado de cómo autentica al usuario… ¡de ninguna forma! Otro de los grandes éxitos del icGPoA es que delega a la organización que lo está desplegando la decisión de cómo realizar la autenticación del usuario, puesto que en la mayoría de los casos dicha organización ya tiene un procedimiento para ello. Existen dos formas típicas de incluir la autenticación del usuario:
  • Protegiendo el icGPoA, bien usando nuestro sistema favorito de Single Sign-On como simpleSAMLphp u Oracle Single Sign-On (OSSO), o bien utilizando módulos de Apache como mod_ldap o mod_auth (a través de un .htpassword). Sea cual sea el sistema, siempre obtenemos una referencia que identifica al usuario, como por ejemplo la cabecera REMOTE_USER en la petición HTTP. Gracias a esto podemos emitir los atributos en función de cada usuario.
  • Incluyendo el típico formulario HTML, donde el usuario pondrá su nombre y contraseña y se le comprobará en la tecnología que hayamos decidido.

Aunque ya está siendo utilizado por más de 30 organizaciones, no existe una versión «oficial» que descargarse. Esperemos que en breve podamos anunciar una URL en este blog.

Escribe un comentario

You must be logged in to post a comment.