Cohesion Info

Integrazione .Net SsoLibrary

Info Integrazione mediante componente .Net SsoLibrary (vecchia modalità)

Con il presente si vuole fornire una panoramica completa delle modalità di integrazione e delle configurazioni di utilizzo del Service Provider fornito con Cohesion in applicativi web che richiedono autenticazione e profilazione utente.

Verrà in dettaglio descritta la procedura di installazione in ambiente IIS mediante SSOLibrary e la configurazione per l’utilizzo classico ed il funzionamento in modalità federata SAML2.0.

Questa modalità è possibile solo qualora venga rilasciato all’ente un certificato personale per la comunicazione con Cohesion. Qualora questo certificato non sia stato fornito è necessario usare la modalità di integrazione mediante classe C# CohesionSSO.cs.


 

Per l’integrazione in siti sviluppati in ambiente .NET il Service Provider Cohesion è presente nel pacchetto SSOLibrary ed utilizza, come supporto, la libreria G2G presente nel pacchetto SetupG2Gv2.

Di seguito sono elencati i passi da effettuare:

  1. Installare il certificato personale.
  2. Installare i certificati CA presenti nella cartella “certificati cohesion CA” del pacchetto.
  3. Assicurarsi che i certificati siano stati installati per il Computer locale e non per l’Utente corrente:
    Aprire mmc.exe da Start/Esegui, poi scegliere di seguito “file”, “aggiungi snap-in”, “certificati”, “Aggiungi”, “Account Utente”, “Aggiungi”, “Account Computer”. Controllare che dentro “Account Computer” sotto “Personale” sia presente il proprio certificato, altrimenti fare tasto destro e scegliere importa certificato. Fare lo stesso per i certificati CA presenti nella cartella “Autorità di certificazione radice attendibile”.
  4. Aprire il certificato personale e salvarsi il valore del campo “Identificazione Personale”.
  5. Installare G2G lanciando SetupG2Gv2.msi ed una volta conclusa l’installazione modificare il file di configurazione G2G (raggiungibile da Start->Programmi->Cohesion->G2Gv2->G2G.config) aggiungendo il valore “Identificativo Personale” del certificato letto al punto (.4) dove richiesto. Attenzione a fare copia incolla del valore in quanto gli spazi tra le cifre vanno mantenuti, ma talvolta vengono copiati dei caratteri speciali che vengono visualizzati come spazi ma in realtà non lo sono. E’ consigliabile quindi una volta incollato il valore dell’identificativo personale, cancellare ogni spazio e rimettercelo a mano. Di seguito un esempio di File G2G.config:

    <?xml version="1.0" encoding="utf-8" ?>
    <appSettings Application="G2G" version="2.0">
    <add key="enteId" value="6ad06ccf-1f4b-480e-8ee7-00852db5e49f" />
    <add key="certSignHash" value="VALORE LETTO AL PUNTO 4" />
    </appSettings
    >

  6. Installare Microsoft WSE fornito nel pacchetto Microsoft WSE 2.0 SP3.msi. Durante l’installazione scegliere Administrator in modo da installare sia le Runtime che i Tools.
  7. Aprire l’ X509 Certificate Tool installato con il WSE al punto precedente, selezionate il certificato personale installato sia per l'utente corrente sia per il computer locale ed impostate l'utente ASPNET (Windows 2000/XP) o NETWORK SERVICE (Windows 2003) in lettura. Se non si è sicuri dell'utente è possibile mettere "everyone". Nel caso non si disponesse del Tool X509 Certificate Tool è possibile cambiare direttamente i permessi a tutta la directory
       C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA
    ed a tutte le sottocartelle.
  8. Installate la SSOLibrary eseguendo SSOLibrary v4.0.msi ed una volta conclusa l’installazione modificate il file di configurazione (raggiungibile da Start->Programmi->Neta Spa->SSOLibrary v4.0) come descritto di seguito:

    - Modalità di funzionamento Classica

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
    <appSettings>
     <add key="SSOLibrary.Registrazione.Url"
    value= "&amp;RegistrazioneUrl=http://cohesion2.regione.marche.it/SCRegistration/Registrazione.aspx"/>
    <add key="sso.check.url" value="http://cohesion2.regione.marche.it/SSO/Check.aspx"/>
    <add key="SSOLibrary.SsoWs.wsCheckSessionSSO" value="http://cohesion2.regione.marche.it/SSO/wsCheckSessionSSO.asmx"/>

    <add key="sa.login.url" value=""/>
    <add key="SSOLibrary.SsoWs.URLLogout" value="../Logout.aspx?ReturnUrl=index.aspx"/>
    <add key="SSOLibrary.SsoWs.URLValidateFE" value="./ValidateFE.aspx?ReturnUrl="/>
    <add key="sa.login.stilesheet.url" value="AuthRestriction=0,1,2,3"/>
    </appSettings>
    </configuration>

    Di seguito verranno descritti i campi che è possibile cambiare

    SSOLibrary.SsoWs.URLLogout : Contiene l’url della pagina di Logout dalla posizione della pagina autenticata. Se impostato il parametro ReturnUrl redirige alla pagina indicata che di solito è la pagina iniziale.

    SSOLibrary.SsoWs.URLValidateFE : Indica il percorso della pagina contenente il riferimento al modulo della SSOLibrary (il SP vero e proprio) partendo dalla posizione della pagina iniziale.

    sa.login.stilesheet.url : Può essere vuoto o contenere il campo AuthRestricion, dove i valori 0,1,2,3 indicano i livelli di autenticazione da mostrare nella pagina di login Cohesion, in particolare:

    o   0 indica di mostrare l’autenticazione con Utente e Password

    o   1 indica di mostrare l’autenticazione con Utente, Password e PIN

    o   2 indica di mostrare l’autenticazione con Smart Card

    o   3 indica di mostrare l’autenticazione di Dominio (valida solo per utenti interni alla rete regionale)

    E’ possibile nascondere o visualizzare le modalità di autenticazione togliendo o aggiungendo i rispettivi valori separati da una virgola. L’ordine non è influente.

     

    - Modalità di funzionamento SAML2.0

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
    <appSettings>
    <add key="SSOLibrary.Registrazione.Url"
    value= "&amp;RegistrazioneUrl=http://cohesion2.regione.marche.it/SCRegistration/Registrazione.aspx"/>
    <add key="sso.check.url" value="https://cohesion2.regione.marche.it/SPManager/WAYF.aspx"/>
    <add key="SSOLibrary.SsoWs.wsCheckSessionSSO" value="http://cohesion2.regione.marche.it/SPManager/wsCheckSessionSPM.asmx"/>
    <add key="sa.login.url" value=""/>
    <add key="SSOLibrary.SsoWs.URLLogout"
    value= "../Logout.aspx?ReturnUrl=https%3A%2F%2Fcohesion2.regione.marche.it%2FSPManager%2FLogout.aspx"/>
    <add key="SSOLibrary.SsoWs.URLValidateFE" value="./ValidateFE.aspx?ReturnUrl="/>
    <add key="sa.login.stilesheet.url" value="http://YOURHOST/YOURSITE/Logout.aspx"/>
    </appSettings>
    </configuration>

    Di seguito verranno descritti I campi che è possibile cambiare

    SSOLibrary.SsoWs.URLLogout : Contiene l’url della pagina di Logout dalla posizione della pagina autenticata. A differenza della modalità classica non è però possibile cambiare il parametro ReturnUrl in quanto strettamente dipendente alle funzionalità di logout di SAML.

    SSOLibrary.SsoWs.URLValidateFE : Indica il percorso della pagina contenente il riferimento al modulo della SSOLibrary (il SP vero e proprio) partendo dalla posizione della pagina iniziale.

    sa.login.stilesheet.url : Deve contenere obbligatoriamente il percorso completo della propria pagina di logout affinché il logout SAML funzioni correttamente. In aggiunta prima di questo url è possibile inserire, separato da un punto e virgola (;), la stringa AuthRestricion=0,1,2,3 dove i valori 0,1,2,3 indicano i livelli di autenticazione da mostrare nella pagina di login dell’Idp federato selezionato, in particolare:

    o   0 indica di mostrare l’autenticazione SAML “Password”

    o   1 indica di mostrare l’autenticazione SAML “Smartcard”

    o   2 indica di mostrare l’autenticazione SAML “SmartcardPKI”

    o   3 indica di mostrare l’autenticazione SAML “Kerberos”

    I seguenti valori sono standard SAML e dovrebbero essere riconosciuti per ogni IdP federato selezionato. Nel caso venga scelto Cohesion come Idp allora i valori saranno interpretati con le modalità di autenticazione già descritte nel punto a). E’ possibile nascondere o visualizzare le modalità di autenticazione togliendo o aggiungendo i rispettivi valori separati da una virgola. L’ordine non è influente.

     Es. <add key="sa.login.stilesheet.url" value=" AuthRestriction=2,1;http://HOST/YOURSITE/Logout.aspx"/>

     

  9. In TestCohesion.zip è presente un esempio di progetto .NET 2010 in cui si mostra come integrare Cohesion. Affinché funzioni è sufficiente aggiornare i campi publickeytoken di RMFilters nel Web.config con il valore giusto della libreria installata da G2G. Per fare questo è sufficiente eseguire Gacutil.exe /l RMFilters (Gacutil.exe è presente nel pacchetto) e leggere il nuovo valore da sostituire. Può capitare a volte che anche i publickeytoken relativi a WSE ed alla SSOLibrary presenti nel Web.config non corrispondano con quelli effettivi delle rispettive dll. In tal caso per entrambi va usato il tool sn.exe come segue:
    sn.exe -T C:\Program Files\Neta Spa\SSOLibrary v4.0\SSOLibrary.dll

    sn.exe -T C:\Program Files\Microsoft WSE\v2.0\Microsoft.Web.Services2.dll

Rinnovo asserzione SAML

Una volta autenticati, la sessione per il Single Sign On sarà valida per 60 minuti. Nella modalità SAML questo tempo sarà anche specificato nella risposta SAML ritornata dall’IdP. Entro tale tempo sarà possibile accedere a qualunque sito protetto da Cohesion senza che appaia la maschera di autenticazione. Il Service Provider in tal caso otterrà un nuovo token (contenente anche una nuova asserzione SAML in caso di modalità SAML) ed un rinnovamento del cookie di sessione per altri 60 minuti.

Qualora si volesse rinnovare la sessione dal proprio SP sarà perciò necessario cancellare il cookie di sessione del proprio sito entro i 60 minuti (es. a 50 minuti) e redirigere l’utente ad una propria pagina privata che richiede l’autenticazione per l’accesso. A questo punto il SP rigirerà l’utente all’IdP Cohesion che, vedendo ancora valida la sessione, aggiornerà il cookie di sessione di altri 60 minuti e ritornerà un nuovo token o una nuova asserzione SAML valida altri 60 minuti senza mostrare l’interfaccia di autenticazione.