menu di navigazione del network

Gestione sessioni e Single Logout


(Umberto Rosini) #21

Ciao @marangiom,

conosco il problema e questo aspetto sarà corretto da un avviso, sto valutando l’impatto.

Umberto Rosini
Agenzia per l’Italia Digitale


(Valerio Mozzambani) #22

Buongiorno @umbros,
sono andato avanti con gli sviluppi e sono giunto alla fase di test.

Se ho interpretato correttamente le disposizioni AGID, se l’utente fa un logout dal mio SP e aveva instaurato una sessione comune:

  • l’utente distrugge la sessione locale con il mio SP;
  • dopodiché tramite un POST o un redirect (come nel login) lo userAgent viene reindirizzato all’IDP che aveva creato la sessione di autenticazione con un parametro SAMLRequest contenente la LogoutRequest;
  • l’IDP si occupa di fare il logout dalle altre sessioni locali tramite SOAP o tramite lo UserAgent con altre redirect ai vari servizi in cui l’utente era loggato;
  • al termine della catena di redirect l’IDP fa un’ultima POST o redirect (sempre tramite UserAgent) al mio SP con un parametro contenente la SAMLResponse (logout completo o parziale)

Putroppo non riesco a testare questo meccanismo in quanto con gli SP che implementano SPIDL1 ottengo il seguente risultato:

  • il mio SP comunica la request tramite POST all’IDP di POSTE;
  • l’IDP di poste fa un redirect ad un terzo SP (ho fatto prove con diverse controparti, il risultato è sempre lo stesso) con la richiesta di Logout;
  • l’altro SP risponde 500 e la catena si interrompe.

Se invece non ci sono terze parti coinvolte l’IDP mi manda correttamente la Response.
A questo punto non so se sono gli altri SP che non implementano la logout o se c’è un errore nella request di Poste, in ogni caso la mia applicazione non ha controllo nella catena di redirect intermedi.

Sai dirmi se c’è qualche entity che ha implementato in modo completo e testabile tutto l’iter di logout?

Oppure se ho interpretato male le specifiche?

Grazie per l’assistenza!


(Valerio Mozzambani) #23

Veramente nessuno è a conoscenza di qualche Service Provider che implementi il logout completo?


(Umberto Rosini) #24

Ciao @Valerio_Mozzambani, mi era saltata la tua segnalazione,
il processo da te descritto è corretto. Premettendo che il singleLogout funziona solo su livello 1 SPID, spesso cade in partial logout.
Tutti gli IDP chiudono il giro ma se l’SP non risponde il logout è parziale.
Riguardo l’utilizzo di SOAP sto pensando di eliminarlo.
Direi che quindi il tuo giro è corretto.
Se vuoi faccio un giro e dei controlli.

Ciao

Umberto Rosini
Agenzia per l’Italia Digitale


(Valerio Mozzambani) #25

Si, per favore!

Purtroppo se anche solo uno degli SP nella ‘catena’ restituisce 500, l’utente si trova una pagina bianca o con errore ed è portato a pensare che sia un malfunzionamento dell’applicazione che ha iniziato il logout.

Grazie!


(Alessandro Ranellucci) #26

Il problema dell’attributo NameQualifier è tracciato in questa issue:


(Umberto Rosini) #27

Ciao @Valerio_Mozzambani,
mi fornisci i dati in pvt.

Grazie

Umberto Rosini
Agenzia per l’Italia Digitale


(Valerio Mozzambani) #28

@umbros fatto, grazie a te!


(Valerio Mozzambani) #29

Ciao @umbros, sei riuscito a dare un’occhiata?


(Umberto Rosini) #30

Ciao @Valerio_Mozzambani,
come dicevo sto valutando una modifica sul singlelogout e nuove specifiche.

Appena ho novità aggiorno qui.

Ciao
Umberto Rosini
Agenzia per l’Italia Digitale


(Valerio Mozzambani) #31

Grazie, allora per il momento dovrò disabilitare il logout anche sulla mia applicazione.


(Francesco Fornasiero) #32

Salve,
sto facendo alcuni test sul mantenimento delle sessioni lato IDP (ovviamente con SpidLv1) e mi sembra che non vi sia un comportamento univoco lato IDP: una volta accreditati al primo servizio se si prova ad autenticarsi ad un altro servizio (sempre attraverso lo stesso IDP) ho osservato che alcuni IDP ripresentano la maschera di login (Username/password) mentre altri mostrano solamente la maschera per autorizzare il passaggio delle informazioni utente (mantengono cioè la sessione).
Vi è qualche regola o indicazione che gli IDP devono seguire sul mantenimento della sessione o la gestione e durata della stessa è demandata all’implementazione del fornitore dell’IDP ?
L’unico riferimento che ho trovato sulla sessione è l’avviso n.3.

Grazie


(AntonioB ) #33

Salve, sto implementando anche io gestione del logout lato SP.
Ci sono stati più aggiornamenti sul tema?
L’idea di rimuovere SOAP per la richiesta di logout inviata dall’IDP è stata abbandonata?
Bisogna quindi prevedere il servizio SOAP di richiesta, e, immagino, la conseguente risposta sempre in SOAP?

Grazie.


(Paolo Bozzo) #34

Avrei un quesito. Immaginiamo di avere un metadata di un SP di livello 1 che fa riferimento a 2 o più servizi, con più elementi AssertionConsumerService e altrettanti SingleLogoutService. Il Login, grazie all’indice, avviene sempre perfettamente. Ma per il logout come procedere per segnalare all’Idp a quale indirizzo mandare la risposta? è possibile?
Grazie.