SPConfig

Versión 2 (Emilio Penna, Lunes, 11 de Mayo de 2020 14:58:02 -0300) → Versión 3/7 (Emilio Penna, Lunes, 11 de Mayo de 2020 14:58:38 -0300)


h1. SPConfig

h3. 1. Generar claves

En sp v3 el archivo shibboleth2.xml viene con configuracion para usar dos certificados distintos (signing y encryption), shib-keygen genera uno solo pero se pueden generar dos o usar el mismo para las dos cosas.

Ref: https://tuakiri.ac.nz/confluence/display/Tuakiri/Install+Shibboleth+SP+on+Debian+Based+linux

<pre>
shib-keygen -f -u _shibd -h <mihost-ejemplo.edu.uy> -y 3 -e https://<mihost-ejemplo.edu.uy>/shibboleth -o /etc/shibboleth/
</pre>

h3. 2. Configuracion de entityID

en shibboleth2.xml

Setear identificador de la entidad: entityID. Ejemplo:

<pre><code class="xml">
<ApplicationDefaults entityID="https://<mihost-ejemplo.edu.uy>/shibboleth"
REMOTE_USER="eppn persistent-id targeted-id">
</code></pre>

Ajustes en elemento Sessions:

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

<pre><code class="xml">
<Sessions lifetime="28800" timeout="3600" relayState="ss:mem"
checkAddress="false" handlerSSL="true" cookieProps="; path=/; secure; HttpOnly">
</code></pre>

*CAMBIAR:* cookieProps="https" hace el mismo efecto

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

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

<pre>
shibd -t.
</pre>

La salida esperada es la siguiente:

<pre>
overall configuration is loadable, check console for non-fatal problems
</pre>

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

h3. 4. 7. 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>:

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

h3. 5. 4. 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:

<pre> <code class="xml">
<SSO entityID="https://pirapire.seciu.edu.uy/idp/shibboleth"
</code></pre>

h3. 6. 5. 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

h3. 7. 6. 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]]

h3. 8. 7. 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 fuertemente 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.

*---- shib.conf ESTO NO ES NECESARIO AGREGARLO, YA SE AGREGA AL INSTALAR EL MODULO (20190425)*
El archivo conf-enabled/shib.conf deberia tener estas directivas:

<pre> <code class="xml">

# Ensures handler will be accessible.
#
<Location /Shibboleth.sso>
Satisfy Any
Allow from all
</Location>

#
# Used for example style sheet in error templates.
#
<IfModule mod_alias.c>
<Location /shibboleth-sp>
Satisfy Any
Allow from all
</Location>
Alias /shibboleth-sp/main.css /usr/share/shibboleth/main.css
</IfModule>

</code> </pre>

*----FIN shib.conf*

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

<pre> <code class="xml">

# You MUST enable AuthType shibboleth for the module to process
# any requests, and there MUST be a require command as well.

<Location /secure>
AuthType shibboleth
ShibRequestSetting requireSession 1
require shib-session
</Location>
</code> </pre>

Ejemplos de reglas para control de acceso:
https://www.switch.ch/aai/guides/sp/access-rules/

Por último se debe habilitar la configuración con el siguiente comando:

<pre>
a2enconf shib
</pre>