Instalación ShibbolethSP

Versión 5 (Pablo Silva, Miércoles, 23 de Diciembre de 2015 16:05:25 -0300)

1 1
h1. Instalación ShibbolethSP
2 1
3 1
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.
4 1
5 1
6 1
h3. 1. Agregar repositorio
7 1
8 1
La version de Shibboleth SP disponible en los repositorios de debian es bastante obsoleta. El repositorio de SWITCH tiene una version mas actualizada.
9 1
10 1
<pre>
11 1
apt-get install curl
12 1
curl -k -O http://pkg.switch.ch/switchaai/SWITCHaai-swdistrib.asc
13 1
apt-key add SWITCHaai-swdistrib.asc
14 1
apt-get install shibboleth
15 1
</pre>
16 1
17 1
18 1
h3. 2. Habilitar un Virtual Host con HTTPS
19 1
20 1
En forma obligatoria un SP debe ejecutar con HTTPS. Si no se tiene hablitado se puede crear un Virtual Host de la siguiente manera:
21 1
22 1
<pre>
23 1
a2enmod ssl 
24 1
cp default-ssl shibsp1
25 1
a2ensite shibsp1
26 1
</pre>
27 1
28 1
29 1
h3. 3. Verificacion de estado
30 1
31 1
El SP tiene una pagina de estado
32 1
33 1
Para verificar el estado se puede correr el siguiente comando:
34 1
35 1
<pre>
36 2 Pablo Silva
curl -k https://127.0.0.1/Shibboleth.sso/Status
37 2 Pablo Silva
</pre>
38 1
39 2 Pablo Silva
40 1
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:
41 1
42 1
<pre>
43 1
<code class="xml">
44 1
<Handler type="Status" Location="/Status" acl="127.0.0.1 ::1 164.73.129.60"/>
45 1
</code>
46 1
</pre>
47 1
48 2 Pablo Silva
49 2 Pablo Silva
Ante cualquier cambio en la configuración de Shibboleth se debe reiniciar el proceso con los siguientes comando:
50 2 Pablo Silva
51 2 Pablo Silva
<pre>
52 2 Pablo Silva
service shibd stop
53 2 Pablo Silva
service shibd start
54 2 Pablo Silva
</pre>
55 2 Pablo Silva
56 2 Pablo Silva
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.
57 2 Pablo Silva
58 2 Pablo Silva
59 2 Pablo Silva
h3. 4. Genero claves
60 2 Pablo Silva
61 2 Pablo Silva
<pre>
62 2 Pablo Silva
shib-keygen -f -u _shibd -h sp1.seciu.edu.uy -y 3 -e https://sp1.seciu.edu.uy/shibboleth -o /etc/shibboleth/
63 2 Pablo Silva
</pre>
64 2 Pablo Silva
65 2 Pablo Silva
h3. 5. Configuracion de entityID
66 2 Pablo Silva
67 2 Pablo Silva
en shibboleth2.xml
68 2 Pablo Silva
69 2 Pablo Silva
Setear identificador de la entidad: entityID. Ejemplo:
70 2 Pablo Silva
71 5 Pablo Silva
<pre><code class="xml">
72 1
    <ApplicationDefaults entityID="https://sp1.seciu.edu.uy/shibboleth"
73 3 Pablo Silva
                       REMOTE_USER="eppn persistent-id targeted-id">
74 5 Pablo Silva
</code></pre>
75 2 Pablo Silva
76 1
Ajustes en elemento Sessions:
77 2 Pablo Silva
78 1
Poner handlerSSL="true", y agregar propiedades seguras para cookies en cookieProps. Ejemplo:
79 1
80 5 Pablo Silva
<pre><code class="xml">
81 3 Pablo Silva
      <Sessions lifetime="28800" timeout="3600" relayState="ss:mem"
82 3 Pablo Silva
             checkAddress="false" handlerSSL="true" cookieProps="; path=/; secure; HttpOnly">
83 5 Pablo Silva
</code></pre>
84 2 Pablo Silva
85 2 Pablo Silva
Luego se debe reiniciar el proceso de Shibboleth.
86 2 Pablo Silva
87 2 Pablo Silva
Para verificar la configuración se puede ejecutar el siguiente comando: 
88 2 Pablo Silva
89 2 Pablo Silva
<pre>
90 2 Pablo Silva
shibd -t.
91 2 Pablo Silva
</pre>
92 2 Pablo Silva
93 2 Pablo Silva
La salida esperada es la siguiente:
94 2 Pablo Silva
95 2 Pablo Silva
<pre>
96 2 Pablo Silva
overall configuration is loadable, check console for non-fatal problems
97 2 Pablo Silva
</pre>