-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Problema su logout #21
Comments
Salve, |
Salve e grazie per la celere risposta. Effettuo la login con il validator - ma quando effettuo la logout request (che riporto sotto) - nello SpidHandler.cs, riga 248 Questa è la LogoutRequest (logoutRequest.SerializeToXmlDoc() da debugger) |
Aggiungo che, in assenza del parametro sessionIndex, l'IdP di poste ha restituito una response contenente questo statuscode (come da regole tecniche spid: https://docs.italia.it/italia/spid/spid-regole-tecniche/it/stabile/single-logout.html#gestione-delle-sessioni) <saml2p:Status>
<saml2p:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Requester">
<saml2p:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:PartialLogout"/>
</saml2p:StatusCode>
</saml2p:Status> che la libreria interpreta correttamente, proseguendo il flusso di logout. |
Anch'io riscontro lo stesso comportamento segnalato sul logout |
il problema su Logout ho scoperto che è un problema noto - ed è dovuto al fatto che il sistema ignora la configurazione post e fa il redirect. link anche --> italia/spid-saml-check#167 |
Vale a dire che la SAMLResponse della Logout arriva in querystring? |
ahimè sì - quindi ignora la configurazione post ed effettua sempre il redirect |
Ok, facciamo così, faccio una PR su un branch contenente il fix, ti è possibile eventualmente condurre qualche test sul branch, dal momento che hai già le configurazioni di test e le request pronte? |
Inoltre, potresti incollarmi il valore che ricevi in Querystring, così valuto se deve essere effettuato il Deflate e l'UrlDecode? Grazie |
leggo
la response è:
|
Ho creato un branch "FixRedirectResponse", potresti verificare se su questo branch il bug sulla logout è risolto? |
Ok, ho fixato e aggiornato la PR, puoi riprovare? |
verifysignature fallisce, l'xml forse è formattato differentemente rispetto al post. |
Ok, ho rivisto tutto il giro della verifica delle firme, ora dovrebbe andare |
E' davvero strano, ho verificato io stesso il funzionamento della logout ed era tutto ok. Puoi incollare richiesta e risposta? Grazie |
in XmlHelpers.cs, linea 84 - la variabile xmlMetadata risulta null, e quando va nell'else (linea 100) va in eccezione.
Il dato di signedDocument è questo <samlp:LogoutResponse xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" ID="_181e9a93-dff0-407b-98b5-0ef09204ec60" Version="2.0" IssueInstant="2021-10-05T07:37:46Z" Destination="https://localhost:44369/signout-spid" InResponseTo="_98f6f2b3-3e99-48f6-8574-c3a4c0181d3f">
<saml:Issuer Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity" NameQualifier="https://localhost:8080">
https://localhost:8080</saml:Issuer>
<samlp:Status>
<samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success" />
</samlp:Status>
</samlp:LogoutResponse> |
Beh, questo significa però che il valore "OrganizationUrlMetadata" per l'identityProvider specificato in configurazione non è un URL valido. Se xmlMetadata è null significa che la libreria non è riuscita ad effettuare il download del metadata, che viene fatto a runtime per la verifica della firma. Potresti verificare questa cosa? |
Mi correggo, per il logout effettua una verifica della firma senza ricorrere al metadata, ma noto che nella response la firma non c'è, per questo la verifica fallisce. Mi chiedo se è un comportamento corretto. |
Sono sicuro che è un errore dell'IdP di test, cioè, io nella configurazione ho HTTP-POST - e loro mi rispondono con un HTTP-Redirect. IMHO è un problema lato appunto di IdP (spid-saml-check). |
Sul repo di spid-saml-check ci sono diverse issue legate alla logout. In particolare la issue relativa al fatto che risponda in redirect ad una richiesta in POST, è riportata anche qui: Per quanto riguarda il problema sulla firma, ho aperto una issue: Chiudo questa issue, dal momento che il problema si verifica esclusivamente rispetto al validatore e non in ambiente di produzione/collaudo |
Buongiorno a tutti,
segnalo che il sistema - una volta effettuata la login con un IdP, nel caso particolare di livello SPID maggiore di 1 (quindi senza sessione), va in errore in quanto manca il controllo legato al fatto di NON dover inviare la richiesta di logout.
In particolare, nel file SamlHandler.cs, riga 404 e quindi 455 - il valore di authnStatementSessionIndex è pari a "" (essendo senza sessione) - quindi la response dall'IdP arriva vuota andando in errore.
The text was updated successfully, but these errors were encountered: