SPConfig

1. Generar claves

Se deben generar claves para firma y cifrado.

shib-keygen -n sp-signing -f -u _shibd -h <mihost-ejemplo.edu.uy> -y 20 -e https://<mihost-ejemplo.edu.uy>/shibboleth -o /etc/shibboleth/

shib-keygen -n sp-encrypt -f -u _shibd -h <mihost-ejemplo.edu.uy> -y 20 -e https://<mihost-ejemplo.edu.uy>/shibboleth -o /etc/shibboleth/

Nota para version anterior de shibboleth SP: en la version anterior se usaba una sola clave para las dos cosas.
Ref: https://tuakiri.ac.nz/confluence/display/Tuakiri/Install+Shibboleth+SP+on+Debian+Based+linux

2. Configuracion de entityID

en shibboleth2.xml

Setear identificador de la entidad: entityID. Ejemplo:

1     <ApplicationDefaults entityID="https://<mihost-ejemplo.edu.uy>/shibboleth" 
2                        REMOTE_USER="eppn persistent-id targeted-id">

Ajustes en elemento Sessions:

Poner handlerSSL="true", y agregar propiedades seguras para cookies en cookieProps. Ejemplo:

1       <Sessions lifetime="28800" timeout="3600" relayState="ss:mem" 
2              checkAddress="false" handlerSSL="true" cookieProps="; path=/; secure; HttpOnly">

CAMBIAR: cookieProps="https" hace el mismo efecto

Luego se debe reiniciar el proceso de Shibboleth (service shibd stop/service shibd start).

Para verificar la configuración se puede ejecutar el siguiente comando:

shibd -t.

La salida esperada es la siguiente:

overall configuration is loadable, check console for non-fatal problems

Es posible que de un warning porque todavia no hay ninguna metadata de IdP configuradas (no MetadataProvider).

3. Prueba con TestShib

Si desea verificar la configuración del SP se puede probar con el Proveedor de Identidad público de prueba provisto por TestShib:

https://www.testshib.org/configure.html

Una vez realizada esta prueba puede continuar con la configuración con el Provedor de Identidad de la Universidad.

4. Definir y cargar una fuente de metadata

Obtener metadata del IdP, se adjunta al final la metadata del IdP de test de seciu.

Guardarla en el directorio metadata de su SP (si no existe crearlo).

/etc/shibboleth/metadata/metadata-idp-test-udelar.xml

Registrarla en el SP, para esto, en el archivo shibboleth2.xml, ajustar el path en el elemento <MetadataProvider>:

 1 <MetadataProvider type="XML" path="/etc/shibboleth/metadata/metadata-idp-test-udelar.xml" ></MetadataProvider>
 

5. Configurar Inicio de Sesión

Se debe configurar elemento SSO dentro del archivo shibboleth2.xml para que use el provedor de identidad de test de Seciu:

 1 <SSO entityID="https://pirapire.seciu.edu.uy/idp/shibboleth" 

6. Configuración del archivo attribute-map.xml

Shibboleth SP extrae los atributos del Assertion SAML que le envia el IdP, y almacena los valores en variables del servidor web. El mapeo entre los atributos recibidos y las variables se define en el archivo attribute-map.xml.

Se puede utilizar el que viene por defecto, luego se van descomentando o agregando los atributos que se utilicen.
Al final se adjunta un ejemplo de archivo attribute-map.xml

7. Enviar Metadata de su SP para registro

Debe obtener la metadata de su SP y contactarse con Seciu para su registro.

La información sobre como obtener y ajustar la metadata puede verla en esta pagina: SP-Metadata

8. Configuracion de Apache para proteger un recurso

En Apache, se recomienda setear correctamente el ServerName y también setear "UseCanonicalName On".
También se recomienda utilizar el "worker" MPM.

Referencia: https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPApacheConfig

Al instalar el modulo, se agrega mods-available/shib2.load, donde se carga el módulo.

Para agregar un recurso (Location) protegido, agregar en shib.conf o en el virtual host:

  1 
 2 # You MUST enable AuthType shibboleth for the module to process
 3 # any requests, and there MUST be a require command as well.
 4 
 5 <Location /secure>
 6   AuthType shibboleth
 7   ShibRequestSetting requireSession 1
 8   require shib-session
 9 </Location>
 

Se pueden definir reglas mas complejas para control de acceso, incluso utilizando los aributos emitidos por el IdP.
Ejemplos de reglas para control de acceso:
https://www.switch.ch/aai/guides/sp/access-rules/

metadata-idp-test-udelar.xml (11,9 KB) Emilio Penna, Lunes, 11 de Mayo de 2020 16:33:08 -0300

attribute-map.xml (4,3 KB) Emilio Penna, Lunes, 11 de Mayo de 2020 16:34:05 -0300