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“.

Scroll Up