Page tree
Skip to end of metadata
Go to start of metadata

Introducción

Con el propósito de facilitar la instalación y configuración de un IdP estable a las instituciones que hacen uso de la federación SIR2, creamos una herramienta que permite automatizar la tarea de instalación/actualización de SimpleSAMLphp junto con el módulo de configuración inicial, IdP installer, el módulo de actualización (que veremos más adelante) y el Skin de REDIRIS. Esta herramienta delega en el administrador de dependencias Composer la gestión de paquetes, de forma que es muy sencillo de utilizar para el usuario.

La estructura creada se basa en la generación de enlaces simbólicos que permiten la actualización de la aplicación manteniendo una copia de seguridad del proyecto anterior, a la vez que se respeta la configuración ya existente.

Esta herramienta está relacionada con un nuevo módulo de actualización. Este módulo de actualización es una extensión que se añade al proyecto de SimpleSAMLphp (de la misma forma que el IdP installer), y proporciona una interfaz desde la cual podemos seleccionar cualquiera de las versiones más recientes de SimpleSAMLphp y actualizar el proyecto a dicha versión, manteniendo en todo momento la configuración y copias de seguridad de versiones recientes.

Requisitos

Para poder ejecutar el módulo que instala y realiza una configuración base de SimpleSAMLphp para conectarse al SIR (IdP Installer), será necesario que esté disponible a través de un servidor web, en el ejemplo se utiliza un servidor Apache

Con carácter general, los pre-requisitos de SimpleSAMLphp están listados en la siguiente URL:

    https://simplesamlphp.org/docs/stable/simplesamlphp-install#section_3

Resumimos en la siguiente lista los pre-requisitos mínimos que deberemos tener en el servidor donde se va a desplegar SimpleSAMLphp:

  • Servidor web con capacidad de ejecutar PHP
  • PHP versión 5.5.0 o superior
  • Módulos PHP: date, dom, hash, libxml, openssl, pcre, SPL, zlib, mbstring, json
  • El paquete del sistema de control de versiones git
  • Existen otros módulos opcionales que deberán instalarse en el caso de querer utilizar determinada funcionalidad:
    • Módulo LDAP de PHP, si se quiere utilizar LDAP para la autenticación o la atribución
    • Módulo PDO de PHP, si se quiere utilizar una base de datos para la autenticación o la atribución. Además, será necesario instalar algún driver específico de PDO: mysql, pgsql, etc.
    • Módulo Memcache de PHP, si se va a utilizar Memcache para gestionar las sesiones PHP

En cuanto a las herramientas de instalación y actualización, el único requisito es el de tener Composer instalado en el sistema. Podemos ver como instalarlo desde la web oficial.

Estas dos herramientas utilizan la gestión de los enlaces simbólicos para conseguir mantener la configuración aislada del proyecto, además de permitir disponer de copias de seguridad de forma que, de una forma muy simple, se pudiera cambiar la versión de SimpleSAMLphp del proyecto que queremos disponer en producción.

En entornos Linux no existe ninguna limitación en cuanto a la generación y gestión de los enlaces simbólicos, pero en el caso de sistemas Windows si que tenemos algunas restricciones:

  1. La gestión de enlaces simbólicos solo está disponible para sistemas Windows Vista, Windows Server 2008 o superiores.
  2. Debe de estar habilitada la creación de enlaces simbólicos para todos los usuarios. En caso contrario, la ejecución del instalador no funcionará. Se puede revisar esta configuración desde: Configuración de seguridad -> Políticas Locales -> Asignación de privilegios de usuario -> Crear enlaces simbólicos.

Idpref-installer-updater


Esta es la herramienta correspondiente a la creación del proyecto, que posibilita ademas la actualización del proyecto y sus dependencias via Composer. Podemos ver más detalles de la misma en su repositorio.

La utilización es muy simple. Solamente debemos disponer de un directorio vacío, cuyo propietario sea el usuario de Apache, donde queremos instalar la aplicación SimpleSAMLphp. Una vez preparado el directorio, nos situamos sobre el y ejecutamos el siguiente comando:

composer create-project rediris-es/idpref-installer-updater ./

Esta instrución nos generará un proyecto funcional con la siguiente estructura:

Vemos los siguientes elementos:

  1. Carpeta simplesamlphp[fechahora]: Esta es la carpeta que contiene el grueso de la aplicación.
  2. Carpeta ssp-config: En esta carpeta se almacena la configuración. Esta carpeta es enlazada desde el contenido de la carpeta anterior, de esta forma conseguimos separar la aplicación de la configuración.
  3. Enlace simbólico simplesamlphp, este enlace apunta a la carpeta mencionada en el punto 1. La idea es que al realizar una actualización, lo que se hace realmente es crear un nuevo proyecto con la nueva versión y se cambia la carpeta a la que apunta este enlace simbólico. De esta forma podamos mantener una copia del proyecto anterior y volver a ella fácilmente.
  4. Fichero composer.json y directorio ComposerScript: Son los que se encargan de la gestión de las dependencias y la distribución y configuración posterior. Es recomendable no modificar su contenido.

Una vez instalado el proyecto, sería muy fácil actualizarlo con las versiones más recientes de cada una de los paquetes utilizados, principalmente la aplicación SimpleSAMLphp. Para ello solamente habrá que ejecutar el siguiente comando (situados en la raíz del proyecto, en el directorio donde se almacena el fichero composer.json con la carpeta ComposerScript):

composer update

simplesamlphp-module-updater

Esta herramienta es un módulo que se añade a la funcionalidad de SimpleSAMLphp. Desde el repositorio público podemos ver todos los detalles.

Este módulo permite la actualización de SimpleSAMLphp a cualquiera de las versiones superiores a la actual. Para ello hace uso de la estructura y funcionalidad de la herramienta idpref-installer-updater. La particularidad del módulo es que proporciona una interfaz gráfica desde la cual podemos actualizar fácilmente. Este módulo será accesible desde el apartado de configuración:


Y esta será la pantalla correspondiente al modulo. En ella elegiremos la versión que queramos y haremos clic en actualizar. El proceso puede durar algunos minutos.

Es importante mencionar que el uso del modulo simplesamlphp-module-updater está restringido a las instalaciones realizadas mediante la herramienta idpref-installer-updater, ya que utiliza dicha herramienta para su uso. En futuras versiones se añadirá la posibilidad de utilizar este módulo para cualquier tipo de instalación.

  • No labels