Hola.
Estamos intentando probar el acceso a usuarios a Mapuche por saml_onelogin. Nosotros no tenemos un entorno toba de desarrollo, por lo que estamos directamente trabajando sobre una aplicación de Mapuche instalada en un entorno de desarrollo. Por ende, tuvimos que copiar el proyecto toba_editor dentro de la ruta de toba/proyectos dado que no existía.
Agregamos el parámetro en el archivo instalacion.ini de la ruta /usr/local/mapuche/instalacion/
Tomamos el archivo saml_onelogin.ini que viene con Toba, lo copiamos en /usr/local/mapuche/instalacion/ y lo modificamos según el siguiente detalle, dado que tenemos ya definido un idp por simplesaml para todo el mpf (no tenemos claro si nos falta desmarcar algo más):
==========================================================
;Archivo de configuracion para el metodo onelogin via saml
;Necesita si o si definirle un proyecto por default para loguearse, esto va a determinar las urls de retorno y el entityID del SP
proyecto_login = mapuche
Hola, dejo una transcripción del mail interno que mande a mis compañeros en su momento para poder usar SAML. Como verán se utiliza un servidor en nuestra red interna que llamamos Chiquita. Deberían reemplazarlo por el suyo en cada caso.
Es toda la información que les puedo brindar en este momento. En todo caso vamos viendo problemas puntuales que puedan ir surgiendo si no les funciona.
Por otro lado, tengan en cuenta que Mapuche ya viene preparado para utilizar SAML desde la version 2.2.0 publicada el 23/1/2015, por lo que no necesitan el proyecto Toba Editor ni nada relacionado al desarrollo (como actualizar login).
Hola,
hoy les voy a contar como configurar Mapuche para poder acceder con SAML y realizar pruebas.
Hay dos partes esenciales en SAML: el proveedor de servicio, abreviado SP por sus siglas en ingles (Service Provider) y el proveedor de idenficiación, IdP (Identity Provider).
El primero viene cargado en toba como un producto de terceros: toba/php/3ros/simplesamlphp
El segundo, debemos instalarlo nosotros (el código es el mismo que el SP solo que se configura diferente).
El alias del SP en toba.conf debe ser igual al parámetro baseurl definido en saml.ini
Como pueden ver, usamos un IdP instalado en el servidor Chiquita (192.168.132.116). Esto es para facilitar la tarea de configuración ya que los nombres de servidores del SP y el IdP deben ser diferentes.
Ahora, para usar el IdP mencionado debemos hacer unos cambios en los metadatos de SAML (para que el IdP pueda responder al SP)
En chiquita,
Agregar el metadato propio para tu ip (esta comentado el código que debe copiarse señalado):
Editar /var/www/html/simplesamlphp/metadata/saml20-sp-remote.php
Agregar tu usuario y contraseña con el que quieras ingresar (o el tipo de validación que cada uno quiera: SQL Query, LDAP, Google, Facebook, Twitter, etc.). Por defecto esta cargado toba:toba
Editar /var/www/html/simplesamlphp/config
Te reitero una consulta porque ni en la wiki ni en tu respuesta queda claro justamente lo que no tenemos claro como definir. En el mpf el IDP está en un servidor linux que usan todas las aplicaciones. En eso no hay dudas. El tema es que nos solicitan una url para setea en el SimpleSAML del IDP para que redirija al servidor de mapuche.
Obviamente el nombre de la url no es el problema sino a donde debe apuntar, porque no me queda claro. En https://repositorio.siu.edu.ar/trac/toba/wiki/Referencia/Login/SAML en el ejemplo menciona
[sp]
;URL donde se va a publicar el SP
baseurlpath = /toba_trunk_sp/ ???
Cual sería el alias?
adjunto el archivo mapuche.conf para que me lo puedan aclarar sobre dicho archivo.
SSLEngine on
SSLCertificateFile /etc/ssl/mpf/MPF-Comodo.pem
SSLCertificateKeyFile /etc/ssl/mpf/MPF-Comodo.key
<Directory /var/www/>
Options FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
Alias /siu/mapuche_toba “/usr/local/siu/mapuche/toba/www”
<Directory “/usr/local/siu/mapuche/toba/www/”>
SetEnv TOBA_DIR “/usr/local/siu/mapuche/toba”
Options MultiViews
AllowOverride None
<IfModule !mod_authz_core.c>
Order allow,deny
Allow from all
Require all granted
#Proyecto: toba_usuarios
Alias /siu/mapuche_toba_usuarios "/usr/local/siu/mapuche/toba/proyectos/toba_usuarios/www"
<Directory "/usr/local/siu/mapuche/toba/proyectos/toba_usuarios/www/">
DirectoryIndex aplicacion.php
Options MultiViews
AllowOverride None
<IfModule !mod_authz_core.c>
Order allow,deny
Allow from all
</IfModule>
<IfModule mod_authz_core.c>
Require all granted
</IfModule>
SetEnv TOBA_DIR "/usr/local/siu/mapuche/toba"
SetEnv TOBA_PROYECTO "toba_usuarios"
SetEnv TOBA_INSTANCIA "produccion"
SetEnv TOBA_INSTALACION_DIR "/usr/local/siu/mapuche/instalacion"
</Directory>
#Proyecto: mapuche
Alias /siu/mapuche "/usr/local/siu/mapuche/aplicacion/www"
<Directory "/usr/local/siu/mapuche/aplicacion/www/">
DirectoryIndex aplicacion.php
Options MultiViews
AllowOverride None
<IfModule !mod_authz_core.c>
Order allow,deny
Allow from all
</IfModule>
<IfModule mod_authz_core.c>
Require all granted
</IfModule>
SetEnv TOBA_DIR "/usr/local/siu/mapuche/toba"
SetEnv TOBA_PROYECTO "mapuche"
SetEnv TOBA_INSTANCIA "produccion"
SetEnv TOBA_INSTALACION_DIR "/usr/local/siu/mapuche/instalacion"
</Directory>
Supongo que ninguna pero hoy Mapuche solo tiene incluido SimpleSAML (saml a secas). SAML On Login es otra implementación del mismo estándar.
Te dejo los enlaces a cada uno para que los consultes si te interesa. En todo caso se puede cargar un GdS pidiendo que se agregue el otro que Toba ya lo incluyó en sus libs de 3ros.
Hoy hice una instalación de Mapuche 3.1.1 y lo configure con un IdP que tenemos en un servidor de aca para probar. Con respecto a la guía lo único que note diferente es que hay que ir a modificar algunos archivos de Toba donde las rutas relativas quedan desfasadas. Hay que agregar un retroceso mas (‘/…’):
Cambiar donde dice:
$base = dirname(__FILE__).'/../../../../instalacion';
por
$base = dirname(__FILE__).'/../../../../../instalacion';
Los archivos son:
/toba/php/3ros/simplesamlphp/metadata/saml20-idp-remote.php linea 6
/toba/php/3ros/simplesamlphp/config/config.php linea 11
En el toba.conf (o su mapuche.conf) hay que agregar la definición del sp:
Alias /mapuche_311_sp "<ruta-a-mapuche-3.1.1>/mapuche/toba/php/3ros/simplesamlphp/www"
<Directory <ruta-a-mapuche-3.1.1>/mapuche/toba/php/3ros/simplesamlphp/www>
<IfModule !mod_authz_core.c>
Order allow,deny
Allow from all
</IfModule>
<IfModule mod_authz_core.c>
Require all granted
</IfModule>
</Directory>
Recuerden que el alias debe ser igual a la configuración “baseurlpath” del archivo saml.ini (que tienen que haber creado como dice en la guía de Toba).
En el IdP tienen que haber agregado los metadatos del SP remoto: /metadata/saml20-sp-remote.php.
Para hacer las pruebas yo agregue un usuario y clave hardcodeado nomas.
Calculo que el SimpleSAML del IdP tiene que ser la misma versión que el SP.
No se me ocurre nada mas…
Sigan mandando las dudas puntuales que vayan surgiendo pero si siguen los pasos de la guía tiene que salir andando!
No encuentro ese path en ningún archivo y en las definiciones de las rutas solo incluimos hasta /www con lo cual lo otro lo debería tomar implícitamente.
Hola, por las dudas probalo en una navegación privada o borrando cache del navegador. A mi me paso exactamente lo mismo. También me sucede eso si intento acceder como localhost pero si accedo por la ip de mi maquina me funciona (obviamente porque tengo el Mapuche y por ende el SP instalado en mi maquina).
Sino, deberías chequear que los metadatos no tengan errores de sintaxis o ejecución en el IdP. Yo para probar tengo algo básico donde hardcodeo un usuario (cuyo uid debe existir en la base de usuarios de Mapuche):
<?php
$config = array(
'example-userpass' => array(
'exampleauth:UserPass',
'toba:toba' => array(
'uid' => array('toba'),
),
'mapuche:nomeolvides123' => array( // <-- Este sería el que ustedes gestionan (base propia de usuarios, LDAP, Sistema de archivos, etc.)
'uid' => array('mapuche'), // <-- Este id debe existir en la base de usuarios de Mapuche (sino no te deja entrar! ;) )
),
),
);
En este caso creo dos usuarios: toba y mapuche, y sus contraseñas ‘toba’ y ‘nomeolvides123’ respectivamente.