SPConfig

Versión 10 (Emilio Penna, Martes, 18 de Febrero de 2025 14:58:41 -0300)

1 1
h1. SPConfig
2 1
3 1
4 1
5 8 Emilio Penna
h3. 1. Configuracion de entityID en shibboleth2.xml
6 1
7 9 Emilio Penna
Setear identificador de la entidad (entityID). Ejemplo:
8 1
9 1
<pre><code class="xml">
10 9 Emilio Penna
<ApplicationDefaults entityID="https://spe.seciu.edu.uy/shibboleth"
11 1
</code></pre>
12 1
13 10 Emilio Penna
14 10 Emilio Penna
2025: ESTO NO PRECISA PORQUE YA VIENE CON TRUE Y COOKIEPROPS=HTTPS, CHEQUEAR QUE PONGA EL SECURE
15 1
Ajustes en elemento Sessions:
16 1
17 1
Poner handlerSSL="true", y agregar propiedades seguras para cookies en cookieProps. Ejemplo:
18 1
19 1
<pre><code class="xml">
20 1
      <Sessions lifetime="28800" timeout="3600" relayState="ss:mem"
21 1
             checkAddress="false" handlerSSL="true" cookieProps="; path=/; secure; HttpOnly">
22 1
</code></pre>
23 1
24 1
*CAMBIAR:* cookieProps="https" hace el mismo efecto
25 1
26 5 Emilio Penna
Luego se debe reiniciar el proceso de Shibboleth (service shibd stop/service shibd start).
27 1
28 1
Para verificar la configuración se puede ejecutar el siguiente comando: 
29 1
30 1
<pre>
31 1
shibd -t.
32 1
</pre>
33 1
34 1
La salida esperada es la siguiente:
35 1
36 1
<pre>
37 1
overall configuration is loadable, check console for non-fatal problems
38 1
</pre>
39 1
Es posible que de un warning porque todavia no hay ninguna metadata de IdP configuradas (no MetadataProvider).
40 5 Emilio Penna
41 1
42 10 Emilio Penna
43 10 Emilio Penna
44 10 Emilio Penna
45 10 Emilio Penna
46 10 Emilio Penna
-------------------------------------------
47 1
48 1
h3. 4. Definir y cargar una fuente de metadata
49 1
50 8 Emilio Penna
Obtener metadata del IdP, se adjunta al final la metadata del IdP de test de seciu, si se va a integrar con el IdP de producción debe solicitarla por correo a idp@seciu.edu.uy
51 1
52 1
Guardarla en el directorio metadata de su SP (si no existe crearlo).
53 1
54 1
/etc/shibboleth/metadata/metadata-idp-test-udelar.xml
55 1
56 1
Registrarla en el SP, para esto, en el archivo shibboleth2.xml, ajustar el path en el elemento <MetadataProvider>:
57 1
58 1
<pre> <code class="xml">
59 1
<MetadataProvider type="XML" path="/etc/shibboleth/metadata/metadata-idp-test-udelar.xml" ></MetadataProvider>
60 1
</code> </pre>
61 1
62 1
63 3 Emilio Penna
h3. 5. Configurar Inicio de Sesión
64 1
65 1
Se debe configurar elemento SSO dentro del archivo shibboleth2.xml para que use el provedor de identidad de test de Seciu: 
66 1
67 1
<pre> <code class="xml">
68 1
<SSO entityID="https://pirapire.seciu.edu.uy/idp/shibboleth"
69 1
</code></pre>
70 1
71 3 Emilio Penna
h3. 6. Configuración del archivo attribute-map.xml
72 1
73 1
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.
74 1
75 1
Se puede utilizar el que viene por defecto, luego se van descomentando o agregando los atributos que se utilicen.
76 1
Al final se adjunta un ejemplo de archivo attribute-map.xml
77 1
78 1
79 3 Emilio Penna
h3. 7. Enviar Metadata de su SP para registro
80 1
81 1
Debe obtener la metadata de su SP y contactarse con Seciu para su registro. 
82 1
83 1
La información sobre como obtener y ajustar la metadata puede verla en esta pagina: [[SP-Metadata]]
84 1
85 1
86 3 Emilio Penna
h3. 8. Configuracion de Apache para proteger un recurso
87 1
88 1
En Apache, se recomienda setear correctamente el ServerName y también setear "UseCanonicalName On".
89 6 Emilio Penna
También se recomienda utilizar el "worker" MPM.
90 1
91 1
Referencia: https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPApacheConfig
92 1
93 1
Al instalar el modulo, se agrega mods-available/shib2.load, donde se carga el módulo.
94 1
95 1
96 1
Para agregar un recurso (Location) protegido, agregar en shib.conf o en el virtual host:
97 1
98 1
<pre> <code class="xml">
99 1
100 1
# You MUST enable AuthType shibboleth for the module to process
101 1
# any requests, and there MUST be a require command as well.
102 1
103 1
<Location /secure>
104 1
  AuthType shibboleth
105 1
  ShibRequestSetting requireSession 1
106 1
  require shib-session
107 1
</Location>
108 1
</code> </pre>
109 1
110 7 Emilio Penna
Se pueden definir reglas mas complejas para control de acceso, incluso utilizando los aributos emitidos por el IdP.
111 1
Ejemplos de reglas para control de acceso:
112 1
https://www.switch.ch/aai/guides/sp/access-rules/