Simplesamlphp como Idp

De Federacion (SSO)
Revisión del 14:53 28 jun 2023 de Mzigaran (discusión | contribs.)
(difs.) ← Revisión anterior | Revisión actual (difs.) | Revisión siguiente → (difs.)
Ir a la navegación Ir a la búsqueda

simpleSAMLphp tiene los siguientes requisitos:

PHP 7.0 o superior

Extensiones de PHP: date, dom, hash, libxml, openssl, pcre, SPL, zlib, mcrypt

Tras haberse asegurado de tenerlas todas, deberá descargar la última versión del software y descomprimirla en un directorio que no sea directamente accesible desde el servidor web. Por ejemplo:

# cd /var
# tar xzf simplesamlphp-1.xxxxx.tar.gz
# mv simplesamlphp-1.xxxxx simplesamlphp

Lo siguiente será indicarle al servidor web que debe servir cierto subdirectorio de simpleSAMLphp en una determina ruta. Por ejemplo, en Apache lo podría hacer añadiendo la siguiente definición a la configuración de un VirtualHost servido mediante SSL:

<VirtualHost *:443>
  # ...
  Alias /simplesaml /var/www/simplesamlphp/www
  # ...
</VirtualHost>

Configuración

Empezamos la configuración editando el fichero habilitamos servicio IDP SAML2 editando el archivo /var/www/simplesamlphp/config/config.php de simpleSAMLphp y modifique los siguientes parámetros como se indica:

* admin.adminpassword: 'IngresarClaveParaAdministrar'

* admin.protectindexpage: false,

* secretsalt: es una cadena que servirá para la generación de elementos aleatorios. Se puede poner cualquiera, aunque se aconseja generarla de manera aleatoria con una orden como la siguiente:

$ tr -c -d '0123456789abcdefghijklmnopqrstuvwxyz' </dev/urandom | \
dd bs=32 count=1 2>/dev/null;echo

* technicalcontact_name: 'Administrador'

* technicalcontact_email: 'mailto:uncorreo@universidad.edu.ar'

* timezone: 'America/Argentina/Buenos_Aires'

* logging.handler: 'syslog'

* language.default: 'es'

* Habilitamos al simplesamlphp como Idp:

Linea 424:

'enable.saml20-idp' => true,

Linea 1060:

'store.type' =>'memcache',

creamos un certificado ssl autofirmado para el IDP:

# cd /var/www/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/simplesamlphp/cert

configuramos nuestro IDP SAML2 editando /var/www/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,

Incorporamos una fuente de autenticación LDAP al IDP, editando el archivo /var/www/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',
               ),