SPConfig

1. Configuracion de entityID en shibboleth2.xml

Setear identificador de la entidad (entityID). Ejemplo:

1 <ApplicationDefaults entityID="https://spe.seciu.edu.uy/shibboleth" 

2025: ESTO NO PRECISA PORQUE YA VIENE CON TRUE Y COOKIEPROPS=HTTPS, CHEQUEAR QUE PONGA EL SECURE
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).

4. Definir y cargar una fuente de metadata

Obtener metadata del IdP, se adjunta al final la metadata del IdP de test de seciu, si se va a integrar con el IdP de producción debe solicitarla por correo a

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