italia / spid-keycloak-provider

Italian SPID authentication provider for Keycloak (https://www.keycloak.org/)
Apache License 2.0
62 stars 22 forks source link

Errore annulla login idp #17

Closed matteo2411 closed 3 years ago

matteo2411 commented 3 years ago

Facendo annulla dalla maschera di login dell'idp di test (sto usando un container in locale di spid-testenv2) ho questa schermata:

image

Quest'errore in console:

09:11:06,801 ERROR [org.keycloak.broker.spid.SpidSAMLEndpoint] (default task-15) validation failed: org.keycloak.common.VerificationException: Invalid signature on document

E questa è la Response:

<samlp:Response xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" Version="2.0" ID="id_c109bbefd3e1eb0d645461ccfcfdf78be154de73" IssueInstant="2021-03-15T09:11:06Z" Destination="https://localhost:8443/auth/realms/libretto-formativo/broker/spid-test-local/endpoint" InResponseTo="ID_b6ff9a66-b4f3-4e1b-a184-500eac575b86">
  <samlp:Status>
    <samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:AuthnFailed"/>
    <samlp:StatusMessage>ErrorCode nr22</samlp:StatusMessage>
  </samlp:Status>
  <saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity" NameQualifier="http://localhost:8088">http://localhost:8088</saml:Issuer>
</samlp:Response>

Sembra che il problema sia che non ritorna una response firmata. Ovviamente in questo caso il bug sarebbe dell'idp e non certo di questa implementazione su keycloak ma c'è un modo per raggirare il problema?

lscorcia commented 3 years ago

Ciao @matteo2411 , la tua segnalazione effettivamente dipende da un errore in spid-testenv2, ma comunque l'ho sistemata nell'ultima release 1.0.8 del provider: ora gli errori SPID vengono analizzati e restituiti all'utente prima della verifica della firma, aggirando quindi il problema. Grazie mille per la segnalazione, e per la pazienza!