SAML es un estándar abierto de autentificación y autorización basado en XML. Pandora FMS puede funcionar como un proveedor de servicios con su proveedor de identidades SAML interno.
Los administradores siempre se autentican contra la base de datos local.
Se deben realizar varios pasos antes de poder utilizar SAML en Pandora FMS.
Tener operativo un servidor SAML.
Configurar los parámetros en Pandora FMS.
Si se piensa utilizar Azure con SAML se debe configurar dicho servidor.
Se debe descargar SimpleSAMLphp versión 2.3.2 desde su repositorio oficial:
y luego ser subido al Pandora FMS server. Si el PFMS server tiene acceso a internet y se tiene instalado wget se puede utilizar directamente la siguiente instrucción en un directorio que cuente con espacio y derechos de escritura suficientes:
wget https://github.com/simplesamlphp/simplesamlphp/releases/download/v2.3.2/simplesamlphp-2.3.2-full.tar.gz
Se descomprime el fichero descargado con:
tar -xvf simplesamlphp-2.3.2-full.tar.gz
Se debe mover la carpeta a su ubicación final:
mv simplesamlphp-2.3.2 /opt/simplesamlphp
Para compartir acceso con Pandora FMS se debe crear el siguiente enlace simbólico:
ln -s /opt/simplesamlphp/public /var/www/html/simplesamlphp
SimpleSAMLphp basa su configuración en el fichero config.php
, con la ubicación final establecida anteriormente se ha de renombrar la plantilla que trae por defecto:
mv /opt/simplesamlphp/config/config.php.dist /opt/simplesamlphp/config/config.php
Así se tendrá la ruta completa del fichero de configuración en:
/opt/simplesamlphp/config/config.php
Con el editor de texto favorito se deben editar los siguientes valores (nótese que se debe cambiar pandora.local
por la URL de la Consola web PFMS y conservar la coma al final de línea ya que forman parte de bloques de instrucciones):
'baseurlpath' => 'https://pandora.local/simplesamlphp/', 'auth.adminpassword' => '123pandora',
Se deben guardar los cambios del fichero y salir a la línea de comandos.
Si aparece algún error de permisos por cache se debe aplicar:
mkdir /var/cache/simplesamlphp && chown apache:apache /var/cache/simplesamlphp
De esta manera se tendrá a SimpleSAMLphp en funcionamiento y deberá mostrar la página de inicio en la URL https://pandora.local/simplesamlphp/
(se debe cambiar pandora.local
por la URL de la Consola web PFMS).
Dado el caso que se conecte por HTTP en vez de HTTPS la autenticación fallará hasta que el servidor web Apache sea configurado para que escuche por el puerto seguro 443
.
Para acceder a la administración de SimpleSAMLphp primero se debe cambiar el nombre al fichero authsources.php.dist
:
mv /opt/simplesamlphp/config/authsources.php.dist /opt/simplesamlphp/config/authsources.php
Se accede mediante la URL https://pandora.local/simplesamlphp/admin/
(se debe cambiar pandora.local
por la URL de la Consola web PFMS):
Menú Management → Setup → Setup → Authentication.
Los siguientes valores son comunes:
Algunos campos notables:
simplesamlphp
.authsource
, por ejemplo: example-userpass
.Antes de configurar cualquier servicio de terceros con SAML se recomienda probar y comprobar localmente la instalación realizada de SimpleSAMLphp.
En servicios de Azure® se debe acceder a la sección Extra ID:
Acceder luego a Aplicaciones empresariales:
Se crea una nueva aplicación (o se utiliza una existente):
Se accede a inicio de sesión único:
Se edita la configuración básica de SAML:
Se rellenan los siguientes campos, con el ID para la aplicación, la dirección del SimpleSAMLphp instalado (se debe cambiar pandora.local
por la URL de la Consola web PFMS) y la dirección donde Azure® tendrá que redirigir cuando se cierre la sesión:
Descargar el fichero XML con metadatos de federación el cual se utilizará más adelante:
Y por último se debe guardar el ID que de el paso anterior y la URL del identificador extra:
Se debe editar el fichero /opt/simplesamlphp/config/authsources.php
con los siguientes valores:
Y por la página web de SimpleSAMLphp al menú de Federación y luego a la sección Herramientas para la conversión de XML a PHP:
Se debe cambiar el nombre de saml20-idp-remote.php.dist
con:
mv /opt/simplesamlphp/metadata/saml20-idp-remote.php.dist /opt/simplesamlphp/metadata/saml20-idp-remote.php
Se copia el contenido del XML descargado anteriormente, se pega y se procesa; esto generará un texto de configuración para PHP el cual se copia y pega dentro del fichero /opt/simplesamlphp/config/authsources.php
reemplazando todo su contenido.
Si todo está correcto se procede a realizar una prueba:
Obteniendo el siguiente resultado:
El correo electrónico e identificador de usuario se puede sacar de los atributos que devuelve Azure® en la prueba realizada anteriormente:
Para la configuración avanzada se puede profundizar el mapeo de propiedades o seleccionar una por defecto en caso de no hacer coincidencia con ninguna: