====== SAML Single Sign-On con Pandora FMS ====== {{indexmenu_n>12}} **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 [[#ks1|operativo un servidor SAML]]. [[#ks2|Configurar los parámetros en Pandora FMS]]. Si se piensa utilizar [[#ks3|Azure con SAML]] se debe configurar dicho servidor. ===== Instalación de SimpleSAMLphp 2.0 ===== Se debe descargar SimpleSAMLphp versión 2.3.2 desde su repositorio oficial: https://github.com/simplesamlphp/simplesamlphp/releases/tag/v2.3.2 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''. {{ wiki:pfms-saml-image_28.png }} 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): {{ wiki:pfms-saml-image_30.png }} ===== Configuración de Pandora FMS con SAML ===== Menú **Management → Setup → Setup → Authentication**. Los siguientes valores son comunes: {{ :wiki:pfms-saml-image_70.png }} Algunos campos notables: * **Atributo de nombre de grupo SAML**: Campo SAML donde buscar el nombre del grupo (mientras auto crear usuarios remotos esté activado) * **Ruta de SimpleSAML**: Directorio donde se encuentra la carpeta ''simplesamlphp''. * **SAML de origen**: Nombre ''authsource'', por ejemplo: ''example-userpass''. * **Atributo de correo SAML**: Campo SAML donde buscar el correo electrónico del usuario (mientras auto crear usuarios remotos esté activado) Antes de configurar cualquier servicio de terceros con SAML se recomienda [[:es:documentation:pandorafms:technical_annexes:45_simplesaml_2_local|probar y comprobar localmente]] la instalación realizada de **SimpleSAMLphp**. ===== Configuración de Azure con SAML ===== En servicios de Azure® se debe acceder a la sección **Extra ID**: {{ wiki:pfms-saml-image_40.png }} Acceder luego a **Aplicaciones empresariales**: {{ wiki:pfms-saml-image_42.png }} Se crea una nueva aplicación (o se utiliza una existente): {{ wiki:pfms-saml-image_44.png }} Se accede a inicio de sesión único: {{ wiki:pfms-saml-image_46.png }} Se edita la configuración básica de SAML: {{ wiki:pfms-saml-image_48.png }} 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: {{ wiki:pfms-saml-image_50.png }} Descargar el fichero XML con metadatos de federación el cual se utilizará más adelante: {{ wiki:pfms-saml-image_52.png }} Y por último se debe guardar el ID que de el paso anterior y la URL del identificador extra: {{ wiki:pfms-saml-image_54.png }} ==== Configuración en SimpleSAMLphp ==== Se debe editar el fichero ''/opt/simplesamlphp/config/authsources.php'' con los siguientes valores: {{ wiki:pfms-saml-image_56.png }} 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: {{ wiki:pfms-saml-image_58.png }} 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: {{ wiki:pfms-saml-image_60.png }} Obteniendo el siguiente resultado: {{ wiki:pfms-saml-image_62.png }} El correo electrónico e identificador de usuario se puede sacar de los atributos que devuelve Azure® en la prueba realizada anteriormente: {{ :wiki:pfms-saml-image_80.png }} {{ :wiki:pfms-saml-image_90.png }} 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: {{ :wiki:pfms-saml-image_100.png }} [[:es:documentation:start|Volver al índice de documentación de Pandora FMS]]