SPConfig

Versión 9 (Emilio Penna, Martes, 18 de Febrero de 2025 14:51:36 -0300) → Versión 10/11 (Emilio Penna, Martes, 18 de Febrero de 2025 14:58:41 -0300)


h1. SPConfig

h3. 1. Configuracion de entityID en shibboleth2.xml

Setear identificador de la entidad (entityID). Ejemplo:

<pre><code class="xml">
<ApplicationDefaults entityID="https://spe.seciu.edu.uy/shibboleth"
</code></pre>

2025: ESTO NO PRECISA PORQUE YA VIENE CON TRUE Y COOKIEPROPS=HTTPS, CHEQUEAR QUE PONGA EL SECURE


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>

*CAMBIAR:* cookieProps="https" hace el mismo efecto

Luego se debe reiniciar el proceso de Shibboleth (service shibd stop/service shibd start).

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>
Es posible que de un warning porque todavia no hay ninguna metadata de IdP configuradas (no MetadataProvider).

-------------------------------------------



h3. 4. Definir y cargar una fuente de metadata

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

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>:

<pre> <code class="xml">
<MetadataProvider type="XML" path="/etc/shibboleth/metadata/metadata-idp-test-udelar.xml" ></MetadataProvider>
</code> </pre>

h3. 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:

<pre> <code class="xml">
<SSO entityID="https://pirapire.seciu.edu.uy/idp/shibboleth"
</code></pre>

h3. 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

h3. 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]]

h3. 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 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.

Para agregar un recurso (Location) protegido, agregar en shib.conf o en el virtual host:

<pre> <code class="xml">

# You MUST enable AuthType shibboleth for the module to process
# any requests, and there MUST be a require command as well.

<Location /secure>
AuthType shibboleth
ShibRequestSetting requireSession 1
require shib-session
</Location>
</code> </pre>

Se pueden definir reglas mas complejas para control de acceso, incluso utilizando los aributos emitidos por el IdP.
Ejemplos de reglas para control de acceso:
https://www.switch.ch/aai/guides/sp/access-rules/