I’m integrating keycloak with speckle , when i click "login with keycloak " it’ showing the error “invalid parameter redirect uri” i have tried many redirect uri on keycloak but the same issue, is anyone have an idea and can help me, Thanks in advance
Means you are adding that as an Authentication provider much as we have Google as an Auth provider for speckle.xyz?
As I say, I am unfamiliar with Keycloak and where you would be specifying in the client creation step.
It will need to match whatever you specify in an equivalent auth/strategy you specify for KeyCloak. Typically you’ll need to check the paths match exactly rather than relying on wildcards.
Can you share the strategy file you have made for Keycloak, or can it directly re-use the OIDC template we have in Speckle Server?
Did you match it with appropriate server config flags to enable your new strategy?
Hi jonathon,
Thanks for your respond.
Yes i’m using keycloak as authentication provider for my speckle deployed on kubernetes,
what is the exact redirect URI for speckle to be present on keycloak.
If you continue to encounter errors, please first investigate both the console output from your browser’s developer tools and the logs from the speckle-server container in your server deployment. These may provide more clues as to the root cause of the problem.
I use the callback url you provide , but i still encouter the same error, also there’s no error appears on the consol output from the brower’s and here’s the logs from the speckle server:
i’m facing the following error when connecting keycloak with speckle, i follow all step to do the configuration, i use this redirect uri on keycloak side : https://my-keycloak/auth/oidc/callback
i’m facing the following error when i integrate speckle with keycloak using OIDC strategy i’m using the docker image of speckle 2.18.1, i followed all the steps of the integration and there’s no error message in the logs of speckle-server
We’ll probably need the logs from that event. Could you capture them and send them over?
This usually happens if passport didn’t receive (or could not receive) an actual user back, and it might be a misconfiguration on your keycloak instance’s side.
Here’s the logs, i’m using a keycloak instance in a local host , also i deployed speckle using Helm on k8s in the value file i put the necessary parameters to connect to keycloak.
Hi @ala_eddine, I actually did manage to reproduce it locally - partially - with some extra weird errors. It seemed like the locally running server was… taken over by keycloak itself when run from docker. I gave up during the weekend
What i can probably suggest: try using a different, online if possible, keycloak instance.
I’m afraid it’s a bit difficult for us to prioritise it at the minute as there’s a few other initiatives we’re looking at right now that take precedence (automate, multitenancy). I’ll keep looking at it when i have some spare time and I’ll cc @gjedlicska and @iainsproat for visibility.
About this issue: when login to using keycloak the server generate a session which is stored on the Redis and send back to the user in the cookies , the above log showing that the session not created after investigating, we found the redis was intialy deplyed on read only mode after changing the parameter “replica-read-only no” on the redis’s configmap and deploy it again the login using keycloak works.
This topic was solved, but I still did some investigation.
I am sharing as reference the configuration used to make keycloak work with speckle:
login into keycloak
create a new Client
set the client id to whatever you want.
In the following screen you can leave the default config
In the last section ensure to set the valid redirect url as the one specified by the speckle server
Create an Identity provider of type Keycloak OpenID Connect
Ensure to set the discovery url properly
In the image above the keycloak instance is running at http://localhost:8090.
Set the Client ID as the Id you chose for your client and also set a secret