【发布时间】:2019-12-04 10:03:44
【问题描述】:
考虑以下环境:
- 一个 docker 容器是 keycloak
- 另一个 docker 容器是我们使用 keycloak 进行身份验证的 Web 应用程序
Web 应用程序是应用了“keycloak-spring-boot-starter”的 Spring Boot 应用程序。在 application.properties 中:
keycloak.auth-server-url = http://localhost:8028/auth
访问我们的网络应用程序的用户将使用 keycloak docker 容器的公开端口的 URL 重定向到 keycloak。登录在 keycloak 中没有问题,并且用户(浏览器)再次被重定向到我们的 Web 应用程序。现在,需要将授权码交换为访问令牌。因此,我们的网络应用程序(keycloak 客户端)尝试连接到 keycloak.auth-server-url 中配置的相同主机和端口。但这是一个问题,因为 Web 应用程序驻留在 docker 容器中,而不是在主机上,因此它应该访问 http://keycloak:8080 或链接 keycloak 的地方keycloak docker 容器。
所以问题是:如何配置 keycloak 客户端以应用不同的 URL 进行浏览器重定向和访问令牌端点?
【问题讨论】:
标签: spring spring-boot docker oauth-2.0 keycloak