小编DOU*_*L3P的帖子

Keycloak 两个前端客户端和一个后端客户端

我有以下设置:

在此处输入图片说明

前端是 Angular1 前端。后端是 Spring Boot,结合 Spring Security 与 Keycloak Sring Boot Adapter 一起使用。

流程是标准的OAUTH2:

  1. 前端向 Keycloak 发送凭据
  2. 如果有效的 Keycloak 将令牌发送到前端
  3. 前端将带有此令牌的请求发送到后端
  4. 后端将令牌发送到 keycloak 进行验证
  5. keycloak 在验证后接受令牌
  6. 后端正在响应前端

这适用于一个前端。您必须通过 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 中配置了两个公共前端客户端。我错过了什么?

spring reverse-proxy keycloak

6
推荐指数
0
解决办法
2352
查看次数

标签 统计

keycloak ×1

reverse-proxy ×1

spring ×1