我很难弄清楚“有效重定向URL”、“基本URL”、“Backchannel Logout URL”的值应该是什么。我正在使用Keycloak 15.02以及10个Spring应用程序和2个Realms。应用程序和Keycloak套件部署到我们的客户站点,在某些情况下可能有两个以上的领域。
在我们的开发环境中,有两个主机(api.dev和web.dev)正在运行Keycloak和客户端应用程序。所有东西都在运行码头集装箱。
“`Valid重定向URL”和“Backchannel Logout”的客户端配置当前包括主机名web.dev。我希望能够删除这个主机名,使领域信任在环境之间可移植。必须在每个领域中配置每个客户端会导致大量重复和容易出错的工作。
但是,当我移除主机名时,我会得到错误:Invalid parameter: redirect_uri。
Keyloak在请求参数中显示的重定向URL对于这两种配置看起来都是一样的,所以我真的不明白为什么它告诉我它无效。
这工作:

该配置生成在以下请求中看到的redirect_uri值:
http://api.dev.etisoftware.local:8080
/auth/realms/OSS/protocol/openid-connect/auth
?response_type=code
&client_id=launchpad
&scope=openid%20profile%20email%20roles
&state=E-8VBZUc1CbsIUi5HdPG68pNK1IVNB8bzDT3Aengx9Q%3D
&redirect_uri=http://web.dev.etisoftware.local/launchpad/login/oauth2/code/OSS
&nonce=3OUMxVmrglSC0KK-WGWDjG4yB9TOuvqBO5TMnDk4R-A ,但这不是:

该配置生成在以下请求中看到的redirect_uri值:
http://api.dev.etisoftware.local:8080
/auth/realms/OSS/protocol/openid-connect/auth
?response_type=code
&client_id=launchpad
&scope=openid%20profile%20email%20roles
&state=cGh1zZ3et0ssogIsNclL2sHcrfDxNePaHf5UXxw0aR8%3D
&redirect_uri=http://web.dev.etisoftware.local/launchpad/login/oauth2/code/OSS
&nonce=Qm846RYZZnU3fG4Cj75e8lBejupf24VbV1WjDVW1NJA正如您所看到的,请求参数中的redirect_uri值对于请求和客户端配置都是相同的,因此不清楚(对我来说) Keycloak试图告诉我什么。
我还碰巧在K3s集群中运行了Keycloak和客户端应用程序。出于某种原因,在该环境中,我不需要在有效的重定向URI中使用主机名,它运行得非常好。这只是侥幸吗?
发布于 2022-01-25 20:48:56
重定向URI工具提示:
“在成功登录或注销后,浏览器可以重定向到有效的URI模式。允许简单的通配符,例如'http://example.com/’。也可以指定相对路径,例如/my/ relative / path /.相对路径相对于客户端根URL,或者如果没有指定auth服务器根URL,则必须设置有效的URI模式,如果您依赖嵌入登录请求的使用者服务URL”
因此,如果要在重定向URL中使用相对路径,则应正确配置根URL,而不是基本URL。
我在Keycloak的网站上得到了答案,但是Jangaraj。https://keycloak.discourse.group/t/trouble-with-configuring-client-valid-redirect-uris/13251
https://stackoverflow.com/questions/70805349
复制相似问题