Back to Documentation | English Version

Guías para la instalación de PURSe (Linux)

Versión 1.0 - 20/08/2006

GuiaInstalacionPURSe.doc (179 KB)

1 Introducción

1.1 Propósito y alcance de este documento
1.2 Definiciones de términos y abreviaturas
1.3 Referencias

2 Conceptos generales

2.1 Certificado
2.2 Credencial
2.3 PURSe
2.4 Portlets para la utilización de PURSe

3 Instalación de PURSe

3.1 Prerrequisitos
3.2 Instalación

3.2.1 Instalación del sistema PURSe
3.2.2 Configuración de la base en MySQL
3.2.3 Ejecución de ant bootstrap
3.2.4 Deploy de los portlets de PURSe
3.2.5 Configuración de los portlets de PURSe
3.2.6 Configuración de la simpleCA del portal
3.2.7 Configuración de MyProxy

3.3 Tareas manuales de mantenimiento

3.3.1 Eliminación de usuarios


1 Introducción

1.1      Propósito y alcance de este documento

Este documento describe los pasos a seguir para la instalación de PURSe y de los portlets para la utilización de PURSe. PURSe consiste en un sistema para el registro de usuarios de aplicaciones web que utilizan GSI. PURSe coordina el proceso de obtención de certificados para nuevos usuarios y permite a los usuarios que tienen certificados válidos registrarse fácilmente en el portal.

Este documento no realiza presunciones respecto de software ya instalado, excepto por aquellas herramientas indicadas expresamente en la sección de prerrequisitos.

1.2      Definiciones de términos y abreviaturas

Los siguientes términos y abreviaturas son utilizados en el presente documento:

Término o Abreviatura

Definición

PURSe

Portal-Based User Registration Service

PKI

Public Key Infrastructure

GT

Globus Toolkit, cuando la sigla sea seguida por un número, éste se referirá a la versión

GRAM

Globus Resource Allocation and Management

GSI

Grid Security Infrastructure

MDS

Monitoring and Discovery Service

GRIS

Grid Resource Information Service

GIIS

Grid Index Information Service

RFT

Reliable File Transfer

RLS

Replica Location Service

OGSA

Open Grid Services Architecture

SOAP

Simple Object Access Protocol

XML

Extensible Markup Language

WS

Web Service

WSRF

Web Services Resource Framework

JDBC

Java Database Connectivity

CA

Certificate Authority (entidad certificadora)

PEM

Privacy-Enhanced Mail (referido a encriptación)

W3C

World Wide Web Consortium

DN

Distinguished Name

CN

Common Name

OU

Organizational Unit

GGF

Global Grid Forum

GUI

Graphical User Interface

1.3      Referencias

A continuación se detallan los documentos relacionados:

Documento

Descripción

   
   

2 Conceptos generales

2.1      Certificado

GSI involucra un sistema de criptografía asimétrica (es decir, de clave pública y privada). La clave privada es protegida mediante un password, denominado passphrase. De acuerdo con GSI, cada usuario o servicio es identificado mediante un certificado, que contiene información que permite su identificación y autenticación. Esta información incluye el subject name del objeto o persona representado por el certificado, su clave pública, la identidad de la CA que firmó el certificado, y la firma digital de la CA. Los certificados en GSI se codifican en formato X.509.

2.2      Credencial

Una credencial combina un certificado con la clave privada correspondiente, y permite la comunicación de entidades de manera segura. Las credenciales están encriptadas con una passphrase. PURSe utiliza MyProxy, que es un repositorio online de credenciales, y permite obtener un proxy para utilizar los servicios del grid sin necesidad de obtener un certificado de usuario en cada máquina.

2.3      PURSe

PURSe es un sistema destinado a simplificar el alta de nuevos usuarios en aplicaciones web que utilizan seguridad de tipo GSI (basada en PKI y la utilización de certificados X.509). PURSe se utiliza para coordinar la obtención de certificados para nuevos usuarios, y para la registración de dichos usuarios en el portal. Para el manejo de las credenciales, PURSe utiliza un repositorio de credenciales MyProxy.

2.4      Portlets para la utilización de PURSe

Los portlets para la utilización de PURSe abordados en este documento son un conjunto de portlets administrativos que sirven de interfaz con el sistema PURSe. Estos portlets incluyen interfaces para el registro de usuarios en el portal, portlets destinados a los usuarios del mismo, y que le permiten realizar acciones sobre su cuenta, y portlets destinados a la administración de nuevos usuarios por parte del administrador del portal.

3 Instalación de PURSe

3.1      Prerrequisitos

  1. J2SE 1.4.2+
    1. Instalar J2SE. Esto puede hacerse descargando el archivo .bin correspondiente del sitio http://java.sun.com o a través de un paquete.
    2. Agregar la variable de entorno JAVA_HOME, cuyo valor será el directorio en el que reside JAVA. Esto puede hacerse insertando la línea export JAVA_HOME=dir_de_java en el archivo /etc/profile.
    3. Agregar el directorio $JAVA_HOME/bin al PATH. Esto puede hacerse en el archivo /etc/profile. Es recomendable que, de existir más de una máquina virtual instalada, el directorio donde se encuentran los archivos de J2SE sea referenciado por el PATH en primer lugar (de esta manera se evitan warnings relacionados).
  2. Ant 1.5.1+ (1.6.1+ si se usa JDK 1.5+)
    1. Instalar Ant. Esto puede hacerse descargando el archivo correspondiente de http://ant.apache.org
    2. Agregar la variable de entorno ANT_HOME, cuyo valor será el directorio en el que reside Ant. Esto puede hacerse insertando la línea export ANT_HOME=dir_de_ant en el archivo /etc/profile.
    3. Agregar el directorio $ANT_HOME/bin al PATH. Esto puede hacerse en el archivo /etc/profile.
  3. Motor de bases de datos MySQL
  4. Globus Toolkit 4 en el servidor del portal, con los servicios de SimpleCA y MyProxy configurados
  5. GNU tar

3.2      Instalación

3.2.1    Instalación del sistema PURSe

Para instalar el sistema PURSe, obtener en primer lugar el archivo tar correspondiente a sistema. En este caso, se trata del archivo purse-1.0.1.tar.gz, que se puede obtener de http://www.extreme.indiana.edu/portals/purse-portlets/downloads.html.

Descomprimir dicho archivo en un directorio en el host que contiene el portal.

/usr/local# tar -zxvf purse-1.0.1.tar.gz

El directorio en el que se descomprima PURSe (en este caso /usr/local/purse) será referido a partir de ahora como $PURSE_HOME.

3.2.2    Configuración de la base en MySQL

PURSe utiliza una base de datos MySQL para almacenar su información, por ejemplo estado de los pedidos de certificados.

Para crear la base de datos, ejecutar:

mysqladmin -h <dbHostName> -u <user> [-p] create purseDatabase

Donde dbHostName es el nombre de host (o ip) de la máquina que contiene el servidor MySQL, y user es un usuario administrador del servidor MySQL (por ejemplo root).

A continuación, crear el schema de la base purseDatabase mediante el comando:

mysql -u <user> [-p] purseDatabase < $PURSE_HOME/etc/purse_database_schema.sql

Luego, es necesario agregar un usuario mediante el cual se accederá ala base recién creada. Para ello, ingresar al servidor MySQL y darle permisos a dicho usuario nuevo:

mysql -u <user> [-p]
mysql> GRANT ALL ON purseDatabase.* TO 'purseuser'@'localhost' IDENTIFIED BY 'password';

Donde purseuser es el nombre elegido para el nuevo usuario, y password es el password que se le ha asignado.

3.2.3    Ejecución de ant bootstrap

Una vez configurada la base, es necesario ejecutar el comando ant bootstrap sobre el directorio $PURSE_HOME.

Para ello, primeramente, configurar el archivo test.properties del directorio $PURSE_HOME para que sea consistente con la configuración de la base de datos, como se muestra a continuación.

# Most of the properties listed below are required for bootstrap
# Those that are present only for testing are marked.
#Database properties
dbDriver=com.mysql.jdbc.Driver
dbConnectionURL=jdbc:mysql://nombre_del_host/purseDatabase
dbUsername=
dbPassword=
dbPropFile=etc/databaseFilename
# Used to encrypt passwords stored in database
passPhrase=passPhrase
#Mail properties
caAddress=
purseAdminAddr=
#Mail server stuff
.............
#Mail templates stuff
.............
portalBaseUrl=
caBaseUrl=
.............
#Portal URL
caBaseUrl=
.............
# Location of simple CA executables
binLocation=
tmpLocation=
# MYproxy properties
myProxyHost=
myProxyPort=
myProxyBin=
myProxyDn=dummy
myProxyDir=
expirationLeadTime=1
# CA cert passphrase
caPassPhrase=
# Reject token
.............
# Mail signer properties
signerCertificate=
signerKey=
signerPass=

Luego, ejecutar el comando ant bootstrap desde el directorio $PURSE_HOME.

3.2.4    Deploy de los portlets de PURSe

El deployment de los portlets de PURSe se hace de la manera habitual en la que se hace deploy de portlets en Gridsphere (o el portlet container que se utilice, en caso de ser otro). Los portlets son provistos en forma de un archivo war, y existen dos versiones: una específica para instalar sobre Gridsphere y una genérica, para utilizar con otros portlet containers. Los archivos war correspondientes a cada una de las modalidades pueden obtenerse de http://www.extreme.indiana.edu/portals/purse-portlets/downloads.html.

El método recomendado para efectuar el deploy de los portlets consiste en acceder al portal como un usuario con privilegios de administrador del mismo, y utilizar la interfaz del portlet Portlet Application Manager del tab Administration para indicar el war correspondiente.

Para  que Gridsphere reconozca como portlet al war recién instalado, ejecutar el comando:

touch $CATALINA_HOME/webapps/gridsphere/WEB-INF/CustomPortal/portlets/purse-portlets

De ser necesario, para completar la instalación, ubicar los archivos jar provistos en el archivo shared-lib-jars.tar.gz que se puede obtener del sitio http://www.extreme.indiana.edu/portals/purse-portlets/downloads.html en el directorio shared/lib del servidor Tomcat correspondiente al portal. Verificar que ninguno de los archivos copiados ya se encuentre en dicho directorio (aún si fuera una versión distinta, no generar duplicados). Notar que el archivo cog-jglobus provisto en este archivo de librerías compartidas contiene la clase StoreParams. La misma no existe en otros archivos de cog-jglobus, por lo que el archivo deberá ser reemplazado de ser el caso.

3.2.5    Configuración de los portlets de PURSe

Los portlets para la utilización de PURSe incluyen el archivo web.xml, ubicado en $CATALINA_HOME/webapps/purse-portlets/WEB-INF/web.xml, en el cual se pueden agregar o quitar módulos de registro. Cada módulo de registro se especifica en la forma de context parameters de la siguiente manera:

    <context-param>
      <param-name>PurseRegistrationModule_0</param-name>
      <param-value>org.ogce.purse.impl.GridSphereRegistrationModule</param-value>
    </context-param>

El atributo param-name debe comenzar con PurseRegistrationModule y terminar con un identificador único, en general un número entero incrementado en uno por cada context-param.

En principio, la configuración default del archivo web.xml es suficiente.

Es necesario, por otra parte, configurar el archivo purse.properties. Para ello, copiar primeramente el archivo purse.properties.template del directorio $CATALINA_HOME/webapps/purse-portlets/WEB-INF/ al archivo purse.properties.

Luego, editar dicho archivo, completando los parámetros que se indican a continuación.

#
# NOTE: Lines that you must edit are marked with "->"
#
# The PURSE installation directory containing messages etc.
# This is used to expand configuration entries below to real,
# absolute file names using ${...} syntax.
purse.dir=
# Most of the properties listed below are required for bootstrap
# Those that are present only for testing are marked.
dbDriver=com.mysql.jdbc.Driver
dbConnectionURL=
dbUsername=
dbPassword=
dbPropFile=${purse.dir}/etc/databaseFilename
............
# Used to encrypt passwords stored in database
passPhrase=
#Mail properties
caAddress=
purseAdminAddr=
............
#Mail server stuff
outgoingProtocol=smtp
outgoingHost=
outgoingPort=25
............
#Portal URL
portalBaseUrl=
# Admin/Registration Authority look-at-details URL
caBaseUrl=
# user registration confirmation URL
userBaseUrl=
...........
# Location of simple CA executables
binLocation=
tmpLocation=
# MyProxy settings
myProxyHost=
myProxyPort=7512
myProxyBin=
myProxyDn=
myProxyDir=/var/myproxy
expirationLeadTime=600
#Optional CA Properties
caDir=
caHash=

Finalmente, crear si es necesario el directorio tmpLocation y asignarle permisos modo 777.

3.2.6    Configuración de la simpleCA del portal

El sistema PURSe requiere acceso directo a una entidad certificadora, ya sea porque dicha simpleCA reside está instalada en el mismo host que el portal, o porque se ha compartido el directorio en la red.

En caso de que la simpleCA instalada y el portal estén en el mismo host, puede utilizarse la simpleCA ya instalada. En caso contrario, deberá instalarse una nueva simpleCA para el portal en el host que lo contiene, y establecer confianza cruzada con el resto de las entidades certificadoras.

Es importante que el usuario bajo el cual corre el portal tenga acceso de escritura al directorio de la simpleCA. No es necesario que la nueva simpleCA sea configurada como default, ya que los archivos de configuración de PURSe permiten especificar el hash de la simpleCA a utilizar. Para indicar el directorio en el cual crear la simpleCA, utilizar el modificador -dir de la siguiente manera:

Como root:
$GLOBUS_LOCATION/setup/globus/setup-simple-ca -dir directorio_de_la_nueva_CA
/usr/local/globus-4.0.2/setup/globus_simple_ca_HASH_setup/setup-gsi
chown usuario_portal:usuario_portal -R directorio_de_la_nueva_CA

3.2.7    Configuración de MyProxy

Los portlets de PURSe utilizan un repositorio MyProxy para el almacenamiento de credenciales. En el archivo de configuración myproxy-server.config de la máquina donde reside el servidor myproxy, agregar en caso de que falte la línea:

authorized_key_retrievers "*"

3.3      Tareas manuales de mantenimiento

3.3.1    Eliminación de usuarios

Para eliminar un usuario:

Borrar el usuario del portal en Gridsphere utilizando la interfaz provista en la solapa de administración.

Borrar el usuario de la base de datos de PURSe, accediendo al servidor MySQL y borrando la entrada correspondiente de la tabla user_table.

mysql -u purseuser -p -D purseDatabase

DELETE FROM user_table WHERE user_name = nombre_usuario;

Borrar la credencial del repositorio MyProxy con:

myproxy-destroy -s myproxy.host -l nombre_usuario

Borrar el certificado generado para nombre_usuario dentro del subdirectorio newcerts del directorio de la CA del portal. Borrar también la línea correspondiente en el archivo index.txt del directorio de la CA del portal.

Go to top