Archivo

Archivo para la categoría ‘Monitorización’

Transparencias de los Grupos de Trabajo

lunes, 13 de junio de 2011 Sin comentarios

Para aquellos que no pudísteis estar presentes en los pasados Grupos de Trabajo de RedIRIS celebrados en Barcelona los días 1 y 2 de junio, os adjuntamos las transparencias utilizadas durante la sesión ASTIRIS-I sobre el SIR y el servicio de monitorización.

20110601 SIR

20110601 Monitorización

La monitorización del SIR en producción

lunes, 29 de noviembre de 2010 Sin comentarios

En los pasados Grupos de Trabajo de Córdoba se presentó la nueva herramienta de monitorización del SIR, fruto del piloto llevado a cabo los últimos meses. La herramienta ya está accesible en la web y cualquier persona puede utilizarla siempre y cuando tenga una identidad dentro de la federación. Como es lógico, sólo aquellos proveedores de identidad que ya estén monitorizados ofrecerán datos a través de la herramienta. Para aquellos que quieran unirse, basta con que accedan a la misma identificándose como administradores del SIR, presentando el ePE (eduPersonEntitlement) con valor “urn:mace:rediris.es:entitlement:sir:admin“, y a la mayor brevedad posible os añadiremos a la monitorización.

Categories: Monitorización, SIR Tags: ,

Aplicación Cliente de OAuth2

martes, 16 de noviembre de 2010 Sin comentarios

Dentro de Sirope, el entorno de OAuth2 del SIR, hemos desarrollado un sistema basado en servicios web que permite acceder a los recursos ofrecidos por RedIRIS.

Actualmente los recursos que se pueden obtener son los relacionados con el estado de los proveedores de servicio: datos de monitorización, gráficos que representan el tráfico soportado por el mismo, etc.

En este post os vamos a comentar cómo desde tu organización conectarte a Sirope para obtener los recursos comentados anteriormente.

Paso 1: Instalación de la aplicación cliente:

El primer paso a realizar será bajar el paquete alojado en la forja de RedIRIS donde se encuentra el código y configuraciones básicas para instalar una aplicación cliente.

En este paquete encontraremos los siguientes elementos:

  • Directorio config donde se encuentra el archivo de configuración de la aplicación cliente, clientConfig.xml
  • Directorio src donde está el código que permite a la aplicación cliente obtener los recursos
  • Archivo index.php que contiene una prueba de concepto que permite ver el funcionamiento de la librería

Para poder ejecutar el archivo index.php de prueba, deberás alojarlo en un servidor con el único requisito de tener instalado PHP 5. El código de la librería (directorio src) puede alojarse en el directorio de librerías para PHP de tu sistema o en el mismo lugar donde esté el index.php.

Paso 2: Configuración de PAPI

Para poder realizar una petición a este servicio será necesario aportar una aserción de un usuario, por lo que es necesario tener un sistema de autenticación como un PHPPoA2 disponible en el sistema.

Para poder obtener una aserción mediante esta herramienta será necesario que en el archivo index.php se modifique lo siguente:

//Incluir el archivo PoA.php del PHPPoA2 instalado en tu sistema
include("PoA.php");
//Instanciar un Punto de Acceso
$poa = new PoA("miaplicacion");
//Autenticar al usuario
$auth = $poa->authenticate(); 
//Obtener una aserción que le represente 
if ($auth) { // usuario autenticado
   $userdata = $poa->getAttributes();
} else { 
   // ocurrió un error y el usuario no está autenticado
}

Paso 3: Primeras pruebas con index.php

Una vez configurado el punto de acceso adecuadamente, se deberá obtener al ejecutar el index.php el siguiente mensaje: . En el caso de que obtengas otro tipo de mensaje, asegúrate de haber configurado adecuadamente tu instalación de PAPI. Si sigues teniendo problemas, ponte en contacto con nosotros

Paso 4: Obtener nombre usuario y clave definitivos

Para poder acceder a los recursos anteriormente descritos será necesario tener un nombre de usuario y clave dada por nosotros, para ello ponte en contacto con nosotros, comentándonos a qué institución perteneces.

Paso 5: Acceso a recursos

En el código de tu aplicación, deberás crear un objeto OAuth.

$client = new OAuth($dir);


Donde $dir será la ruta absoluta al directorio donde está localizado el archivo de configuración clientConfig.xml. Por ejemplo:

$client = new OAuth(dirname(__FILE__)."/own_config/");


Nota: La ruta que tiene el sistema puesta por defecto es la carpeta ‘config’ que podemos encontrar en el código descargado.

Una vez creado indicaremos el scope o recurso al que queremos acceder de los que tenemos disponibles:

  • OAUTH_STATUS_SCOPE: con este scope es posible obtener información de monitorización de un proveedor de identidad concreto (rendimiento, último estado estable, etc.). Para ello será necesario enviar junto al url del scope el sHO del usuario que está accediendo al sistema. Solo podrán ver la información relativa a su proveedor de identidad las personas que pertenezcan a la misma institución del mismo. Para indicar un recurso tendremos que hacer la siguiente llamada:

    $client->setScope(OAUTH_STATUS_SCOPE."?sho=".$sHO);


    El resultado de esta petición será un objeto json, mediante la cual se representa un array con atributos asociados al proveedor de servicio sobre el que se realiza la petición.

  • OAUTH_GRAPHS_SCOPE: este scope permite obtener los gráficos correspondientes al tráfico de un proveedor de servicio. Para poder acceder a esta gráfica será necesario establecer un scope tal y como el que podemos ver en el ejemplo:

    $client->setScope(OAUTH_GRAPHS_SCOPE."?sho=".$sHO."&period=".$period."
    &idp=".$idp."&geom=".$geom);


    Donde:

    • $sHO es el schacHomeOrganization del usuario que entra en la aplicación
    • $period será una cadena con cualquiera de los valores ‘dayly’, ‘weekly’, ‘monthly’ o ‘yearly’
    • $idp será el identificador del idp de la organización en cuestión, por ejemplo “AESIR”
    • $geom será el tamaño de la gráfica, con formato anchura x altura, por ejemplo: “650×150”

    El resultado de esta petición será un objeto json, mediante la cual se representará un array con campo ‘data’ que a su vez tienen dos elementos: ‘mime’, que tendrá el tipo mime de la imagen y ‘image’, donde estará la imagen representada en caracteres. Para mostrar esta imagen, será necesario realizar lo siguiente en el código de la aplicación que esté desarrollándose:

    $result = json_decode($content, true);
    $image = $result['data']['image'];
    header("Content-Type: ".$result['data']['mime']);
    echo base64_decode($image);

  • OAUTH_CHARTS_SCOPE: este scope permite obtener las tablas numéricas correspondientes al tráfico de un proveedor de servicio. Para poder acceder a esta tabla será necesario establecer un scope tal y como el que podemos ver en el ejemplo:

    $client->setScope(OAUTH_CHARTS_SCOPE."?sho=".$sHO."&period=".$period."
    &idp=".$idp."&geom=".$geom);


    Donde:

    • $sHO es el schacHomeOrganization del usuario que entra en la aplicación
    • $period será una cadena con cualquiera de los valores ‘dayly’, ‘weekly’, ‘monthly’ o ‘yearly’
    • $idp será el identificador del idp de la organización en cuestión, por ejemplo “AESIR”
    • $geom será el tamaño de la gráfica, con formato anchura x altura, por ejemplo: “650×150”

    La respuesta que se recibe de este servicio es un objeto json que representa un array con la siguiente estructura:

    • Array[data] = Array(
      • ‘date’: fecha relacionada con la información obtenida
      • ‘series’: array con
        • ‘type’: tipo del gráfico, por ejemplo: “pie”
        • ‘name’: nombre del IdP asociado a la información
        • ‘series’: array con las etiquetas y datos numéricos asociados a una representación gráfica del tipo indicado en ‘type’
  • Por último, para obtener el recurso se realiza la llamada a la función doOAuthFlow($assertion), pasándole la aserción en forma de cadena. Por ejemplo, para una instalación de PHPPoA se realizaría lo siguiente:

    $res = $client->doOAuthFlow($userdata['PAPIAssertion']);
    if (!$res) {   
       echo $client->getResource();
    }


    Donde $client->getResource(); obtendrá el recurso en cuestión, el cual será un objeto json con el formato indicado anteriormente para cada scope.

Categories: Monitorización, PAPI, SIR Tags:

Piloto de monitorización del SIR

miércoles, 16 de junio de 2010 Sin comentarios

Como ya se ha comentado tanto por la lista de correo SIR-USERS como el pasado lunes 14 de junio en los Grupos de Trabajo de RedIRIS en Salamanca, hemos comenzado un piloto con intención de monitorizar los proveedores de identidad de las instituciones adscritas al SIR.

Actualmente se están monitorizando ya 11 proveedores de identidad y un total de 9 instituciones con resultados satisfactorios. Todos aquellos que quieran participar en este piloto pueden solicitarlo enviando un correo electrónico a sir@rediris.es e indicando los siguientes datos:

  • Las direcciones de correo electrónico de al menos dos personas en la institución, o bien alias de correo genéricos, para recibir alertas en caso de que ocurra cualquier incidencia con su proveedor de identidad. También se podrá solicitar recibir alertas en medios alternativos, como mensajería instantánea (via Jabber).
  • Un nombre de usuario válido y su contraseña correspondiente con el que poder identificarse en el proveedor de identidad. No es necesario que sea un usuario con permisos ni atributos especiales. Basta con que sus datos sean aceptados a la hora de identificarse, de forma que se pueda garantizar que si las pruebas de monitorización son satisfactorias, cualquier usuario de la institución podrá identificarse sin problemas.

El piloto se ha puesto en marcha mediante nagios y jmeter, y se está desarrollando un interfaz web desde el que gestionar todo lo relacionado con el mismo (desde ver el estado de un proveedor de identidad hasta obtener gráficas o modificar la configuración).

Como siempre, cualquier duda, sugerencia o pregunta será más que bienvenida.