italia / spid-keycloak-provider

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

Problema di signature con flow tra spid-saml-check e spid-keycloak-provider #67

Open gabrielesilinic opened 1 month ago

gabrielesilinic commented 1 month ago

image

Sono estremamente vicino ad ottenere qualcosa di funzionante, ma per qualche ragione qualche certificato non esiste e non mi è chiaro cosa voglia.

qui quello di cui keycloak si lamenta

 2024-06-14 14:34:57,974 ERROR [org.keycloak.broker.spid.SpidSAMLEndpoint] (executor-thread-240) validation failed: org.keycloak.common.VerificationException: Invalid signature on document
spid-keycloak-1    |    at org.keycloak.protocol.saml.SamlProtocolUtils.verifyDocumentSignature(SamlProtocolUtils.java:96)
spid-keycloak-1    |    at org.keycloak.broker.spid.SpidSAMLEndpoint$PostBinding.verifySignature(SpidSAMLEndpoint.java:763)
spid-keycloak-1    |    at org.keycloak.broker.spid.SpidSAMLEndpoint$Binding.handleSamlResponse(SpidSAMLEndpoint.java:695)
spid-keycloak-1    |    at org.keycloak.broker.spid.SpidSAMLEndpoint$Binding.execute(SpidSAMLEndpoint.java:293)
spid-keycloak-1    |    at org.keycloak.broker.spid.SpidSAMLEndpoint.postBinding(SpidSAMLEndpoint.java:204)
spid-keycloak-1    |    at org.keycloak.broker.spid.SpidSAMLEndpoint$quarkusrestinvoker$postBinding_e2ae3e4e98121b36952f2279cd4bb60100612099.invoke(Unknown Source)
spid-keycloak-1    |    at org.jboss.resteasy.reactive.server.handlers.InvocationHandler.handle(InvocationHandler.java:29)
spid-keycloak-1    |    at io.quarkus.resteasy.reactive.server.runtime.QuarkusResteasyReactiveRequestContext.invokeHandler(QuarkusResteasyReactiveRequestContext.java:141)
spid-keycloak-1    |    at org.jboss.resteasy.reactive.common.core.AbstractResteasyReactiveContext.run(AbstractResteasyReactiveContext.java:147)
spid-keycloak-1    |    at io.quarkus.vertx.core.runtime.VertxCoreRecorder$14.runWith(VertxCoreRecorder.java:582)
spid-keycloak-1    |    at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2513)
spid-keycloak-1    |    at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1538)
spid-keycloak-1    |    at org.jboss.threads.DelegatingRunnable.run(DelegatingRunnable.java:29)
spid-keycloak-1    |    at org.jboss.threads.ThreadLocalResettingRunnable.run(ThreadLocalResettingRunnable.java:29)
spid-keycloak-1    |    at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
spid-keycloak-1    |    at java.base/java.lang.Thread.run(Thread.java:840)
spid-keycloak-1    |
spid-keycloak-1    | 2024-06-14 14:34:57,974 WARN  [org.keycloak.events] (executor-thread-240) type="IDENTITY_PROVIDER_RESPONSE_ERROR", realmId="9b6a774a-c8f9-49ab-af42-f6bd72af4b65", clientId="null", userId="null", ipAddress="0:0:0:0:0:0:0:1", error="invalid_signature"

dove potrei andare a guardare per capire che sta succedendo? il validator dice che è tutto a posto e il flow va tutto fino a che non ritorna a keycloak, tutto è in localhost, keycloak è sotto keycloak.localhost nello specifico, il provider spid-saml-check è sotto https (non certificato correttamente però, clicco trust ogni volta, non so che farci, sono in localhost)

qui la config delle parti importanti

image

image

nicolabeghin commented 2 weeks ago

@gabrielesilinic hai provato a configurare l'IdP configurandolo col tool https://github.com/nicolabeghin/keycloak-spid-provider-configuration-client e non manualmente? ci sono una miriade di parametri e andare in delta è ardua!

gabrielesilinic commented 2 weeks ago

@gabrielesilinic hai provato a configurare l'IdP configurandolo col tool https://github.com/nicolabeghin/keycloak-spid-provider-configuration-client e non manualmente? ci sono una miriade di parametri e andare in delta è ardua!

Ho provato, ma non riesce a comunicare correttamente con keycloak (tutto locale). il motivo non è chiaro, ma sembra abbia difficultà ad autenticarsi nonostante mi sembra di averlo configurato correttamente.

nicolabeghin commented 1 week ago

@gabrielesilinic hai provato a configurare l'IdP configurandolo col tool https://github.com/nicolabeghin/keycloak-spid-provider-configuration-client e non manualmente? ci sono una miriade di parametri e andare in delta è ardua!

Ho provato, ma non riesce a comunicare correttamente con keycloak (tutto locale). il motivo non è chiaro, ma sembra abbia difficultà ad autenticarsi nonostante mi sembra di averlo configurato correttamente.

ma la chiamata a keycloak con cosa la fai?