Spring Boot 外部IDP的Keycloak外部登录页面

b4wnujal  于 2022-12-18  发布在  Spring
关注(0)|答案(1)|浏览(136)

在我们的spring Boot 应用程序中,我们使用keycloak并配置了多个外部IDP。基于浏览器的一切工作都很成功。keycloak提供的登录页面除了显示使用IDP登录外,还显示了直接授权选项,如果用户单击使用IDP登录,则会被重定向到IDP的登录页面,然后我们的keycloak会收到令牌。
我想在该流程中更改的是,我不显示keycloak的用户登录页面,而是显示我的应用程序(我的FE)的登录页面,该应用程序正在处理我的BE API。我的BE将处理KC。然后,如果用户选择使用IDP登录,我想从KC获取重定向URL,并将其传递给我的FE。然后,在获得令牌后,我想立即将用户重定向到我的FE。
换句话说,我不希望用户直接访问KC,这应该贯穿我的BE

nimxete2

nimxete21#

您的客户端应用程序永远不应访问用户凭据。
我会从另一个Angular 考虑问题(我对你的设置做了假设,因为你没有给予太多细节):

  • 为Keycloak提供自定义主题,以匹配您的客户端应用程序的外观
  • 可能会将Spring后端配置从client更改为resource-server。在OAuth2中,REST API是资源服务器,而不是客户端。
  • 可能从302(重定向到Spring的oauth2Login)(未授权请求)切换到401(未授权请求的标准HTTP状态)
  • 在您的SPA客户端中,可能使用certified OIDC client libs来处理PKCE的授权代码流、过期前的静默令牌刷新、插入访问令牌的HTTP拦截器、具有自动登录功能的路由保护......我最喜欢的Angular是angular-auth-oidc-client

如果我对您的REST API配置为spring-boot-starter-oauth2-client是正确的,并且如果您还不知道如何配置为spring-boot-starter-oauth2-resource-server,您可以参考Spring官方文档或我编写的this tutorials

相关问题