Collaudo SPID KO

Buongiorno, vi scrivo dopo l’ennesimo ko nel collaudo Spid.
Ho utilizzato l’applicazione presente su Github “spid-dotnet-sdk” compilata con Visual Studio 2017 e installata su un server web con dominio e certificato https.
Nelle prove in locale con macchina docker “Italia/spid-testenv2” tutto funziona correttamente ma mi hanno contestato degli errori nelle response (il normale login funziona correttamente):

  • le response #3,4,60,62,100 con risultato atteso login KO consentono il login;
  • le response #104,105,106,107,108,111 con risultato atteso login KO non consentono il login correttamente ma non visualizzano all’utente il messaggio di anomalia.

Andando a controllare la tabella messaggi pdf, gli errori corrispondo a:
03. Response - Assertion non firmata
04. Response - Firma non valida
60. Assertion - Attributo InResponseTo di SubjectConfirmationData non
specificato
62. Assertion - Attributo InResponseTo di SubjectConfirmationData diverso
da ID request
100. Assertion - Firma diversa
104. Anomalie utente - Ripetuta sottomissione di credenziali errate (Anomalia
19)
105. Anomalie utente - Utente privo di credenziali compatibili (Anomalia 20)
106. Anomalie utente - Timeout (Anomalia 21)
107. Anomalie utente - Consenso negato (Anomalia 22)
108. Anomalie utente - Credenziali bloccate (Anomalia 23)
111. Anomalie utente - Processo di autenticazione annullato dall’utente
(Anomalia 25)

Avendo fatto tutto dall’applicativo compilato in Visual Studio, questi controlli non dovrebbero essere già implementati nell’applicativo? E se no, come potrei fare per implementarli? Online non ho trovato guide comprensibili.

La libreria in questione è vecchia di almeno un paio d’anni e quindi non è più in linea con l’aggiornamento delle regole tecniche (espresse come Avvisi SPID) e dei test di robustezza eseguiti da AgID e riassunti in questo documento.

Nello specifico delle contestazioni:

  • 03-04: Devi verificare che la Response sia firmata e che la firma sia valida (ossia coerente con la chiave pubblica dello SPID Validator).
  • 60-62: Devi verificare che l’elemento SubjectConfirmationData abbia l’attributo InResponseTo e che il suo valore sia identico al valore dell’attributo ID dell’AuthnRequest che hai generato per richiedere l’autenticazione.
  • 100: Devi verificare che, se nell’Assertion è presente una firma, essa sia valida (ossia coerente con la chiave pubblica dello SPID Validator).
  • 104-111: Nel caso il SP riceva un messaggio di anomalia, deve visualizzare all’utente un messaggio che chiarisca il motivo del mancato accesso. Per ognuna delle anomalia puoi utilizzare il corrispondente testo presente nella colonna “Scenario di riferimento” della Tabella Anomalie SPID.

Non conoscendo il mondo .NET non posso indicazioni più specifiche.
Al massimo puoi provare a chiedere sul canale Slack di DevelopersItalia

1 Mi Piace

Buongiorno e grazie per la risposta.
Potresti gentilmente indicarmi una libreria aggiornata alle regole tecniche degli Avvisi SPID e dei test di robustezza Agid?
L’SDK spid-php e la libreria spid-php-lib sembrano le uniche alternative che posso utilizzare (anche se la libreria spid-php-lib è anch’essa vecchia di un paio d’anni).

Cosa potrei usare altrimenti al posto dell’SDK per Visual Studio?