Instalación ShibbolethSP
Versión 5 (Pablo Silva, Miércoles, 23 de Diciembre de 2015 16:05:25 -0300) → Versión 6/8 (Pablo Silva, Miércoles, 23 de Diciembre de 2015 16:07:43 -0300)
h1. Instalación ShibbolethSP
En esta guia se describe la instalación de Shibboleth SP en un equipo con Debian8 y Apache 2.4. La instalación se realizó en el host sp1.seciu.edu.uy, se debe ajustar el nombre al que corresponda.
h3. 1. Agregar repositorio
La version de Shibboleth SP disponible en los repositorios de debian es bastante obsoleta. El repositorio de SWITCH tiene una version mas actualizada.
<pre>
apt-get install curl
curl -k -O http://pkg.switch.ch/switchaai/SWITCHaai-swdistrib.asc
apt-key add SWITCHaai-swdistrib.asc
apt-get install shibboleth
</pre>
h3. 2. Habilitar un Virtual Host con HTTPS
En forma obligatoria un SP debe ejecutar con HTTPS. Si no se tiene hablitado se puede crear un Virtual Host de la siguiente manera:
<pre>
a2enmod ssl
cp default-ssl shibsp1
a2ensite shibsp1
</pre>
h3. 3. Verificacion de estado
El SP tiene una pagina de estado
Para verificar el estado se puede correr el siguiente comando:
<pre>
curl -k https://127.0.0.1/Shibboleth.sso/Status
</pre>
Por defecto solo permite el acceso a la pagina de estado desde localhost. Para habilitar el acceso desde otro equipo, se puede agregar la IP desde la que se quiere acceder. Para esto, editar /etc/shibboleth/shibboleth2.xml, y agregar la ip en el elemento Handler. Ejemplo:
<pre>
<code class="xml">
<Handler type="Status" Location="/Status" acl="127.0.0.1 ::1 164.73.129.60"/>
</code>
</pre>
Ante cualquier cambio en la configuración de Shibboleth se debe reiniciar el proceso con los siguientes comando:
<pre>
service shibd stop
service shibd start
</pre>
Luego accediendo a la dirección https://sp1.seciu.edu.uy/Shibboleth.sso/Status se puede ver una página xml con información del SP.
h3. 4. Genero claves
<pre>
shib-keygen -f -u _shibd -h sp1.seciu.edu.uy -y 3 -e https://sp1.seciu.edu.uy/shibboleth -o /etc/shibboleth/
</pre>
h3. 5. Configuracion de entityID
en shibboleth2.xml
Setear identificador de la entidad: entityID. Ejemplo:
<pre><code class="xml">
<ApplicationDefaults entityID="https://sp1.seciu.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>
Luego se debe reiniciar el proceso de Shibboleth.
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. 6. Definir y cargar una fuente de metadata
Obtener metadata del IdP, ej:
https://login.udelar.edu.uy/idp/shibboleth
Se adjunta al final la metadata del IdP de Udelar.
Guardarla en el directorio metadata, si no exsite crearlo.
/etc/shibboleth/metadata/metadata-idp1.xml
Registrarla en el SP, para esto referenciar en shibboleth2.xml
<pre> <code class="xml">
<MetadataProvider type="XML" path="/etc/shibboleth/metadata/metadata.xml" ></MetadataProvider>
</code> </pre>