我有以下设置:
前端是 Angular1 前端。后端是 Spring Boot,结合 Spring Security 与 Keycloak Sring Boot Adapter 一起使用。
流程是标准的OAUTH2:
这适用于一个前端。您必须通过 application.properties 中的“keycloak.auth-server-url”配置 Spring Backend 的 Keycloak Adapter。我的 Keycloak 适配器的 keycloak.auth-server-url 指向一个 WebServer,它提供 Frontend1 并配置为反向代理。因此,它在步骤 3 中使用此配置转发到 keycloak 服务器:
keycloak.auth-server-url=www.UrlOfFrontend1.com/auth
'/auth' 是 keycloak 的转发路径。它适用于一个前端。
我的问题是带有两个前端的第 4 步。每个前端都由配置为反向代理的自己的 WebServer 提供。如果我提供带有第二个反向代理的第二个前端,它提供 Frontend2 keycloak 会抛出错误:
[org.keycloak.adapters.BearerTokenRequestAuthenticator](默认任务 39)无法验证令牌:org.keycloak.common.VerificationException:无效的令牌颁发者。预期 ' http://www.UrlOfFrontend1.com/auth/realms/myrealm ',但在 org.keycloak.TokenVerifier.verify(TokenVerifier.java)是 ' http://www.UrlOfFrontend2.com/auth/realms/myrealm ' :156) 在 org.keycloak.RSATokenVerifier.verify(RSATokenVerifier.java:89)
我需要两个前端的 Spring Boot Keycloak Adapter 配置。我在 Keycloak 中配置了两个公共前端客户端。我错过了什么?