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.

Así, el icGPoA sólo es capaz de responder a los siguientes mensajes:
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);
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.
Hemos añadido una nueva sección a la web de PRiSE: Casos de éxito. En esta sección iremos mostrando algunos de los proyectos en los que hemos participado y que, bien por el alcance del mismo o bien por su solución técnica, nos gustaría comentar.
El primer caso del que hablamos es la solución desplegada a la empresa norteamericana de McGohan Brabender, que gestiona wellvibe.com, un portal médico de detección y seguimiento orientado a trabajadores, el cual necesita utilizar el servicio de formulario de evaluación de riesgos para la salud, de Wellsource. La solución por la que optamos fue desplegar un simpleSAMLphp y hacer la interconexión utilizando SAML 2.
Un perfil en OAuth especifica las credenciales que deben enviarse al Servidor de Autenticación y cómo las obtendrá el Cliente.
Dentro de los perfiles ya establecidos existen dos tipos: Perfiles de Clientes Autónomos (Autonomous Client Profiles), donde el Cliente actúa en su nombre y Perfiles de Delegación del Usuario (User Delegation Profiles), donde el Cliente actúa en nombre de un usuario determinado.
Los perfiles de Clientes Autónomos son dos:
Perfil de cuenta de Cliente con contraseña (Client Account and Password Profile):
Este perfil se utiliza cuando el Cliente es una aplicación que necesita un Recurso Protegido en nombre de una organización y el Servidor de Autorización acepta cuentas y contraseñas como método de autenticación.
Perfil de Aserción: (Assertion Profile)
Este perfil autoriza al cliente con una aserción, ya sea SAML u otro tipo que reconozca el Servidor de Autorización. El cliente presenta esta aserción al Servidor de Autorización y se intercambiarán por el Token de Acceso que permitirá acceder al recurso protegido.
Existen tres tipos de perfiles de Delegación del Usuario:
Perfil denombre de usuario y contraseña (Username and Password Profile):
El usuario da su nombre de usuario y contraseña a la aplicación Cliente que tiene instalada en su dispositivo. Con estos datos, el Cliente presenta sus credenciales al Servidor de Autorización para así intercambiarlas por un Token de Acceso que le permita acceder al recurso protegido.
Perfil Aplicación Web (Web App Profile)
Consiste en que el usuario se autentique de alguna forma determinada establecida de antemano en la aplicación web Cliente. Este perfil se utiliza cuando el Cliente es una aplicación web que accede al Recurso Protegido en nombre del usuario sin necesidad de adquirir las credenciales de los mismos.
Rich App Profile:
Se utiliza cuando el Cliente es una aplicación que el Usuario ha instalado en un dispositivo y está disponible en él un navegador web, pero el usuario no desea dar su nombre de usuario y contraseña a una aplicación o no necesita estos parámetros para autenticarse en el Servidor de Autorización.
Anoche, un poco antes de las 20h, empecé un pequeño proceso de investigación sobre el servicio Cercador d’expertes (buscador de expertas). Un directorio del Institut Català de les Dones (ICD, Instituto Catalán de las Mujeres) para que los medios de comunicación se puedan poner en contacto con mujeres expertas en una determinada materia.
Mi primera búsqueda fue en la APDCAT. Al tratarse de un organismo público de Catalunya, las competencias de los ficheros de protección de datos son de la agencia autonómica.
Diferentes búsquedas con diferentes valores en los diversos campos no dan ningún resultado exitoso. Así que envié un correo al ICD a través de su formulario de contacto. Recuerda, todo esto fuera de su horario laboral.
Pues bien, esta mañana a las 9.15, recibo una llamada del ICD para aclararme la situación y darme todos los datos necesarios para saber de la creación del necesario fichero.
Resumiendo: http://www.gencat.cat/diari/5256/08284057.htm
Impresionante. Yo aún sin tomarme el café y en el ICD ya había funcionado correctamente los procedimientos necesarios para que un usuario tuviera respuesta sobre una consulta en Protección de Datos.
Y es que un personal bien formado en la materia que tratamos hace que los procedimientos funcionen: que un correo, una consulta a través de un formulario, sea recibido o traspasado a la persona que debe realizar una determinada acción o a la que tenga el conocimiento necesario para resolver la consulta, depende del buen funcionamiento de la organización.
Es muy fácil que la organización tenga un buen documento de seguridad, unos procedimientos perfectamente redactados. Pero no es tan fácil que toda esa documentación llegue a todo el personal.
Lo triste de todo, que me sorprenda justamente que funcione bien. ¿No debería ser lo más normal?. Y un gustazo, una llamada para que no quede dudas de ningún concepto
Haciendo hincapié a mi búsqueda en la APDCat, he vuelto a buscar según los campos: DOGC 5256, obteniendo un resultado de 1021 resultados… Y teniendo en cuenta que una búsqueda más específica tampoco resultó, he realizado una consulta directamente a la APDCat para conocer como se debe realizar la esperada búsqueda.
Como comentábamos en otros posts, OAuth nos ofrece numerosas posibilidades a la hora de implementar la autorización y autenticación en nuestras aplicaciones.
En esta entrada vamos a comentar una extensión que está siendo definida actualmente y que amplía nuestra perspectiva a la hora de utilizar este protocolo.
Hablamos de OAuth WRAP (OAuth Web Resource Authorization Profiles), la cual nació para intentar simplificar a OAuth, eliminando sus procesos de firma y reemplazándolas por tokens de corta duración sobre SSL/TLS.
WRAP no pretende sustituir a OAuth, pero sí añadir nuevas características que completen y desarrollen elementos de los cuales carece el protocolo en su versión original.
Esta extensión permite la delegación de la autorización de recursos protegidos a una o más autoridades de confianza. Los Clientes que desean acceder a un Recurso Protegido primero obtienen autorización de un Servidor de Autorización, enviando para ello unas credenciales y perfiles determinados.
Una vez autorizados, el Cliente obtiene un Token de Acceso (Access Token) firmado digitalmente que podrá ser reemitido en caso de ser necesario y que permitira, como su nombre indica, acceder a los recursos protegidos.
OAuth WRAP define distintos perfiles que especifican las credenciales que deben enviarse al Servidor de Autenticación y cómo las obtendrá el Cliente. Es posible especificar perfiles propios e incluso adoptar los que ya están establecidos. En posteriores posts os comentaremos algunos de ellos.
En el laboratorio de I+D de PRiSE hemos estado trabajando en un sencillo test de rendimiento de directorios virtuales, como primer paso para evaluar si éstos son una opción viable en nuestras infraestructuras tecnológicas.
Un directorio virtual nos ofrece un interfaz LDAP que actúa de intermediario con respecto a otro sistema de información, como una base de datos o otro LDAP. Además, antes de servir al cliente los datos tiene la capacidad de trabajar con ellos por lo que pueden ser adecuados previamente a nuestras necesidades.
El directorio virtual que hemos desarrollado está basado en Perl y utiliza los paquetes Net::LDAP::Server y DBI. El objetivo es ver si al conectar dicho directorio virtual con una base de datos MySQL los tiempos son aceptables o no. Para ello, hemos creado una batería de tests donde se realiza la búsqueda N veces de manera secuencial de una entrada en el directorio. No se trataba de ver el rendimiento ante pruebas de stress sino ver si al menos superaba esta sencilla prueba.
Se ha realizado la siguiente batería de tests:
Dicha batería se ha repetido 10 veces para quedarnos con el valor medio y evitar así resultados extraños. Los entornos que han sido probados y las búsquedas realizadas son:
El directorio virtual realizará la búsqueda indicada para el MySQL a la hora de obtener los datos y responder al cliente LDAP.
Los resultados obtenidos son:

Como podemos ver, a medida que incrementamos el número de búsquedas secuenciales seguidas, el directorio virtual es el más lento de los 3, aunque dicho retraso es bastante aceptable, como veremos más adelante. También podemos ver que el acceso a BD termina siendo más rápido que a un LDAP, y es debido al sistema de caché de MySQL.
Pero veamos los valores, expresados en segundos, que obtuvimos:

Como podemos ver, al principio (con 10 búsquedas seguidas) el acceso a LDAP es más rápido que el acceso a la BD, ya que todavía el caché de la BD no ha comenzado a funcionar a pleno rendimiento. Además, el directorio virtual se comporta al mismo nivel que la base de datos. A medida que crece el número de peticiones, hay un retraso de un 35% aproximadamente, que gracias a que el tiempo de obtención de los resultados es bajo no va a implicar un coste elevado al integrar nuestras aplicaciones con el directorio virtual.
Tenemos claro que estas pruebas no son definitivas a la hora de evaluar un directorio virtual, pero al menos sabemos que si son cifras que prometen como para seguir trabajando en otro tipo de evaluaciones.
En la comunidad de desarrolladores de PAPI estamos trabajando en la definición del protocolo PAPI v1.1, que traerá algunas mejoras sobre la versión inicial, que ya iremos desvelando poco a poco en este blog.
Una de estas mejoras es la inclusión del parámetro opcional PAPIOPOA en un mensaje ATTREQ, el cual corresponde a una petición de atributos por parte de un PoA o GPoA. Cuando un proveedor de identidad PAPI recibe este tipo de mensaje, en el caso de que el usuario no se hubiese autenticado previamente, necesitará realizar la autenticación del usuario antes de generar la respuesta al GPoA/PoA.
De esta forma, el mensaje ATTREQ queda definido con la siguiente URL:

Mensaje ATTREQ
Donde,
La principal utilidad de PAPIOPOA es facilitar la política de emisión de atributos de los proveedores de identidad. Consideremos el siguiente escenario:

Escenario PAPIOPOA
Como vemos, cada vez que el AS recibe un mensaje ATTREQ emitido por el GPoA, tendrá que emitir todos los atributos que podrían requerir cualquiera de los PoAs que están conectados con dicho GPoA.
Sin embargo, si en el mensaje ATTREQ recibe el parámetro PAPIOPOA, podremos saber cual fue el PoA que hizo la petición al GPoA y emitir sólo los atributos que dicho PoA necesita.
Además, este nuevo parámetro facilita enormemente la generación de unas estadísticas de acceso, ya que sabremos a qué recurso protegido intenta acceder un determinado usuario.
La certificación CDPP promovida por el DPI ya tiene fecha para el primer examen, que se celebrará el sábado 19 de junio. El segundo examen tendrá lugar el 18 de diciembre.
La prueba teórica vendrá definida por:
•150 preguntas con una sola respuesta válida de 4 posibles
•Un caso práctico en el que se harán 20 preguntas con opción Verdadero/Falso.
•Se pasa con un 75% de respuestas correctas.
•No hay puntos negativos.
Será necesario la acreditación de experiéncia dentro de la Privacidad y la Protección de Datos.
Próximamente se publicará el temario y más detalles necesarios para su preparación.
Más información: https://www.ismsforum.es/img/a8/des98_CDPP_-_Certified_Data_Privacy_Professional.pdf