====== 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|}}