如何使用 Keycloak Server 内省来自公共客户端的 access_token?

sta*_*ion 6 oauth-2.0 keycloak

我有以下设置:一个单页应用程序,它从 Keycloak 服务器获取 OAUTH2.0 令牌。然后,应用程序向我的不同服务器发出 API 调用,并使用有效的access_token.

一切正常,希望我不知道如何使用 Keycloak-Server 验证令牌。通常我只会将令牌自省端点与client_id一起使用client_secret,但我不能这样做,因为客户端发出的access_tokenpublic,而不是confidential,因为我使用的是 SPA。

我完全控制着运行 API 的服务器,所以我很乐意使用任何类型的身份验证,但我没有找到在 Keycloak 服务器上配置任何东西的方法。API-Server 运行一个节点实例,我想坚持规范,所以使用令牌自省端点将是首选,但我也对其他解决方案持开放态度。

小智 1

当您使用公共客户端的访问令牌调用 keycloak 内省端点时,您可以使用来自不同客户端的 client_id 和 client_secret(您可以创建一个新客户端)。您应该将调用放在 API 中的内省服务或其上方的过滤器中,这样您就不会将 client_id 和 client_secret 存储在前端静态内容中。