====== Passi per configurare Shibboleth service provider su Windows Server + IIS ======
* Sistema operativo: Windows Server 2016
* Versione IIS: 10.0.14393.0
* Versione shibboleth SP: 3.0.4.2
===== Ruoli e funzioni Windows Server=====
{{:guide_pubbliche:howto:identity:001.png?600|}}
==== Download Shibboleth service provider ====
[[https://shibboleth.net/downloads/service-provider/|https://shibboleth.net/downloads/service-provider/]]
{{:guide_pubbliche:howto:identity:002.png?800|}}
==== Installazione Shibboleth service provider ====
Durante il wizard dell'installatore, spuntare la voce "Configure IIS support"
{{:guide_pubbliche:howto:identity:003.png?600|}}
==== Verificare la corretta installazione delle DLL in IIS ====
Verificare che nel Site opportuno, nella sezione "Modules" abbia le i moduli nativi Shibboleth (32/64 bit)
{{:guide_pubbliche:howto:identity:004.png?800|}}
==== Configurazione shibboleth service provider ====
(cambiare cartella in C:\opt\shibboleth-sp\etc\shibboleth)
=== shibboleth2.xml ===
(Sezioni da personalizzare)
Site id deve corrpispondere all'ID presente in IIS; il Site name corrisponde all'host (FQDN)
{{:guide_pubbliche:howto:identity:005.png?800|}}
Host name corrisponde sempre all'host FQDN; con path si indica la location da proteggere mediante shibboleth (in questo esempio la location protetta è /secure)
Configurare l'entityID del proprio shibboleth service provider (è una label, che di norma corrisponde al proprio schema+FQDN+/shibboleth -> https://app-infocad-dev2016.unipr.it/shibboleth):
SAML2
Configurare il MetadataProvider (in questo caso staticamente via file)
In questo caso nel file partner-metadata.xml andrà salvato il metadata IdP UNIPR scaricabile dal link [[https://shibidp.unipr.it/idp/shibboleth|https://shibidp.unipr.it/idp/shibboleth]]
=== attribute-map.xml ===
Includere gli elementi Attributi necessari e richiesti durante la fase di accreditamento, come da istruzioni presenti al seguenti link [[guide_pubbliche:howto:identity:shibbolethsp_config|Service Provider: HowTo Shibboleth]]
Esempio:
==== Generare i certificati per la firma e la crittografia delle asserzioni ====
I ceritifcati generati localmente per mezzo del tool "seckeygen.bat" presente in C:\opt\shibboleth-sp\etc\shibboleth, servono esclusivamente per la firma e la crittografia delle asserzioni e dopo la generazione saranno presenti in linea nel metadata del service provider, che dovrà successivamente essere scaricato ed inviato all'IdP UNIPR come da istruzioni presenti qui [[guide_pubbliche:howto:identity:shibbolethsp_config|Service Provider: HowTo Shibboleth]]
C:\opt\shibboleth-sp\etc\shibboleth>keygen.bat --help
usage: keygen [-h hostname for cert] [-y years to issue cert] [-e entityID to embed in cert] [-n filename prefix] [-o output dir]
Esempio:
keygen.bat -h app-infocad-dev2016.unipr.it -y 10 -e https://app-infocad-dev2016.unipr.it/shibboleth -n sp-signing
-INVIO-
keygen.bat -h app-infocad-dev2016.unipr.it -y 10 -e https://app-infocad-dev2016.unipr.it/shibboleth -n sp-encrypt
-INVIO-
In questo modo si generano due certificati rispettivamente dedicati per la firma e per la crittografia.
Questi saranno referenziati nel file shibboleth2.xml nella sezione
==== Scaricare il proprio Metadata da inviare a UNIPR ====
E' possibile scaricare una versione del Metadata relativo al proprio SP direttamente dal link del proprio server su cui avete installato il service provider shibboleth:
https:///Shibboleth.sso/Metadata
==== Raccogliere gli attributi rilasciati dall'IdP dalle variabili server via IIS ====
Esempio di pagina ASP per raccogliere gli attributi rilasciati dell'IdP in variabili server:
<%@ language="javascript"%>
<%
Response.Write("Variabili Server
")
Response.Write("Cognome: "+ Request.ServerVariables["sn"])
Response.Write("
");
Response.Write("Nome: "+ Request.ServerVariables["givenName"])
Response.Write("
");
Response.Write("CF: "+ Request.ServerVariables["codicefiscale"])
Response.Write("
");
Response.Write("Email: "+ Request.ServerVariables["mail"])
Response.Write("
");
Response.Write("OU: "+ Request.ServerVariables["organizationalUnit"])
%>
Alcune versioni o combinazioni di versioni di sistema operativo e shibboleth service provider potrebbero rilasciare i valori degli attributi duplicati, pertanto la soluzione per recuperare valori singoli degli attributi è la seguente:
<%@ language="javascript"%>
<%
Response.Write("Variabili Server
")
Response.Write("Cognome: "+ Request.ServerVariables["sn"].split(';')[0])
Response.Write("
");
Response.Write("Nome: "+ Request.ServerVariables["givenName"].split(';')[0])
Response.Write("
");
Response.Write("CF: "+ Request.ServerVariables["codicefiscale"].split(';')[0])
Response.Write("
");
Response.Write("Email: "+ Request.ServerVariables["mail"].split(';')[0])
Response.Write("
");
Response.Write("OU: "+ Request.ServerVariables["organizationalUnit"].split(';')[0])
%>
==== Riavvio del service provider e di IIS ====
Al termine delle operazioni di configurazione riavviare il demone di Shibboleth service provider e del web server IIS
* Riavvio di Shibboleth SP
{{:guide_pubbliche:howto:identity:006.png?600|}}
* Riavvio di IIS
{{:guide_pubbliche:howto:identity:007.png?600|}}