Instalación ShibbolethSP
Versión 6 (Pablo Silva, Miércoles, 23 de Diciembre de 2015 16:07:43 -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>  | 
| 98 | 6 | Pablo Silva | |
| 99 | 6 | Pablo Silva | |
| 100 | 6 | Pablo Silva | h3. 6. Definir y cargar una fuente de metadata  | 
| 101 | 6 | Pablo Silva | |
| 102 | 6 | Pablo Silva | Obtener metadata del IdP, ej:  | 
| 103 | 6 | Pablo Silva | |
| 104 | 6 | Pablo Silva | https://login.udelar.edu.uy/idp/shibboleth  | 
| 105 | 6 | Pablo Silva | |
| 106 | 6 | Pablo Silva | Se adjunta al final la metadata del IdP de Udelar.  | 
| 107 | 6 | Pablo Silva | |
| 108 | 6 | Pablo Silva | Guardarla en el directorio metadata, si no exsite crearlo.  | 
| 109 | 6 | Pablo Silva | |
| 110 | 6 | Pablo Silva | /etc/shibboleth/metadata/metadata-idp1.xml  | 
| 111 | 6 | Pablo Silva | |
| 112 | 6 | Pablo Silva | Registrarla en el SP, para esto referenciar en shibboleth2.xml  | 
| 113 | 6 | Pablo Silva | |
| 114 | 6 | Pablo Silva | <pre> <code class="xml">  | 
| 115 | 6 | Pablo Silva | <MetadataProvider type="XML" path="/etc/shibboleth/metadata/metadata.xml" ></MetadataProvider>  | 
| 116 | 6 | Pablo Silva | </code> </pre>  |