Validazione Response

Salve, ho effettuato la validazione del metadata attraverso lo SPID Validator. Adesso dovrei validare la response che ottengo subito dopo il login al Test Identity Provider. Pensavo che lo SPID Validator validasse anche la response, ma vedo che valida solo il metadata. Potreste gentilmente dirmi come procedere alla validazione della Response? Ed ottenere così il Response Report? Grazie!!!

Buongiorno Patrizia,

per poter effettuare le verifiche su Request e Response, occorre configurare lo SPID Validator sul proprio SP alla stessa maniera di un IdP. Trovi il metadata di SPID Validator alla url http://localhost:8080/metadata.xml.
Quindi potrai inviare Request allo SPID Validator cliccando sul relativo collegamento nel bottone “Entra con SPID”. All’accesso troverai abilitate le sezioni per effettuare le verifiche di Request e Response, oltre alla sezione Metadata.
Dopo aver inviato una Response al SP la sessione sul Validator resta attiva esclusivamente per salvare l’esito ottenuto. Per effettuare una nuova verifica occorre ripartire dall’invio della Request sul SP.

Saluti,

Michele D’Amico
Collaboratore Agenzia per l’Italia Digitale

1 Mi Piace

Buongiorno Michele, ti ringrazio per la risposta! :relaxed:
Ho seguito quanto mi hai indicato e ho iniziato a validare la Response.
Volevo chiederti solo due cose:

  • i test sulla Request non producono un risultato del test. E’ corretto?

  • ho iniziato ad eseguire i test sulla Response che devono generare la pagina di Errore; devo specificare l’errore nella pagina finale, oppure è sufficiente che la pagina contenga un testo generico di errore?

Saluti,

Patrizia

Buongiorno Patrizia,

  • i test sulla Request (strict, certs, extra) producono direttamente i risultati come report, che puoi direttamente stampare/esportare

  • è importante che gli errori siano gestiti correttamente. Avere il dettaglio dell’errore può essere utile in fase di debug ma per la produzione è meglio un messaggio generico. A parte per le anomalie derivanti dall’utente (test dal #104 al #108, e #111) che invece devono presentare all’utente il messaggio dell’anomalia (Rif. tabella messaggi di anomalie SPID - https://www.agid.gov.it/sites/default/files/repository_files/regole_tecniche/spid-messaggi.pdf)

Saluti,
Michele

Buongiorno Michele,
ancora molte grazie per le tue delucidazioni!
Mi rimane un dubbio sui test della Request … non mi viene generato alcun report dopo aver effettuato il download del metadata, non capisco perchè. Inoltre lo stesso problema a volte si verifica anche con il report del metadata. Ti allego delle immagini.

Saluti

Patrizia!

L’Issuer della Request deve corrispondere all’EntityID dichiarato nel metadata.
Controlla che sia effettivamente così. Il fatto che i test risultino tutti non presenti dipende da incoerenze sull’EntityID.

Michele D’Amico
Collaboratore Agenzia per l’Italia Digitale

Buongiorno Michele,

ho seguito le tue indicazioni; in effetti c’era un problema sull’EntityID. L’ho sistemato ed ho ottenuto solo i test del Metadata, mentre continuano a rimanere vuoti i test sulla Request.

In merito ai test sulla Response, ho iniziato ad eseguirli, ma alcuni test (ex. 03. Assertion non firmata, 10. Version diverso da 2.0) non mi danno errore e mi permettono di accedere alla pagina di autenticazione.
Nel mio progetto ho integrato “Italia.Spid.Authentication” e quando eseguo
IdpAuthnResponse idpAuthnResponse = SamlHelper.GetAuthnResponse(collection[“SAMLResponse”].ToString());” non mi viene generato l’errore.
Non so se mi sono spiegata e non vorrei neanche abusare della tua grande disponibilità ma non riesco a spiegarmi perchè non viene generato l’errore se ho utilizzato Italia.Spid.Authentication.

Ti ringrazio ancora per l’attenzione

Saluti

Patrizia

1 Mi Piace

Ciao Michele, scusa la mia insistenza, non voglio approfittarne della tua disponibilità, ma potresti gentilmente rispondermi al post precedente?

Ti ringrazio

Patrizia

Ciao Patrizia,
se i test della request restano tutti vuoti molto probabilmente l’EntityId del metadata e l’Issuer della Request non coincidono. Devono essere identici, anche nel protocollo, quindi entrambi https o entrambi http.
Il corretto funzionamento in conseguenza della ricezione di una Response, invece, dipende strettamente dall’implementazione del SP. Ti consiglio in questo caso di segnalare il problema come issue sul repository del progetto.

Saluti,
Michele D’Amico
Collaboratore Agenzia per l’Italia Digitale

Buongiorno,

mi ritrovo ad avere gli stessi problemi esposti dall’utente patriza326.

In particolare i test della request rimangono vuoti, non è così per la validazione del metadata e per la response.

Ho verificato la corrispondenza tra l’EntityId del matadata e lo Iusser della Request, anche in merito al protocollo che è lo stesso, ma la cosa non si risolve.

Cosa altro posso verificare per proseguire con la validazione?

Buongiorno, …autorisposta.

Nel mio caso, ero partito da spid-dotnet-sdk, la form per il post dei dati non conteneva il campo nascosto RelayState.

Dopo averlo aggiunto e valorizzato si sono attivate le verifiche sulla request.

1 Mi Piace

Salve io ho un problema che non riesco a risolvere ormai da giorni.
Vado a effettuare la validazione della request cliccando su “invia Response al server provider” e ottengo sempre questo errore:
State not found for id _bd0d0d34f778daa05a0a270dbbafb40152de5aecd6
Non riesco a interecettare l’errore e come andare avanti

Ora pensavo di aver fatto tutto bene e mi restituisce questo:

Could not find the metadata of an IdP with entity ID 'http://localhost:8080

Buongiorno @Simone_Scala,
a quanto sembra il tuo SP non riesce a recuperare il metadata dell’IdP Validator.
stai utilizzando un sdk/libreria in particolare?

Salve,
io utilizzo questa libreria: https://github.com/italia/spid-php
Dopo aver installato “composer install” effettuo la configurazione e tutto va a buon fine.
Vado a vedere cosa mi restituisce il validator e non trovo problemi.
Nel momento che vado a fare “Invia Response al Service Provider” ora trovo questo errore:

SimpleSAML\Error\Error: UNHANDLEDEXCEPTION

Backtrace:
1 www/_include.php:17 (SimpleSAML_exception_handler)
0 [builtin] (N/A)
Caused by: Exception: State not found for id _f259c21c1e037e06436d7a1566805c046464decfe4
Backtrace:
5 /opt/spid-php/setup/simplesamlphp/saml2/src/SAML2/Response.php:118 (SAML2\Response::__construct)
4 /opt/spid-php/setup/simplesamlphp/saml2/src/SAML2/Message.php:584 (SAML2\Message::fromXML)
3 /opt/spid-php/setup/simplesamlphp/saml2/src/SAML2/HTTPPost.php:98 (SAML2\HTTPPost::receive)
2 modules/saml/www/sp/saml2-acs.php:35 (require)
1 lib/SimpleSAML/Module.php:266 (SimpleSAML\Module::process)
0 www/module.php:10 (N/A)

versione di simplesalm 1.19.1

Buongiorno @Simone_Scala,
tale problema, legato alla specifica implementazione di SPID con simpleSAMLphp, può verificarsi in caso di perdita della sessione sul Service Provider.
Ti consiglio di verificare il problema in relazione a quanto indicato per simpleSAMLphp:

Salve,
anch’io utilizzo la libreria https://github.com/italia/spid-php ma riscontro altri problemi.
Sfruttando lo script “login-spid.php” che mi genera il pulsante “Entra con SPID”, non riesco a raggiungere il validator che, da quello che leggo nel
codice della libreria, dovrebbe essere “https://validator.spid.gov.it”.
In accordo con quanto scritto in questa discussione (https://forum.italia.it/t/https-idptest-spid-gov-it-vs-spid-validator/20903), vorrei configurare la libreria
spid-php per effettuare i vari test con lo “SPID SAML Check” installato sulla mia macchina in locale, ma non ho ben capito come fare.
Quali file devo modificare?
Come faccio a configurare lo SPID Validator alla stessa maniera di un IdP nella libreria dato che essi sono configurati durante il processo di installazione lanciato
tramite composer e che scarica i metadata degli IDP di produzione tramite il metadata unico di configurazione (https://registry.spid.gov.it/metadata/idp/spid-entities-idps.xml)?

Grazie per la disponibilità.

Distinti Saluti

Alessandro

Salve @alepap ,
durante l’installazione di spid-php è possibile selezionare se lo script deve occuparsi di configurare automaticamente il collegamento al Validator. In tal caso, al termine dell’installazione nel pulsante “Entra con SPID” il link al Validator sarà presente come ultimo collegamento.
Se riscontri problemi a raggiungere il Validator, è anche possibile che questo sia offline. Puoi eventualmente verificarlo collegandoti direttamente su https://validator.spid.gov.it, dovresti vedere una interfaccia AgID Login per l’accesso sul Validator riservato al team di AgID.

Michele D’Amico

Buongiorno Michele,
grazie per la risposta tempestiva. Il link al Validator è presente ma cliccandoci raggiungo questo link mentre io mi aspettavo di raggiungere un ambiente come questo (https://www.spid-validator.it/#/login) . Anzi, per essere precisi, nella barra degli indirizzi del browser appare momentaneamente “https://validator.spid.gov.it/” ma poi si verifica un redirect. Quale errore commetto?
GRAZIE ancora per la disponibilità.
Alessandro

Buongiorno @alepap ,
nessun errore, il Validator online esposto all’indirizzo https://validator.spid.gov.it , come ti scrivevo, è riservato ad utenti interni AgID e l’utilizzo pertanto è protetto dall’autenticazione con il sistema AgID Login.
Tuttavia il codice del Validator online è lo stesso disponibile al repository ufficiale
GitHub - italia/spid-saml-check: Tool di verifica implementazione SPID SAML
che puoi installare localmente.
Il link sul pulsante è richiesto in fase di collaudo per consentire ad AgID di eseguire le verifiche sull’implementazione. Per utilizzare una istanza personale del Validator puoi indicare il metadata ad una istanza diversa del Validator o di altro IdP di test in fase di installazione dello script.

Michele D’Amico