« Anterior -
Versión 3/7
(diff) -
Siguiente » -
Versión actual
Emilio Penna, Lunes, 11 de Mayo de 2020 14:58:38 -0300
SPConfig¶
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
shib-keygen -f -u _shibd -h <mihost-ejemplo.edu.uy> -y 3 -e https://<mihost-ejemplo.edu.uy>/shibboleth -o /etc/shibboleth/
2. Configuracion de entityID¶
en shibboleth2.xml
Setear identificador de la entidad: entityID. Ejemplo:
1 <ApplicationDefaults entityID="https://<mihost-ejemplo.edu.uy>/shibboleth"
2 REMOTE_USER="eppn persistent-id targeted-id">
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 (shibd stop/ 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
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.
4. 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>:
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 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:
1
2 # Ensures handler will be accessible.
3 #
4 <Location /Shibboleth.sso>
5 Satisfy Any
6 Allow from all
7 </Location>
8
9 #
10 # Used for example style sheet in error templates.
11 #
12 <IfModule mod_alias.c>
13 <Location /shibboleth-sp>
14 Satisfy Any
15 Allow from all
16 </Location>
17 Alias /shibboleth-sp/main.css /usr/share/shibboleth/main.css
18 </IfModule>
19
----FIN shib.conf
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>
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:
a2enconf shib