RIUTEC 2018
Laboratorio en ARIU: practicas con Single Sign On.
Requisitos:
- Sala con conectividad ipv4 con dhcp y dns operativos.
- Computadora del participante (en adelante «laptop«):
- Conectividad ipv4.
- Navegador Web.
- Cliente SSH.
- Virtualbox instalado.
Definiciones:
Dominios:
- ariudemo.edu.ar (para las maquinas vmlabo)
- demo.edu.ar (para el idp de federacion)
Usuarios y contraseñas:
Maquina / Servicio | Usuario | Contraseña |
vmlabo | root | super123 |
Nube | admin | super123 |
ldap | cn=admin,dc=ariudemo,dc=edu,dc=ar | super123 |
Crear VM en Virtualbox.
0) VMLABO:
0.A) laptop: descargar la plantila de maquina virtual vmlabo desde el siguiente enlace: LINK_DE_DESCARGA
0.B) laptop: abrir Virtualbox: Importar servicio virtualizado –> Servicio a Importar (indicar la ruta del archivo descargado del punto anterior).
0.C) laptop: en Preferencias de servicio:
- Controlador USB (Desactivar)
- Reinicializar la dirección MAC de todas las tarjetas de red (Activar)
0.D) laptop: iniciar la maquina virtual vlmabo.
Nota: Puede presentar un error al iniciar la máquina al no encontrar la interfaz de red para crear el puente. Será necesario entonces ir a las Preferencias de red y cambiar el Nombre del adaptador. Luego iniciar.
Configurar un SP con IDP local.
1) IDP SAML con autenticación LDAP:
1.A) vmlabo: acceder a la consola como root, y verificar la dirección ipv4 que le fue asignada por dhcp.
1.B) participante: pensar un nombre de host único para su instancia de «vmlabo» en el dominio ariudemo.edu.ar. Ejemplo: nombre-x.ariudemo.edu.ar
1.C) laptop: incorporar en el archivo etc/hosts una entrada con:
{IPV4 de mi vmlabo} nombre-x.ariudemo.edu.ar
1.D) laptop: navegar https://nombre-x.ariudemo.edu.ar donde tenemos enlaces e informacion útil para la práctica.
1.E) laptop: establecer conexion ssh a nombre-x.ariudemo.edu.ar autenticando como root para comenzar a trabajar sobre vmlabo.
1.F) vmlabo: habilitamos servicio IDP SAML2 editando el archivo /var/www/html/simplesamlphp/config/config.php
- Linea 424:
'enable.saml20-idp' => true,
- Linea 1060:
'store.type' =>'memcache',
1.G) vmlabo: creamos un certificado ssl autofirmado para el IDP:
# cd /var/www/html/simplesamlphp/cert/
# openssl req -x509 -newkey rsa:4096 -keyout server.pem -out server.crt -days 365 -nodes
# chown -R www-data:www-data /var/www/html/simplesamlphp/cert/
1.H) vmlabo: configuramos nuestro IDP SAML2 editando /var/www/html/simplesamlphp/metadata/saml20-idp-hosted.php
- Desde linea 24:
'auth' => 'mi-ldap-local', 'redirect.sign' => true, 'name' => 'IDP nombre-X', 'redirect.validate' => true, 'assertion.encryption' => true,
1.I) vmlabo: incorporamos una fuente de autenticacion LDAP al IDP, editando el archivo /var/www/html/simplesamlphp/config/authsources.php
- Desde linea 13 intercalar lo siguiente:
'mi-ldap-local' => array( 'ldap:LDAP', 'hostname' => 'ldap://localhost', 'referrals' => TRUE, 'attributes' => array( 'uid', 'cn', 'sn', 'mail', ), 'search.enable' => TRUE, 'search.base' => 'dc=ariudemo,dc=edu,dc=ar', 'search.attributes' => array('uid', 'mail'), 'search.username' => 'cn=admin,dc=ariudemo,dc=edu,dc=ar', 'search.password' => 'super123', ),
1.J) participante: Pensar un nombre de dominio para que adopten los usuarios ldap preestablecidos, por ejemplo @miuniversidad.demo.edu.ar
1.K) laptop: editamos los usuarios LDAP seteandoles el atributo mail con el dominio elegido.
- Navegar https://nombre-x.ariudemo.edu.ar/phpldapadmin –> login (password super123)
- En panel izquierdo desplegar dc=ariudemo,dc=edu,dc=ar y seleccionar los usuarios de a uno, por ejemplo «cn=Carlos Gardel»
- Buscar el campo Email y modificarle el dominio, quedando por ejemplo carlos.gardel@miuniversidad.demo.edu.ar.
- Hacia abajo presionar el botón «update object«, y luego nuevamente «update object«.
1.L) laptop: comprobamos acceso y autenticacion en el IDP navegando https://nombre-x.ariudemo.edu.ar/simplesaml
- Solapa «Autenticacion» –> Probar las fuentes para la autentificación ya configuradas –> mi-ldap-local
- Probar con alguno de estos usuarios y contraseñas:
Usuario | Contraseña |
carlos | gardel |
gabriela | sabatini |
martin | fierro |
tita | merello |
2) SP Nextcloud:
2.A) vmlabo: creamos un certificado ssl para usar en el SP
# cd /tmp
# openssl req -x509 -newkey rsa:4096 -keyout server.pem -out server.crt -days 365 -nodes
2.B) vmlabo: Configuramos dominio para la nube editando el archivo /var/www/html/nextcloud/config/config.php
- en la linea 8:
0 => 'nombre-x.ariudemo.edu.ar',
- en la linea 13:
overwrite.cli.url => 'nombre-x.ariudemo.edu.ar/nube',
2.C) laptop: creamos la configuracion SAML en Nextcloud.
- Navegar https://nombre-x.ariudemo.edu.ar/nube/index.php/settings/admin/saml (usuario admin y clave super123)
- Seleccionamos «Use la autenticacion nativa SAML»
- Tildar la opcion «Permitir el uso de back-ends de múltiples usuarios (por ejemplo, LDAP)»
- Atributo para definir la UID = mail
- Visualizacion opcional del nombre del IDP = SSO MiOrganizacion
- Seleccionar «Mostrar configuracion del proveedor de servicio»
- Certificado X.509 del Proveedor de Servicio = pegar el contenido del archivo /tmp/server.crt
- Llave privada del Proveedor de Servicio = pegar el contenido del archivo /tmp/server.pem
- Identificador de entidad del IDP = https://nombre-x.ariudemo.edu.ar/simplesaml/saml2/idp/metadata.php
- URL objetivo del IdP donde el SP mandara mensaje de Solicitud de Autenticacion = https://nombre-x.ariudemo.edu.ar/simplesaml/saml2/idp/SSOService.php
- Seleccionar «Mostrar configuracion del Proveedor de identidad opcional…»
- Direccion URL del Idp donde el SP enviara peticiones SLO = https://nombre-x.ariudemo.edu.ar/simplesaml/saml2/idp/SingleLogoutService.php
- Certificado X.509 del IdP = pegar texto obtenido en https://nombre-x.ariudemo.edu.ar/simplesaml/module.php/saml/idp/certs.php/idp.crt
- Seleccionar «Mostrar configuracion de mapeado de atributos…»
- Atributo para definir el nombre mostrado = cn
- Atributo para definir la direccion de correo electronico = mail
- Seleccionar «Mostrar configuracion de seguridad…»
- Firmas y cifrado ofrecido = tildar los 5 casilleros.
- Firmas y cifrado necesitado = tildar los casilleros 1,2,3,4 y 6.
- Presionar el boton «Descargar metadatos en XML«, abrirlo y copiar su contenido.
- Navegar hacia el conversor de metadatos de simplesamlphp: https://nombre-x.ariudemo.edu.ar/simplesaml/admin/metadata-converter.php (login con admin, super123)
- Pegar el XML que tenemos copiado y presionar el botón «Analizar«
- Copiar el contenido de los metadatos convertidos a formato php.
2.D) vmlabo: editar el archivo /var/www/html/simplesamlphp/metadata/saml20-sp-remote.php
- Pegar al final los metadatos convertidos
- Extraer o comentar la linea donde dice ‘expire‘.
- Modificar los valores ‘encryption‘ y ‘signing‘ poniendo todos en true, guardar y cerrar el archivo.
2.E) laptop: navegar la nube y probar la autenticacion «SSO Mi Organizacion» con los usuarios ldap de prueba.
Configurar un SP con IDP de Federacion.
3) SP Nextcloud:
3.A) laptop: incorporar en el archivo etc/hosts una entrada con:
{IPV4 del idpF} idpf.demo.edu.ar
3.B) laptop: Creamos una configuracion adicional SAML en Nextcloud.
- Navegar https://nombre-x.ariudemo.edu.ar/nube/index.php/settings/admin/saml (usuario admin y clave super123)
- + Añadir proveedor de identidad
- Tildar la opcion «Permitir el uso de back-ends de múltiples usuarios (por ejemplo, LDAP)»
- Atributo para definir la UID = mail
- Visualizacion opcional del nombre del IDP = SSO Federacion
- Seleccionar «Mostrar configuracion del proveedor de servicio»
- Certificado X.509 del Proveedor de Servicio = pegar el contenido del archivo /tmp/server.crt
- Llave privada del Proveedor de Servicio = pegar el contenido del archivo /tmp/server.pem
- Identificador de entidad del IDP = https://idpf.demo.edu.ar/simplesaml/saml2/idp/metadata.php
- URL objetivo del IdP donde el SP mandara mensaje de Solicitud de Autenticacion = https://idpf.demo.edu.ar/simplesaml/saml2/idp/SSOService.php
- Seleccionar «Mostrar configuracion del Proveedor de identidad opcional…»
- Direccion URL del Idp donde el SP enviara peticiones SLO = https://idpf.demo.edu.ar/simplesaml/saml2/idp/SingleLogoutService.php
- Certificado publico X.509 del IdP = descargarlo y pegar su contenido. Obtenerlo desde https://idpf.demo.edu.ar/simplesaml/module.php/saml/idp/certs.php/idp.crt
- Seleccionar «Mostrar configuracion de mapeado de atributos…»
- Atributo para definir el nombre mostrado = cn
- Atributo para definir la direccion de correo electronico = mail
- Seleccionar «Mostrar configuracion de seguridad…»
- Firmas y cifrado ofrecido = tildar los 5 casilleros.
- Firmas y cifrado necesitado = tildar los casilleros 1,2,3,4 y 6.
- Presionar el boton «Descargar metadatos en XML«, abrirlo y copiar su contenido.
- Navegar hacia el conversor de metadatos de simplesamlphp: https://nombre-x.ariudemo.edu.ar/simplesaml/admin/metadata-converter.php (login con admin, super123)
- Pegar el XML que tenemos copiado y presionar el botón «Analizar«
- Copiar el contenido de los metadatos convertidos a formato php.
4) IDP Federacion:
4.A) laptop: navegar la siguiente url para obtener los metadatos del SP-Federacion en formato php (copiar el texto)
https://idpf.demo.edu.ar/simplesaml/module.php/saml/sp/metadata.php/Federacion?output=xhtml
4.B) vmlabo: editar el archivo /var/www/html/simplesamlphp/metadata/saml20-sp-remote.php
Pegar al final los metadatos obtenidos en formato php del SP-Federacion.
4.C) laptop: (participante) conectarse por ssh a idpf.demo.edu.ar con usuario demo y contraseña demo
- crear el archivo /home/demo/nombre-x.sp-metadata y pegar el contenido de los metadatos convertidos.
- crear el archivo /home/demo/nombre-x.idp-metadata y pegar los metadatos del IDP (local) armado en la Etapa 1.
- Obtenerlos en formato php desde https://nombre-x.ariudemo.edu.ar/simplesaml/saml2/idp/metadata.php?output=xhtml
4.D) idp-federacion: (orador) editar el archivo /var/www/simplesamlphp/metadata/saml20-sp-remote.php
- Incorporar el contenido del archivo /home/demo/nombre-x.sp-metadata
- Extraer o comentar la linea donde dice ‘expire‘.
- Modificar los valores ‘encryption‘ y ‘signing‘ poniendo todos en true, guardar y cerrar el archivo.
- Editar el archivo /var/www/simplesamlphp/metadata/saml20-idp-remote.php
- Pegar el contenido del archivo /home/demo/nombre-x.idp-metadata
4.F) laptop: navegar la nube https://nombre-x.ariudemo.edu.ar/nube y probar la autenticacion «SSO Federacion«.